[英]How to check that the Enter key was pressed in Python?
在下面編寫的程序中,如果我按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!")
當您在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')
# …
這是因為Your guess
!
int(x)函數將數字或字符串x轉換為整數,如果未提供任何參數,則返回0。 如果x是數字,則可以是純整數,長整數或浮點數。 如果x為浮點數,則轉換將截斷為零。 如果參數超出整數范圍,則該函數將返回一個長對象。 如果x不是數字或給定base,則x必須是代表基數為整數的整數的字符串或Unicode對象。 !
如果您使用的是python 2.x,則可以使用raw_input()
函數進行用戶的常規輸入。
我通過使用ord()獲得“輸入”代碼來解決我的問題。 print(ord(key.char))13如果ord(key.char)== 13:print(“ Enter Entered”)else:print(“按下其他任何鍵”)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.