最近我有一个学校的项目,在这个项目中,我需要把一个用户输入作为1-12(代表一年中的月份)和用户年龄之间的整数,然后做一个数学等式来产生一个数字,这个数字将吐出用户的年龄和出生月份(是的,我知道这是多余的,但我必须做数学等式,而不是吐出用户的输入)。我是一个想要100%输入的孩子,他试图让用户通过字符串输入月份,例如(Jan=1)使用列表和if语句。如果语句不改变birthNum变量,那么下面的代码就不会像用户输入东西时那样工作。所以请帮帮我,因为我几乎什么都试过了,什么都不管用,但我觉得好像我就快成功了。你知道吗
下面是将用户输入(字符串)转换为整数的代码:
birthNum = 0
listOfMonths = ["January", "Jan", "january", "jan", "1", "Febuary", "Feb", "febuary", "feb", "2", "March", "Mar", "march", "mar", "3", "April", "Apr", "april", "apr", "4", "May", "may", "5", "June", "Jun", "june", "jun", "6", "July", "Jul", "july", "jul", "7", "August", "Aug", "august", "aug", "8", "September", "Sept", "september", "sept", "9", "October", "Oct", "october", "oct", "10", "November", "Nov", "november", "nov", "11", "December", "Dec", "december", "dec", "12"]
janList = ["January", "Jan", "january", "jan", "1"]
febList = ["Febuary", "Feb", "febuary", "feb", "2"]
marList = ["March", "Mar", "march", "mar", "3"]
aprList = ["April", "Apr", "april", "apr", "4"]
mayList = ["May", "may", "5"]
junList = ["June", "Jun", "june", "jun", "6"]
julList = ["Jul", "july", "jul", "7"]
augList = ["September", "Sept", "september", "sept", "9"]
septList = ["September", "Sept", "september", "sept", "9"]
octList = ["October", "Oct", "october", "oct", "10"]
novList = ["November", "Nov", "november", "nov", "11"]
decList = ["December", "Dec", "december", "dec", "12"]
(birthMonthInput) = input("Please put in your birth month: ")
if (birthMonthInput == (janList)):
birthNum = int(1)
if (birthMonthInput == (febList)):
birthNum = int(2)
if (birthMonthInput == (marList)):
birthNum = int(3)
if (birthMonthInput == (aprList)):
birthNum = int(4)
if (birthMonthInput == (mayList)):
birthNum = int(5)
if (birthMonthInput == (junList)):
birthNum = int(6)
if (birthMonthInput == (julList)):
birthNum = int(7)
if (birthMonthInput == (augList)):
birthNum = int(8)
if (birthMonthInput == (septList)):
birthNum = int(9)
if (birthMonthInput == (octList)):
birthNum = int(10)
if (birthMonthInput == (novList)):
birthNum = int(11)
if (birthMonthInput == (decList)):
birthNum = int(12)
print (birthNum)
您的条件是检查字符串是否计算为列表。你要找的是
in
键工作也就是说,代码中还有很多其他问题。你知道吗
为此使用列表是非常不好的。您的解决方案需要大约5*12次查找才能获得与字符串关联的值。你知道吗
可以在
O(1)
中完成这个用例的一种更快的数据结构是dict。 尝试将代码格式化为以下格式:然后,您只需执行以下操作即可获得解决方案:
阅读python data structures了解一个好的概述。词典见第5.5节
相关问题 更多 >
编程相关推荐