第6行的以下代码的问题是,如果用户输入带有大写字母的星期几,它将返回false。即"星期二"。我希望这返回"(day.capitalize())"
day = input("Please enter a day of the week")
def verify_day(day):
days_list = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
for x in days_list:
if x == day or x.capitalize == day:
return (day.capitalize())
elif day not in days_list:
return ("false")
print(verify_day(day))
答案 0 :(得分:4)
if x == day.lower()
这样你就不必检查两个实例。你也可以说
if day.lower() in days_list
并保存循环
更清晰:
def verify_day(day):
day_list = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
if day.lower() in day_list:
return day.upper()
else:
return False
答案 1 :(得分:3)
如果所有元素都为真,则更加模糊的解决方案可以使用and
返回最后一个已评估元素的技巧,否则当其中一个条件为false时,它将停止计算。
示例:
13 and 23
返回23而不是True
False and 33
返回False(它甚至不评估第二个元素)
所以你可以使用这个技巧并做:
return day.lower() in days_list and day.capitalize()
这将首先评估是否为day.lower() in days_list
,如果您的日期不在列表中,则会使and
短路并返回False。
否则它将返回第二个评估条件,即day.capitalize()
答案 2 :(得分:2)
您可以在比较前删除所有大写字母:
import string
day = input("Please enter a day of the week")
def verify_day(day):
days_list =["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
for x in days_list:
if x == day.lowercase: # <----- this would accepte any capitalization of the input
return (day.capitalize())
elif day not in days_list:
return ("false")
顺便说一句,您不必在列表上进行迭代,只需检查:
def verify_day(day):
days_list =["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
if day.lowercase() in days_list :
return (day)
else :
return ("false")
答案 3 :(得分:0)
您可以从比较中忽略大小写。
参考this问题。
day = day.rstrip().lower()
if x == day
return (day.capitalize())
elif day not in days_list:
return ("false")
答案 4 :(得分:0)
您应首先降低日期输入以进行检查,然后将其大写为返回值。
day = input("Please enter a day of the week")
def verify_day(day):
days_list = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
if day.lower() in days_list:
return day.capitalize()
else:
return False
答案 5 :(得分:0)
始终将day.lower()与您的data_list项目进行比较,并且通过执行此用户收到返回日期将获得他/她输入的任何日期值(即星期一或星期一)。
day = input("Please enter a day of the week")
def verify_day(day):
days_list = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]
for x in days_list:
if x == day.lower():
return (day)
elif day not in days_list:
return ("false")
print(verify_day(day))