Будучи новым для Python, у меня есть этот псевдо код на мой взгляд:Python: IF statemant и множественная ИЛИ
if vars 1-4 are passed and all of them are 1:
if it’s var1 or 2:
print("a")
if it’s var3
print("b")
if it’s var4
print("c")
if vars 1-4 are passed and all of them are either 2, 3 or 4:
if it’s var1 or 2:
print("d")
if it’s var3:
print("e") and so on
if vars 1-4 are passed and all of them are either 0 or 5-10:
if it’s var1 or 2:
print("f") and so forth
Я попробовал несколько подходов, но я все же управлять им. Например:
if arg in [var1, var2, var3, var4] and [var1, var2, var3, var4] == 1:
if var in [var1, var2]:
print("a")
if var == var3:
print("b")
if var == var4:
print("c")
if arg in [var1, var2, var3, var4] and 2 <= [var1, var2, var3, var4] <= 4:
if var in [var1, var2]:
print("d") #and so on
if arg in [var1, var2, var3, var4] and 5 <= [var1, var2, var3, var4] <= 10: #+ put the 0
if var in [var1, var2]:
print("f") #and so forth
Часть с if test in [var1, var2, var3, var4]
прекрасно работает с использованием всех 4 переменных, но не так с проверкой, если они равны 1. Кроме того, вторая часть, с диапазоном (и третий с диапазоном + 0) еще хуже. Возможно, я мог бы разбить все эти и проверить их индивидуально с OR перед каждым и каждым из них, но это невозможно в конечном итоге с большим количеством переменных. Наверняка, должен быть еще какой-то питонический путь?
Для получения разъяснений по использованию: код используется внутри функции, которая принимает один аргумент (1 из 4 переменных за один раз), в зависимости от того, какой (var1-4) различных распечаток должны быть сделаны. Переменные вводятся пользователем, хранящиеся вне функции, и могут находиться в диапазоне 0-10, независимо друг от друга.
' list' никогда не будет равен «int», если вы не измените их до неузнаваемости. Вам действительно нужно проверить [официальный учебник Python] (https://docs.python.org/3.4/tutorial/index.html). – TigerhawkT3
С проблемой, которую вы пытаетесь решить с помощью этого кода? –
Что такое 'test'? Что означает «если они пройдены»? Что означает «если это var1»? Что именно вы пытаетесь сделать здесь? – tzaman