使用if / then条件与字典对象

时间:2017-07-17 16:54:33

标签: python dictionary

我是python的新手,并且已经完成了一些活动。目前我正在使用条件。我创建了一个月的字典,我使用if / then条件来检查用户输入是否在字典中。如果用户输入不在字典中,则输出应该说“坏月”'我的代码如下:

months = {1: 'January',
          2: 'February',
          3: 'March',
          4: 'April',
          5: 'May',
          6: 'June',
          7: 'July',
          8: 'August',
          9: 'September',
          10: 'October',
          11: 'November',
          12: 'December'}
choice = input

choice = input('Enter an integer value for a month:')
result = choice

if int(choice) in months:
    print('months')

else:
    print('Bad month')

当输入任何大于12的整数时,输出为“坏月”'但是当我从1-12输入一个数字时,输出只有几个月?我尝试了很多印刷语句,但没有尝试过。我被卡住了。

2 个答案:

答案 0 :(得分:1)

您需要将用户输入从input()转换为string转换为integer,您可以将其与词典的keys()进行比较,然后打印value的相应key

months = {1: 'January',
          2: 'February',
          3: 'March',
          4: 'April',
          5: 'May',
          6: 'June',
          7: 'July',
          8: 'August',
          9: 'September',
          10: 'October',
          11: 'November',
          12: 'December'}

choice = int(input('Enter an integer value for a month: ')) # cast user input to integer

if choice in months:        # check if user input exists in the dictionary keys
    print(months[choice])   # print corresponding key value
else:
    print('Bad month')

演示:

Enter an integer value for a month: 4
April

答案 1 :(得分:0)

你可以在这里找几条路线。如果您想保留代码大纲,请尝试

if int(choice) in months:
    print('months')

else:
    print('Bad month')

正如一些评论所暗示的,更好的方法可能是使用get语法(tutorial)。

months.get(input, "Bad Month") 

将检查input,如果找不到,请返回 Bad Month 。只需print get函数返回的内容,它就会完成您要查找的内容。