print("Please think of a number between 0 and 100!")
low = 0
high = 100
ans = (low + high) / 2
while True:
print("Is your secret number %d " %ans)
userguess = input("Enter 'h' to indicate the guess is too high. Enter
'l' to indicate the guess is too low. Enter 'c' to indicate I guessed
correctly. ")
if userguess == 'h':
high = ans
elif userguess == 'l':
low = ans
elif userguess == 'c':
break
else :
print("Sorry, I did not understand your input.")
continue
ans = (low + high) / 2
print("Game over. Your secret number was: %d" %ans)
当数字为42和91时,它不会按照应有的方式工作。这段代码有什么问题。
答案 0 :(得分:0)
当您应该仅使用整数算术时,您将获得中间浮点值
答案 1 :(得分:0)
要回答您的问题,代码中没有任何问题。已经尝试了你提到的数字,并且它运行正常。
根据Python 3.x文档,您正确使用printf样式函数。此类转换唯一不可选的组件是
- '%'字符,用于标记说明符的开头。
醇>
因此,您正在强制从float转换为“Signed integer decimal”以正确地将其打印给用户。
一切都是正确的,在我看来,一切正常。