对于范围(5)中的i和范围(2)中的k:TypeError:'bool'对象不可迭代

时间:2019-03-26 19:58:59

标签: python boolean

我敢肯定,有更好的方法可以做最后的陈述。只是尝试检查是否在weekdayweekend中找到了dayOfWeek

到目前为止,我的代码:

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")

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您的尝试被解析为

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

,似乎k是先前分配的。 range(5)本身是真实的,所以and表达式的结果就是比较 k in range(2)的真实性。

将列表(或更确切地说,它们的迭代器)与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")