Как представлять вложенные элементы при использовании элементов ИЛИ или И?

#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))  

введите описание изображения здесь