当两个条件为真时如何中断while循环-计算器

时间:2018-12-29 17:54:24

标签: python python-2.x

我正在建立我的第一个计算器。尝试实现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:  ")

3 个答案:

答案 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,则中断循环。