#python #boolean #boolean-logic #boolean-algebra
Вопрос:
a=int(input("Enter a")) b=int(input("Enter b")) c=int(input("Enter c")) if(agt;b and agt;c): print("a is greatest") elif(bgt;a and bgt;c): print("b is greatest") else: print("c is greatest")
Это мой код, чтобы найти наибольшее число между 3 числами.
У меня в учебнике написан другой код, и я хочу преобразовать его в свой тип кода.
Код, написанный в учебнике, выглядит следующим образом-:
num1=int(input("Enter num1")) num2=int(input("Enter num2")) num3=int(input("Enter num3")) if(num1gt;num2): if(num1gt;num3): print(num1,"is greater than",num2,"and",num3) else: print(num3, "is greater than", num1, "and", num2) elif(num2gt;num3): print(num2,"is greater than",num1,"and",num3) else: print("The three numbers are equal")
Я хочу преобразовать эти операторы if в логическое выражение в условиях if и условиях elif, как мне это сделать?
Комментарии:
1. У вас уже есть условия if с булевыми операторами, так в чем проблема?
Ответ №1:
if (num1gt;num2) and (num1gt;num3): print(num1,"is greater than",num2,"and",num3) elif (num3gt;num1) and (num3gt;num2): print(num3, "is greater than", num1, "and", num2) elif (num2gt;num3) and (num2gt;num1): print(num2,"is greater than",num1,"and",num3) else: print("The three numbers are equal")
Вы всегда можете использовать max(num1,num2,num3)
функцию, но я думаю, что вы этого не хотите.
Редактировать:
В примере в вашей книге между внешним if и его вложенным if-else существует неявный оператор AND. Так
if(num1gt;num2): if(num1gt;num3): print(num1,"is greater than",num2,"and",num3) else: print(num3, "is greater than", num1, "and", num2)
на самом деле эквивалентно
if(num1gt;num2) and (num1gt;num3): print(num1,"is greater than",num2,"and",num3) if(num1gt;num2) and (num1lt;=num3): print(num3, "is greater than", num1, "and", num2)
Аналогично,
elif(num2gt;num3): print(num2,"is greater than",num1,"and",num3)
эквивалентно
if(num1lt;=num2) and (num2gt;num3): print(num2,"is greater than",num1,"and",num3)
Комментарии:
1. О. Спасибо. Это именно тот код, который я написал сначала. Я думал, нужно ли в любом случае переводить код в логические выражения или нет. Хотел бы этому научиться.
2. Что ты имеешь в виду? это логические выражения, нет?
3. да, это логические выражения, код, который вы написали здесь. но я хочу узнать, как изменить вложенное выражение if на логическое выражение? Мне нужна процедура преобразования вложенных ifs в логическое выражение.
4. @ladhee смотрите мою правку
Ответ №2:
Вот динамичный подход. Это немного сложно, но работает отлично.
Если вы внимательно прочтете его, то сможете понять его.
items = [int(input("Enter a: ")), int(input("Enter b: ")), int(input("Enter c: "))] highest = items[0] letter = "A" for index, item in enumerate(items): if item gt; highest: highest = item letter = chr(ord("A") index) print("{letter} has the highest value of {highest}".format(letter=letter, highest=highest))