Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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_Interpreter - Fatal编程技术网

我的python代码运行了几次,但只要我关闭计算机或执行其他操作,它就不会';别再跑了

我的python代码运行了几次,但只要我关闭计算机或执行其他操作,它就不会';别再跑了,python,interpreter,Python,Interpreter,运行此代码几次不会出现任何问题。在尝试向朋友展示时,它不起作用。它只是在输入之后挂起。它以前工作过好几次,但不幸的是再也没有了 我尝试过重写括号中的代码,将代码重写到本地目录,而不是我拥有的Google Drive文件夹,我甚至尝试过在普通记事本中从头重写代码。所有这些都是为了防止出现某种编码问题而尝试的。没有这样的运气。我想口译员出了点问题,但我不知道如何补救这种情况 def bin2dec(): bin = [] a = int(input("What number are

运行此代码几次不会出现任何问题。在尝试向朋友展示时,它不起作用。它只是在输入之后挂起。它以前工作过好几次,但不幸的是再也没有了

我尝试过重写括号中的代码,将代码重写到本地目录,而不是我拥有的Google Drive文件夹,我甚至尝试过在普通记事本中从头重写代码。所有这些都是为了防止出现某种编码问题而尝试的。没有这样的运气。我想口译员出了点问题,但我不知道如何补救这种情况

def bin2dec():
    bin = []
    a = int(input("What number are you converting to binary?: "))
    while a > 0:
        if a % 2 == 0:
            bin.insert(0, 0)
            a = a/2
        elif a % 2 == 1:
            bin.insert(0, 1)
            a = a/2-0.5
    else:
        #repetition
        print("Your binary equivalent is:", bin)
        repeat = input("Would you like to convert another binary number?: ")
        if repeat == "yes":
            bin2dec()

bin2dec()

哦……好的。问题似乎是我不知何故安装了两个版本的python,我猜它们互相干扰了。我不删除这个Q的原因是因为我确信我不是唯一犯这个错误的人。然而,其他人可能在努力确保版本之间的兼容性时犯了这个错误。坏主意。

原因是Python3(本文编写的版本)中的除法是浮点,而在2.x中是整数除法。这意味着你的分区什么也没做,导致了一个无限循环,因此“挂起”。啊,我明白了。我没有意识到这种差异。有没有一种方法可以根据运行的版本编写条件代码?“正确划分”功能是后端口的,可以在兼容的2.x版本中启用。更一般地说,您可能需要查看。
a=a/2-0.5
生成的数字与
a%2==0
a%2==1
->无限循环不匹配。实际上,如果2的模(除以2时的除法余数)等于1,那么它将只运行该代码。所以当65除以2时,还有1的余数,65/2等于32.5,32.5减去0.5剩下32。除了65/2==32,因为它是整数除法。我会改为
(a-1)/2
。不,那将是
65//2
在这种情况下,我使用的是v3.4.2
,那么是的。