如何为用户输入的密钥调用字典? 将 tile_size 的键声明为 //放弃 month_dict 循环从month_dict[month]中移除for和for的声明

问题描述

我想拨打给定的月份号码。如果用户输入 1 等,我希望输出类似于“一月的天数是 30”。

 while True:
 month_dict = {
    "1": "January","2": "February","3": "march","4": "April","5": "May","6": "June","7": "July","8": "August","9": "September","10": "October","11": "November","12": "December" 
    }

month = int(input("Enter the number of month:"))

def number_of_date(month):
    for value in month_dict.items():
        if month in [1,3,5,7,8,10,12]:
            print("Number of days in",value,"is 31!!!")
        elif month in [4,6,9,11]:
            print("Number of days in","is 30!!!")
        elif month == 2:
            print("Number of days in","is 28!!!")
        else:
            print("There is not a month like that.. Check your writing!")

number_of_date(month)        

解决方法

给你。只需稍微重新排序和修复即可。基础非常扎实。

month_dict = {
    1: "January",# removed "" around the numbers,because inputs are immediately converted to ints.
    2: "February",3: "March",4: "April",5: "May",6: "June",7: "July",8: "August",9: "September",10: "October",11: "November",12: "December" 
    }
    
def number_of_date(month): # removed for loop. You only need to print it once
    if month in [1,3,5,7,8,10,12]:
        print("Number of days in",month_dict[month],"is 31!!!") # month_dict[month] returns the correct name.
    elif month in [4,6,9,11]:
        print("Number of days in","is 30!!!")
    elif month == 2:
        print("Number of days in","is 28!!!")
    else:
        print("There is not a month like that.. Check your writing!")


while True: #while loop only around function call. No need to redefine functions every time
    month = int(input("Enter the number of month:"))
    number_of_date(month)  
#notice that your program will never end. Maybe loop only while month != -1. So -1 can be used to exit the program.
,

tile_size 的键声明为 //

主要问题是 column = mouse_pos[0] // tile_size row = mouse_pos[1] // tile_size 中的键是字符串。如果您将它们更改为整数:

month_dict

然后您可以简单地使用 int 获取与其编号相关联的月份名称。

放弃 month_dict 循环

丢失函数内的 month_dict = { 1: "January",2: "February",12: "December" } 将使其打印单个最终结果。

month_dict[month]中移除forfor的声明

最后,还要考虑这样做以避免一遍又一遍地声明相同的值。

完整代码如下:

month_dict

我想就是这样!
如果接下来要检查闰年,请参阅 this tutorial

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...