首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中检查是否按了Enter键?

如何在Python中检查是否按了Enter键?
EN

Stack Overflow用户
提问于 2014-09-06 22:46:00
回答 3查看 6.5K关注 0票数 0

在下面编写的程序中,如果我按enter,我会得到:

代码语言:javascript
复制
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“键是否被按下的方法时找不到答案。有人能帮帮忙吗?

代码语言:javascript
复制
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!")
EN

回答 3

Stack Overflow用户

发布于 2014-09-06 22:55:36

当您只是在input提示符下按enter键时,您实际上输入了一个空字符串。所以你会尝试将一个空字符串转换成一个数字,但这是行不通的。相反,您应该首先查看字符串,看看它是否为空,在这种情况下,用户只需按enter键,否则请尝试转换它:

代码语言:javascript
复制
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')

    # …
票数 3
EN

Stack Overflow用户

发布于 2014-09-06 22:54:47

这是因为Your guess

int(x)函数将数字或字符串x转换为整数,如果没有给定参数,则返回0。如果x是一个数字,它可以是纯整数、长整型或浮点数。如果x是浮点数,则转换将向零截断。如果参数超出整数范围,该函数将返回一个long对象。如果x不是数字或者给定了基数,则x必须是以基数表示的字符串或Unicode对象。好了!

如果您使用的是Python2.x,则可以使用raw_input()函数来获取用户的常规输入。

票数 0
EN

Stack Overflow用户

发布于 2019-07-14 01:03:39

我通过使用ord()获得"Enter“代码来解决我的问题。print( ord(key.char) ) 13 if ord(key.char) == 13:打印(“按下Enter”)否则:打印(“任何其他按下的键”)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25701407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档