我的python代码有一个问题就是发出哔哔声。 它只会发出无限循环的哔哔声,即使它应该停止。
import winsound
import time
z = 1
while z == 1:
b = input('Enter number of beeps required')
print(b)
a = input('Is this number correct?')
if a == "yes":
print('Python shall use this number')
z = 2
if a == "no":
b = input('Enter number of beeps required')
x = 1
y = -1
while x == 1:
freq = 1500
dur = 50
winsound.Beep(freq,dur)
y += 1
if y == b:
x = 2
感谢您的帮助
答案 0 :(得分:4)
如果您使用的是Python 3.x,input()
将返回一个字符串对象。
将字符串对象与int进行比较始终返回False。
>>> '1' == 1
False
在比较之前,你应该将string对象转换为int:
b = int(b)
顺便说一下,最好使用以下代替while
循环:
for i in range(int(b)):
...
答案 1 :(得分:3)
你的问题是Python 3上的input()
返回一个字符串,因此b
将是一个字符串,因此y == b
永远不会是True
。
使用
b = int(input('Enter number of beeps required'))
答案 2 :(得分:2)
更改
b=input ('Enter number of beeps required')
到
b=int(input ('Enter number of beeps required'))
您正在将b
作为字符串阅读,并将其与
int
进行比较
if y == b:
永远不会是True
。这就是为什么你的代码无限循环。