для i в диапазоне (5) и k в диапазоне (2): TypeError: объект 'bool' не повторяется - PullRequest
1 голос
/ 26 марта 2019

Я уверен, что есть лучший способ сделать последнее утверждение.Просто пытаюсь проверить, найден ли 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")

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Ваша попытка проанализирована как

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")
1 голос
/ 26 марта 2019

Чтобы проверить, есть ли элемент в списке, просто используйте оператор in:

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