【问题标题】:Python program taking two integer inputs to find even and oddPython程序采用两个整数输入来查找偶数和奇数
【发布时间】:2018-08-28 17:57:46
【问题描述】:

这里是代码。当我输入偶数(第一个数字)说 4 和奇数(第二个数字)说 5 时,它会打印“4 和 5 是偶数”

num_1=int(input('first number ')) 
num_2=int(input('second number ')) 

if num_1%2==0 & num_2%2==0:
    print(num_1,'and',num_2,'are even')

elif num_1%2!=0 & num_2%2!=0:
    print(num_1,'and',num_2,'are odd')

elif num_1%2!=0 & num_2%2==0:
    print(num_1,'is odd and ',num_2,'is even')

elif num_1%2==0 & num_2%2!=0:
    print(num_1,'is even',num_2,'is odd')

else:
    print('invalid entry')

【问题讨论】:

  • 您的问题/问题是什么?
  • 您好,欢迎来到 StackOverflow!您可能想看看如何最好地问:stackoverflow.com/help/how-to-ask 现在,您实际上还没有问过问题 :)
  • & 是使用位的二元运算符。您应该改用and
  • 输出没有意义。它混淆了偶数和奇数
  • 感谢它的工作。但是为什么“和”起作用了

标签: python


【解决方案1】:

你已经很接近了! python中的&运算符与python中的'and'不同。 'and' 测试两个条件在逻辑上都为真,而 '&' 是一个位运算符,可以满足逻辑真、假和整数的条件,因为这些可以按位组合,而 'and' 只是描述逻辑。

num_1=int(input('first number '))
num_2=int(input('second number '))

if num_1%2==0 and num_2%2==0:
    print(num_1,'and',num_2,'are even')

elif num_1%2!=0 and num_2%2!=0:
    print(num_1,'and',num_2,'are odd')

elif num_1%2!=0 and num_2%2==0:
    print(num_1,'is odd and ',num_2,'is even')

elif num_1%2==0 and num_2%2!=0:
    print(num_1,'is even',num_2,'is odd')

else:
    print('invalid entry')

【讨论】:

    【解决方案2】:

    您使用了错误的运算符:您使用按位“and”代替逻辑“and”。按位“and”具有更高的优先级,因此您的 if 语句的组织方式如下:

    if (num_1 % 2) == ((0 & num_2) % 2) == 0:
    

    & 项更改为逻辑运算符and

    【讨论】:

    • 作为新的贡献者,我认为您的答案有点难以解释。尽管您的回答很好,但我认为编写更简单的解决方案并遵循此解决方案会很好理解。
    【解决方案3】:

    & 是位运算符,而您需要的是逻辑运算符 and,相当于 Python 中的 &&

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多