Найти - Пользователи
Полная версия: Нужна помощь с кодом
Начало » Python для новичков » Нужна помощь с кодом
1
K03blPb
Здравствуйте. Я решаю задание ЕГЭ по информатике и возник вопрос, почему этот код
 for x in range (2):
    for y in range (2):
        for z in range (2):
            for w in range (2):
                F =  (( not x or y) and (not y or w)) or (z == (x or y))
                if not F:
                    print ( x,y,z,w )

выводит
0 1 0 0
1 0 0 0
1 0 0 1
1 1 0 0
(все верно)
А этот код
 for x in range (2):
    for y in range (2):
        for z in range (2):
            for w in range (2):
                F =  not(( not x or y) and (not y or w)) or (z == (x or y))
                if F:
                    print ( x,y,z,w )
выводит это
0 0 0 0
0 0 0 1
0 1 0 0
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 1 0
1 1 1 1
Разница ведь в том, что я переместил not на другое место. Возможно, вопрос глупый, но я бы хотел во всем разобраться.
py.user.next
K03blPb
Возможно, вопрос глупый, но я бы хотел во всем разобраться.
K03blPb
  
or (z == (x or y)
Похоже на ошибку.

И убери лишние пробелы, которые навставлял вокруг скобок. Как писать код, написано в PEP8.
marvellik
K03blPb
я переместил not на другое место
вы изменили код, точнее условие соответственно результат другой будет
 >>> f = bool((not 0 or 1) and  (not 1 or 1))
>>> f
True
>>> f = bool(not(not 0 or 1) and  (not 1 or 1))
>>> f
False
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB