簡體   English   中英

如何檢查Python是否按下Enter鍵?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM