Форум сайта python.su
Здравствуйте! Я только начинаю изучать язык по видеоурокам и по результатам одного урока написал вот это:
user_data = str(input(“Do you remember everything? ”))
if user_data == “Yes” :
print(“Great! You are smart))”)
if user_data == “No” :
print(“Watch video number 5 again”)
if user_data != “Yes” or “No” :
print(“Error”)
Но не могу понять, почему при вводе “Yes” и “No”срабатывает 3 условие и выводиться “Error”.
И еще один вопрос: как прописать в условии не одно значение - (только) “Yes”, а сразу несколько, например, чтобы выполнялось тоже самое условие, но при вводе также “”yes“, ”Y“, ”y", то есть сделать данные фразы аналогичными
Вероятно для этого есть иные функции, но хотелось бы понять, как это сделать с помощью функции if, но если есть другой способ (легче, проще), то какую функцию нужно использовать?
Офлайн
vavilon
Но не могу понять, почему
vavilon
И еще один вопрос
if user_data not in ('Yes', 'No'): ...
Отредактировано py.user.next (Янв. 31, 2023 22:12:22)
Офлайн
py.user.nextСпасибо! Это работает, при условии двух постоянных: Yes и No. Но я попробовал ввести больше постоянных user_data и все слетает. Подскажите, в чем ошибка?
Офлайн
код вставлять между этими тегами для правильного отображения на форуме
[code python]здесь пишется код[/code]
Офлайн
Тогда еще раз…
Спасибо! Это работает, при условии двух постоянных: Yes и No. Но я попробовал ввести больше постоянных user_data и все слетает. Подскажите, в чем ошибка?
user_data = str(input(“Do you remember everything? ”)) if user_data == “Yes” and “yes” and “Y” and “y” : print(“Great! You are smart))”) if user_data == “No” or “no” or “N” or “n” : print(“Watch video number 5 again”) if user_data not in ('Yes', ‘yes’, ‘Y’, ‘y’, ‘No’, ‘no’, ‘N’, ‘n’): print(“Error”)
Офлайн
user_data = str(input('Do you remember everything? ')) if user_data in ('Yes', 'yes', 'Y', 'y'): print('Great! You are smart))') elif user_data in ('No', 'no' ,'N' ,'n'): print('Watch video number 5 again') else: print('Error')
Офлайн
vavilon
Предполагаю, что я делаю какую-то дичь, но хочется разобраться и понять как это устроено
vavilonУ операций есть приоритет. Когда операции находятсяв одном выражении, сначала выполняются одни операции, а потом уже выполняются другие операции.if user_data == "Yes" and "yes" and "Y" and "y": ...
if ((((user_data == "Yes") and "yes") and "Y") and "y"): ...
if user_data == "Yes" or user_data == "yes" or user_data == "Y" or user_data == "y": ...
if ((((user_data == "Yes") or (user_data == "yes")) or (user_data == "Y")) or (user_data == "y")): ...
Отредактировано py.user.next (Фев. 1, 2023 23:48:52)
Офлайн
py.user.nextСпасибо за текстовое объяснение принципов работы. Этого много где не хватает. Смотря на код, сложно понять принцип его работы, если он (принцип) тебе не известен. Не скажу, что изучение документации мне все объяснило, но я обязательно со временем пойму ее)))
Сначала вычисляются самые глубокие скобки, потом вычисляются скобки чуть менее глубокие, потом вычисляются скобки на самой поверхности. Изнутри наружу оно идёт постепенно шаг за шагом.
У операций есть приоритет и есть очерёдность вычисления операндов. То есть операции ещё могут вычисляться слева направо, а могут справа налево. Есть также операции в математике, а есть операции в языках программирования. И они тоже могут быть одинаковыми, а могут не быть одинаковыми, хотя выглядят одинаково. Поэтому при работе с операциями в языке программирования надо сначала документацию по ним прочитать. Для питона она здесь.
user_data = str(input("Do you remember everything? ")) if user_data == "Yes": print("Great! You are smart))") if user_data == "yes": print("Great! You are smart))") if user_data == "Y": print("Great! You are smart))") if user_data == "y": print("Great! You are smart))") if user_data == "No": print("Watch video number 5 again") if user_data == "no": print("Watch video number 5 again") if user_data == "N": print("Watch video number 5 again") if user_data == "n": print("Watch video number 5 again") else: print("Error")
Офлайн
fucking_vavilonin - это операция.
не известен принцип работы оператора (или как это называется?) in
Офлайн