не понимает логический вывод при сравнении истинных и ложных утверждений - PullRequest
0 голосов
/ 11 марта 2020

для кода ниже, я не понимаю, как это работает. Я пытаюсь выучить основы в Интернете, и что бы я ни сломал ниже. но если значение флага изначально ложно, то по существу в четвертой строке написано ложь = ложь или ложь .... что равно ИСТИНА

def any_lowercase4(s):

    flag = False
    for c in s:
        flag = flag or c.islower()
    return flag

print(any_lowercase4('TT'))

Затем будет напечатано False

Ответы [ 2 ]

1 голос
/ 11 марта 2020

На самом деле False or False является ложным (не так, как вы предлагаете)

Это можно увидеть на следующем простом примере:

>>> x = False
>>> y = False
>>> print (x or y)
False
>>> z = True
>>> print (x or z)
True
>>> 

Полная таблица истинности для or:

F or F = F
T or F = T
F or T = T
T or T = T

, где T = True и F = False

0 голосов
/ 11 марта 2020

print (any_lowercase4 ('TT')) по существу говорит, пожалуйста, проверьте, есть ли какой-либо символ ниже, а это не так. Итак, либо проверьте Tt, который выводит True. В Python islower () - это встроенный метод, используемый для обработки строк. Методы islower () возвращают «True», если все символы в строке строчные, в противном случае возвращает «False».

b='Tt' 
c='tt' 
print (b. islower())
print (c. islower())

for i in b:
    print (b. islower())

Вывод False True False False

...