如何使用Python中的输入输入整数

时间:2014-11-01 19:57:49

标签: python python-3.x input int

我正在尝试自学如何使用Python进行编码,这是我第一次发布到Stack Overflow,所以请原谅这篇文章中的任何不当行为。但是让我们做对了。

我正在尝试使用input命令返回一个整数。我也完成了我的研究,所以下面是我在Python 3.4中的多次尝试以及随后的结果:

尝试#1

guess_row = int(input("Guess Row: "))

我回过头来看:

Traceback (most recent call last):
File "<input>", line 1, in <module> 
ValueError: invalid literal for int() with base 10: 'Guess Row: 2`

尝试#2

guess_row = float(input("Guess Row: "))

我回过头来看:

Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: could not convert string to float: "Guess Row: 2""

尝试#3

try:
    guess_row=int(input("Guess Row: "))
except ValueError:
    print("Not an integer")

在这里,我回过头来看看:

Guess Row: 2
Not an integer

虽然它返回了一些东西,但我知道这是错误的,因为,对于一个,输入以字符串形式返回,它也返回打印命令。

重点是,我尝试过int,float和try,到目前为止还没有任何工作。有什么建议?我只是希望能够输入一个整数并将其作为一个整数返回。

3 个答案:

答案 0 :(得分:4)

您的第三次尝试是正确的 - 但是在此代码之前/之后guess_row会发生什么?例如,请考虑以下事项:

a = "Hello"
try:
    a = int(input("Enter a number: "))
except ValueError:
    print("Not an integer value...")
print(str(a))

如果输入有效数字,最后一行将打印出您输入的值。如果没有,将引发异常(显示except块中的错误消息)并且a将保持不变,因此最后一行将打印&#34; Hello&#34;代替。

您可以对此进行优化,以便无效的数字会提示用户重新输入值:

a = None
while a is None:
    try:
        a = int(input("Enter a number: "))
    except ValueError:
        print("Not an integer value...")
print(str(a))

答案 1 :(得分:2)

为了说明这些评论,请参阅3.4.2 Idle Shell on Windows,python.org(PSF)installer

>>> n = int(input('Guess1: '))
Guess1: 2
>>> n2 = float(input('Guess2: '))
Guess2: 3.1
>>> n, n2
(2, 3.1)

您使用的系统是什么,以及如何安装Python?

答案 2 :(得分:1)

  

然而,我注意到一些奇怪的事情。如果我只使用运行整个代码的传统运行(即绿色按钮)来运行代码,而不是通过按F2来尝试执行单独的代码行,则代码可以工作。有谁知道为什么会这样?

这似乎是Eclipse中的问题,来自the PyDev FAQ

  

为什么raw_input()/ input()在PyDev中无法正常工作?

     

eclipse控制台不是shell的精确副本...其中一个更改是当你按下shell时,它可能会给你一个\ r,\ n或\ r \ n作为一个结束行char,取决于您的平台。 Python并不期望这样 - 从文档中它说它会删除最后的\ n(在版本2.4中检查),但是,在某些平台上会留下\ r \ n。这意味着raw_input()通常应该用作raw_input()。replace(&#39; \ r&#39;,&#39;&#39;),而input()应该更改为:eval(raw_input) ().replace(&#39; \ r&#39;,&#39;&#39;))。

另见: PyDev 3.7.1 in Eclipse 4 — input() prepends prompt string to input variable?Unable to provide user input in PyDev console on Eclipse with Jython