使用用户输入查找列表中的元素

时间:2016-11-16 02:38:00

标签: python list python-3.x input

好的事情应该很容易就是杀了我。我在周一至周日的列表中列出了一天的日期,我需要让用户给出一个数字1-7以显示相应的日期

我有这个并且它有效,但似乎应该有更好的方法来完成它

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
print('Enter a day number [1-7]: ', end="")
number=input()
if number == '1' :
    print(days[0])
elif number == '2' :
    print(days[1])
elif number == '3' :
    print(days[2])
elif number == '4' :
    print(days[3])
elif number == '5' :
    print(days[4])
elif number == '6' :
    print(days[5])
elif number == '7' :
    print(days[6])

3 个答案:

答案 0 :(得分:1)

你可以用字典做到这一点:

days = {'1': 'Monday',
        '2': 'Tuesday',
        '3': 'Wednesday',
        '4': 'Thursday',
        '5': 'Friday',
        '6': 'Saturday',
        '7': 'Sunday'}

number = input()
return days[number]

这个的优点是,使用一个简单的列表(因为你预期整数也很好),你可能以后想要接受非数字的输入,比如"one"。你只需要重命名字典的密钥。

答案 1 :(得分:0)

怎么样:

number = int(input())
print(days[number - 1])

答案 2 :(得分:0)

根据@Jim Fasarakis-Hilliard的建议您需要使用tryexcept方法来捕获不需要的输入。

days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
print('Enter a day number [1-7]: ', end="")

try:
    number=int(input('enter day'))
    if number <= 7 and number > 0:
        print(days[number-1])
    else:
        raise Exception
except ValueError:
    print('must be an integer')
except Exception :
    print('number must be below 7')
如果输入的数字不是数字,

ValurError将会捕获, 如果输入的数字不在raise Exception

范围内,0<n<7将会捕获