Python验证用户输入的多个字符串



我已经做了一整天了,还是没做完。任何帮助将非常感激!在Python中,我想循环3次,要求用户输入一周中的1天或更多天(例如,Please enter the day(s) of the week:),输入以一个列表结束。结果数据可能如下所示:

List1 = ['Monday','Wednesday','Friday']
List2 = ['Tuesday','Friday']
List3 = ['Wednesday']

此外,我想验证输入,以便我知道每个输入的日期都是正确拼写的,并使用适当的大写字母。唯一有效的条目是星期一、星期二、星期三、星期四、星期五、星期六、星期日。

建议吗? ?谢谢! !

使用askfordays()询问用户天数(默认为3次)。返回一个列表的列表。

根据你的例子,你可以这样使用它:list1, list2, list3 = askfordays()

validate()函数不返回任何东西。它的唯一目的是在输入不正确时引发ValueError异常。

validate()函数在"用户输入"中被调用。循环,直到输入正确为止。

WEEKDAYS = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
def validate(days: list[str]) -> None:
for day in days:
if day not in WEEKDAYS:
raise ValueError(f"Unknown day : {day}")
def askfordays(ntimes: int = 3) -> list[list[str]]:
res = []
for _ in range(ntimes):
while True:  # loop until user input is correct
days = input("Please enter the day(s) of the week (comma-separated) :n")
days = [d.strip() for d in days.split(",")]
try:
validate(days)
except ValueError as e:
print(e)
else:
res.append(days)
break
return res

创建一个函数,想调用多少次就调用多少次。

valid_days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
def validate_entry():
new_list = []
print("NOTE: Seperate days with comma(,) E,g: Sunday, Mondayn")
user_entry = input("Please enter the day(s) of the week: ").title()
if ", " or "," in user_entry:
for day in user_entry.split(","):
day = day.strip()
if day in valid_days:
new_list.append(day)
else:
print(f"{day} is not a correct spelling.")
return new_list


list1 = validate_entry()
list2 = validate_entry()
list3 = validate_entry()
print(f"{list1} n{list2} n{list3}")

输出:

['Monday','Wednesday','Friday']
['Tuesday','Friday']
['Wednesday']

最新更新