bool (input ("Enter:") всегда возвращает True - PullRequest
0 голосов
/ 03 мая 2020

Вы также можете конвертировать строки в логические значения, если строки содержат либо True, либо False (и ничего больше). Например:

status = bool(input('OK to proceed: '))
print(status)
print(type(status))

Когда мы запускаем этот вывод:

OK to proceed: False
True
<class 'bool'>

Он по-прежнему возвращает True, даже если мы введем 0 или False. Почему это так?

1 Ответ

2 голосов
/ 03 мая 2020

Как и другие последовательности Python, строка является истинной (поэтому bool(the_string) равна True), если она не пуста. Только пустые строки преобразуются в False.

truthy = bool("any content")
falsey = bool("")

Если вы читали учебник, в котором предлагалось ввести False в приглашении от input(), вы получите логическое значение False, это может быть что он был написан для Python 2, где input эквивалентен eval(input()) в Python 3. Обычно это не то, что вам нужно, поскольку он позволяет пользователю, вводящему текст, запускать любой код Python, который он может вписываться в выражение (включая выражения с побочными эффектами, такими как удаление всех файлов на жестком диске).

...