在下面编写的程序中,如果我按enter,我会得到:
Traceback (most recent call last):
File "C:/Users/Claude/Desktop/practice.py", line 11, in <module>
guess = int(input("Your guess: "))
ValueError: invalid literal for int() with base 10: ''*我在搜索检测"Enter“键是否被按下的方法时找不到答案。有人能帮帮忙吗?
from random import randint
# Generates a number from 1 through 10 inclusive
random_number = randint(1, 10)
guesses_left = 6
while (guesses_left > 0):
guess = int(input("Your guess: "))
if (guess == random_number):
print ("You win!")
ans = input("Do you want to play again?:")
if (ans == 'y' or ans == 'Y'):
guesses_left = 5
guess = int(input("Your guess: "))
else:
break
#elif (guess == ""):
# print ("Please enter a number between 1 and 10")
elif(guess != random_number):
guesses_left -= 1
else:
print ("You lose!")发布于 2014-09-06 22:55:36
当您只是在input提示符下按enter键时,您实际上输入了一个空字符串。所以你会尝试将一个空字符串转换成一个数字,但这是行不通的。相反,您应该首先查看字符串,看看它是否为空,在这种情况下,用户只需按enter键,否则请尝试转换它:
guess = input("Your guess: ")
if not guess:
print("You didn't enter anything. So let's abort.")
break
try:
# try converting it to a number
guess = int(guess)
except ValueError:
# ValueError is raised when that didn't work
print("That wasn't a number!")
else:
# otherwise we now have a number which we can use
if guess == random_number:
print('You win')
# …发布于 2014-09-06 22:54:47
这是因为Your guess!
int(x)函数将数字或字符串x转换为整数,如果没有给定参数,则返回0。如果x是一个数字,它可以是纯整数、长整型或浮点数。如果x是浮点数,则转换将向零截断。如果参数超出整数范围,该函数将返回一个long对象。如果x不是数字或者给定了基数,则x必须是以基数表示的字符串或Unicode对象。好了!
如果您使用的是Python2.x,则可以使用raw_input()函数来获取用户的常规输入。
发布于 2019-07-14 01:03:39
我通过使用ord()获得"Enter“代码来解决我的问题。print( ord(key.char) ) 13 if ord(key.char) == 13:打印(“按下Enter”)否则:打印(“任何其他按下的键”)
https://stackoverflow.com/questions/25701407
复制相似问题