【问题标题】:Checking that user input is an int (python) [duplicate]检查用户输入是否为 int (python) [重复]
【发布时间】:2018-05-08 14:31:31
【问题描述】:

已经坚持了大约一个小时。目前正在尝试使用 Python 自学编程。我正在使用一本教科书来指导我完成伪代码,然后我尝试将其转换为 python 来学习语法。虽然程序按预期运行和添加,但如果用户输入除整数以外的任何内容,它不会打印我想要的内容。

我正在查看的伪代码:

1  Declare Count As Integer 
2  Declare Sum As Integer 
3  Declare Number As Float 
4  Set Sum = 0 
5  For (Count = 1; Count <=10; Count++) 
6    Write “Enter an integer: “ 
7    Input Number 
8    If Number != Int(Number) Then
9      Write “Your entry is not an integer.” 
10      Write “The summation has ended.” 
11      Exit For 
12    Else 
13 Set Sum = Sum + Number 
14    End If 
15  End For 
16  Write “The sum of your numbers is: “ + Sum

这是我写到这里的代码:

sum = 0
for count in range(0, 10):
    number = int(input("Write an integer: "))
    if number != int(number):
        print ("Your entry is not an integer.")
        print ("The summation has ended.")
        break
    else:
        sum = sum + number
    continue
print("The sum of your numbers is: " + str(sum))

【问题讨论】:

  • 这毫无意义:number != int(number) 因为您已经将来自int(input(...)) 的结果分配给number,这意味着它始终是一个int
  • 最后的 continue 是多余的。您的循环将继续使用或不使用该语句

标签: python python-3.x loops


【解决方案1】:

如果arg 不是整数,int(arg) 函数将引发异常。

你需要捕捉异常:

number = input()
try:
    number = int(number)
except ValueError:
    print "Number is not an integer"

【讨论】:

  • 请注意,您应该记入您的来源 (stackoverflow.com/questions/5424716/…),或者至少添加它们,注意这在 Python 3 中有效,但在 Python 2 中您应该首先转换为字符串,例如:int( str(number)) 正如@maxkoryukov 在上述答案的 cmets 中指出的那样。
  • 我看到了这个......我应该把它放在我已经拥有的代码中的什么地方?我已经看到了这个 try-except 方法,并试图将它放入我的代码中大约 30 分钟。想不通。
  • 经过更多研究后,我明白你在这里想说什么。谢谢。
【解决方案2】:

你可以这样做:

sum = 0

for count in range(1, 10):
    try:
        sum += int(input("Write an integer: "))
    except ValueError:
        print("Your entry is not an integer.")
        print("The summation has ended.")
        break

print("The sum of your numbers is: " + str(sum))

【讨论】:

  • 谢谢.. 这对我来说是最好的解释。
猜你喜欢
  • 2021-07-08
  • 2012-08-17
  • 1970-01-01
  • 2018-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-18
相关资源
最近更新 更多