【问题标题】:How to access indicated items in a tuple rather than all of them [duplicate]如何访问元组中的指示项而不是所有项[重复]
【发布时间】:2017-08-27 19:59:02
【问题描述】:

所以我正在尝试编写代码以将输入的整数更改为一个月。目标是获取输入的参数并将其转换为日期。代码如下。

def date(month, day, year):
    mon = ("January", "February", "March", "April", "May", "June", "July", 
     "August", "September", "October", "November", "December")
    for i in range(len(mon)):
        print(mon[i]+" "+str(day)+", "+str(year))

使用此代码,我可以让它以正确的格式打印从 1 月到 12 月的所有日期,但我不知道要更改什么

for i in range(len(mon)):

to 以便仅选择参数中输入的月份。

EX:当以date(6,17,2016) 输入控制台时,它应该打印June 17, 2016

【问题讨论】:

  • print(month[i-1]+" "+str(day)+", "+str(year)) 或在元组开头有一个空白元素,例如mon = ("", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),然后使用print(month[i])
  • shahkalpesh 的建议引发了 IndexError: tuple index out of range。 Coldspeed,我希望我不必这样做。
  • 我更新了我的评论。什么例子导致IndexError
  • 将 month[i] 更改为 month[i+1] 但这对 +1 有意义。这里的问题是我不知道如何在控制台中使用一个参数来选择只有一个月。

标签: python tuples


【解决方案1】:

您需要删除该 for 循环并按索引访问 mon 元组,例如:

def date(month, day, year):
    mon = ("January", "February", "March", "April", "May", "June", "July", 
     "August", "September", "October", "November", "December")
    print('{} {}, {}'.format(mon[month-1], day, year))

由于元组索引从 0 开始,您可以使用 month-1 来访问每个月

1 - 1 = 0 对于January,因为mon[0]January

【讨论】:

  • 我发誓我在 20 分钟前尝试过这个确切的方法,但没有成功。现在它可以工作了。显然是我的用户错误。谢谢!
  • 很高兴为您提供帮助 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
  • 2013-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多