我正在建立我的第一个计算器。尝试实现While循环以通过用户输入获取数字。我希望用户输入数字后,While才能中断。
num1 = raw_input("Add mumber one: " )
try:
input = int(num1)
except ValueError:
print "This is not a number"
attempt = 0
while type(num1) != int and attempt < 5:
num1 = raw_input("Add Number one again: " )
attempt += 1
break
print "You are not putting number. So, goodbuy"
operation = raw_input("Add Operator: ")
答案 0 :(得分:1)
尝试一下:
for _ in range(5):
num1 = unicode(raw_input("Add number one: "))
if num1.isnumeric():
break
答案 1 :(得分:0)
您可以尝试的另一种方法是让num1
并在while
循环中执行以下操作:
if type(num1) is int:
break
这是检查变量num1
的类型。如果它是整数int
,则它会跳出while
循环。
我希望用户输入号码后,While可以中断。
在while
循环的条件下,您已经通过拥有type(num) != int
来执行此操作,因此在用户输入整数后while
循环应停止。
答案 2 :(得分:0)
您在这里有几个错误:
while type(num1) != int and attempt < 5:
num1 = raw_input("Add Number one again: " )
attempt += 1
break
break
语句应该在循环内部,但是缩进是错误的。在您编写时,它在循环之后(因此无用)。同样,当您从标准输入中读取内容时,即使它是一个数字,也始终会得到一个字符串。因此,当您检查type(num1) != int
时,总是错误的。每次从标准输入中读取时(不仅是第一次),都必须将num1
转换为int()
。
while True:
num1 = raw_input("Add Number one again: " )
try:
input = int(num1)
break
except ValueError:
print "This is not a number"
if attempt == 5:
break
attempt += 1
在这里,我尝试将从stdin读取的字符串转换为整数。如果有效,我会立即中断循环。如果它不起作用(except子句),则检查已进行了多少次尝试,如果尝试次数等于5,则中断循环。