Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个程序有什么错误。用于在python中查找正数或负数_Python_Python 3.x - Fatal编程技术网

这个程序有什么错误。用于在python中查找正数或负数

这个程序有什么错误。用于在python中查找正数或负数,python,python-3.x,Python,Python 3.x,您可能期望模运算符也会给出负数作为可能的结果。但这不是Python中的默认情况(我的重点是): 模运算符总是产生一个与第二个操作数符号相同的结果(或零) -5%2#输出:1 因此,您基本上有两种选择(以我的首选顺序): 与零相比(它可读且简单,可能是最容易理解的代码,在其他语言中也有效): x=int(输入(“输入数字”)) 如果x>=0: 打印(“正片”) 其他: 打印(“负片”) 检查转换后的数字的字符串表示形式是否以减号开头(它也很简单,但比版本1更复杂): x=int(输入(“输入

您可能期望模运算符也会给出负数作为可能的结果。但这不是Python中的默认情况(我的重点是):

模运算符总是产生一个与第二个操作数符号相同的结果(或零)

-5%2#输出:1
因此,您基本上有两种选择(以我的首选顺序):

  • 与零相比(它可读且简单,可能是最容易理解的代码,在其他语言中也有效):

    x=int(输入(“输入数字”))
    如果x>=0:
    打印(“正片”)
    其他:
    打印(“负片”)
    
  • 检查转换后的数字的字符串表示形式是否以减号开头(它也很简单,但比版本1更复杂):

    x=int(输入(“输入数字”))
    如果str(x).startswith(“-”):
    打印(“负片”)
    其他:
    打印(“正片”)
    
  • 还有第三种选择,使用
    math.fmod
    获得与其他语言中模运算符类似的行为:

  • 0
    进行比较:

    导入数学
    x=int(输入(“输入数字”))
    z=数学fmod(x,2)
    如果z==0:
    打印(“正片”)
    其他:
    打印(“负片”)
    
  • -1
    进行比较:

    导入数学
    x=int(输入(“输入数字”))
    z=数学fmod(x,2)
    如果z==-1:
    打印(“负片”)
    其他:
    打印(“正片”)
    
  • 因此,与您提供的代码相比,这是最相似的代码。但这两个代码片段都会导致不必要的行为。这是因为Python实现了IEEE 754标准,因此
    0
    -0
    之间没有区别。这意味着没有简单的方法可以确保此代码按预期工作,如中所述,例如:

    根据IEEE 754标准,负零和正零应与常用(数值)比较运算符(如C和Java的==运算符)进行相等的比较。在这些语言中,可能需要特殊的编程技巧来区分这两个值[…]


    z
    从来都不是负数。偶数
    x
    为0,奇数
    x
    为1(即使
    x
    为负数)。这是否回答了您的问题?
    x = int(input("Enter a number"))
    #get input from the user as integer
    z = x % 2
    #store the input in z and find mod by 2
    if z == -1:
    #to find positive or negative
        print("negative")
    else:
        print("positive")