#python
Вопрос:
Я создаю последовательность для добавления списка на основе логических значений выходных данных из этого отрывка, но каждый раз, когда я запускаю последовательность, она возвращается только как истинная и не будет добавлена в список.
yesvalues = ["yes", "Yes", "yeah", "ok", "okay"]
spcharacter = (input("Are special Charaters required?: "))
if spcharacter.lower() in yesvalues:
spcharacter == True
else:
spcharacter == False
if spcharacter == True:
useableoptions.append(special)
Ответ №1:
Вы ошибочно ==
принимаете (сравнение) за =
(назначение), поэтому переменная никогда не устанавливается в качестве чего-либо, кроме строки из input()
, и никакой строки == True
нет .
Кроме того, вы можете просто назначить напрямую.
yesvalues = {"yes", "Yes", "yeah", "ok", "okay"}
spcharacter = input("Are special Charaters required?: ")
spcharacter = spcharacter.lower() in yesvalues
if spcharacter:
useableoptions.append(special)
Или, короче говоря, не используйте логические переменные
if spcharacter.lower() in yesvalues:
useableoptions.append(special)
Комментарии:
1. Спасибо за отзыв, я подумал == сослался на равные, а не на сравнение предметов.
2. Это действительно означает «равно». Подумайте о
=
том, как » присваивается значение»