0

Здравствуйте, какие то проблемы с оператором if

Код #Написать функцию season, принимающую 1 аргумент — номер месяца (от 1 до 12), и возвращающую время года, которому этот месяц принадлежит (зима, весна, лето или осень). x = int(input ()) if x == 1 or 4 or 5: print ("зима") if x == 3 or 4 or 5: print("весна") if x == 6 or 7 or 8: print("лето") if x == 9 or 10 or 11: print("осень") else: print("нету такого месяца") """ x = int(input()) if x == 1: print("зима") if x == 2: print("зима") if x == 3: print("весна") if x == 4: print("весна") if x == 5: print("весна") if x == 6: print("лето") if x == 7: print("лето") if x == 8: print("лето") if x == 9: print("осень") if x == 10: print("осень") if x == 11: print("осень") if x == 12: print("зима") else x <1 and >12: print ("нету такого месяца") """ во втором случае более менее работает, хоть и громоздко. Но а в первом случае что бы не назвал на экран выводит все 4 времена года.

27th Dec 2022, 5:16 PM
Johny Luma
Johny Luma - avatar
12 ответов
+ 1
Я нашёл решение. один знак = используется для переменных (variable) , вроде так переводится. Вот, что я сделал: x = int(input()) if x == 12 or x == 1 or x == 2: print ("зима") elif x == 3 or x == 4 or x == 5: print("весна") elif x == 6 or x == 7 or x == 8: print("лето") elif x == 9 or x == 10 or x == 11: print("осень") else: print("нет такого месяца")
27th Dec 2022, 5:29 PM
Lamron
Lamron - avatar
+ 1
В первом случае, идёт повторение цифр: If x == 1 or 4 or 5: код If x == 3 or 4 or 5: Попробуйте исправить это. Так же, эта задача из урока или для практики? Или просто практикуетесь?
27th Dec 2022, 5:22 PM
Lamron
Lamron - avatar
+ 1
Причина по которой не работает с отдельными if оператороми, заключается в том, что программа читает как отдельные куски и они не связаны друг с другом. Иными словами, нет цепочки, они отдельны друг от друга. Чтобы была целая цепочка/построение среди if операторов, нужно использовать elif, что расшифровывается else if
27th Dec 2022, 5:30 PM
Lamron
Lamron - avatar
+ 1
name = "text" Один знак равно, используется для variables (переменные), поэтому будет неправильно его использовать для сравнения. a = 5 b = 5 Здесь, мы даём числа переменным a и b a = b a == b В первом примере выше, мы говорим: переменная а должно взять на себя число переменной b Во втором примере выше, мы сравниваем, если переменная a равняется переменной b
27th Dec 2022, 5:37 PM
Lamron
Lamron - avatar
+ 1
Второй вид кода с if сравнивает каждое число по отдельности. Каждый if оператор работает по отдельности. Поэтому если одно не верно, оно переходит к следующему
27th Dec 2022, 5:39 PM
Lamron
Lamron - avatar
+ 1
Спасибо большое))) я очень благодарен. Без тебя бы не нашел нужную инфу)) спасибо ещё раз
27th Dec 2022, 5:58 PM
Johny Luma
Johny Luma - avatar
0
Нет, я просто для себя пытаюсь. Хочу научится)) а тут я не заметил про повторение.
27th Dec 2022, 5:24 PM
Johny Luma
Johny Luma - avatar
0
В первом случае, идёт повторение цифр: If x == 1 or 4 or 5: код If x == 3 or 4 or 5: Попробуйте исправить это. Так же, эта задача из урока или для практики? Или просто практикуетесь? Нет к сожалению проблема не решилась. Все так же пишет все времена года. А если я ставлю один знак = вместо двух == так и вовсе пишет ошибку
27th Dec 2022, 5:27 PM
Johny Luma
Johny Luma - avatar
0
Да ты вроде прав. А почему один знак равно не работает объясни пожалуйста. Очень хочется знать
27th Dec 2022, 5:31 PM
Johny Luma
Johny Luma - avatar
0
И ещё очень интересно почему второй вид кода с 12 if работает нормально
27th Dec 2022, 5:33 PM
Johny Luma
Johny Luma - avatar
0
Все я понял. Но один последний вопрос. Ты сказал "Второй вид кода с if сравнивает каждое число по отдельности. Каждый if оператор работает по отдельности. Поэтому если одно не верно, оно переходит к следующему". Возможно что во втором случае нету булевых операторов типа and. Но в целом я вроде понял))) спасибо за отзывчивость, хочу поблагодарить сразу))
27th Dec 2022, 5:54 PM
Johny Luma
Johny Luma - avatar
0
Да, потому что нет других операторов: or или and Не за что, обращайся.
27th Dec 2022, 5:57 PM
Lamron
Lamron - avatar