对于范围(5)中的i和范围(2)中的k:TypeError:“bool”对象不是iterab

2024-10-03 21:31:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我相信有更好的方法来做最后的陈述。只是想看看dayOfWeek是在weekday还是weekend中找到的

到目前为止我的代码是:

dayOfWeek = input('What day is it?\n')

weekDay = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']
weekend = ['Saturday', 'Sunday']


for i in range(5) and k in range(2):
    if dayOfWeek != weekDay[i] and dayOfWeek != weekend[k]:
        print("You didn't enter a Day of the week")

Tags: and方法代码ininputisrangeit
2条回答

要检查项目是否在列表中,只需使用in运算符:

if not(DayOfWeek in weekend or DayOfWeek in weekday):
   print('You did not enter a day!')

您的尝试被解析为

for i in (range(5) and (k in range(2))):

似乎k是以前分配的range(5)本身是真实的,因此and表达的结果就是比较的真实性

将列表(或者更确切地说,它们的迭代器)与itertools.chain链接在一起,然后使用not in

from itertools import chain

if dayOfWeek not in chain(weekDay, weekend):
    print("You didn't enter a Day of the week")

相关问题 更多 >