在while循环中使用嵌套的if语句

时间:2018-02-27 16:46:58

标签: python

在这段代码中,我尝试过,如果数字输入为000,则使用嵌套的if语句退出循环,但它不起作用。收到此错误:IndentationError: expected an indented block

var=1;

while var==1: 
    num=int(input("Enter a number:"))

    if (isinstance(num, int)):
        print("your input number:",num)
        if(num==000):
          break       
 else:
  print('incorrect!!!')

3 个答案:

答案 0 :(得分:2)

您的else:行需要与if (isinstance(num, int)):处于同一缩进级别,以便代码知道else所指的内容(例如,现在它是' s不确定else的参考内容,因此无法运行代码。

答案 1 :(得分:0)

您遇到的问题是您没有正确缩进代码。在python中,white-space非常重要,尤其是在使用嵌套的if语句/循环时。计算机如何知道你完成了if语句?

尝试

var=1;

while var==1: 
    num=int(input("Enter a number:"))

    if (isinstance(num, int)):
        print("your input number:",num)
        if(num==000):
          break       
    else:
      print('incorrect!!!')

注意移动了print语句,if else现在在行

答案 2 :(得分:0)

让用户输入数字的更好方法是捕获在非数字字符串上调用{% for crs_stud in course.student.all %} {% for student in students %} {% if crs_stud == student %} <p>{{ student.name.upper }} is already enrolled.</p> {% else %} <form action="." method="POST"> {% csrf_token %} <label for="id_{{ student.id }}">{{ student.name }}</label> <input type="checkbox" id="id_{{ student_id }}" value="{{ student.id }}" name="student_ids"> <input type="submit"> </form> {% endif %} {% endfor %} {% endfor %} 时引发的异常:

int()

这会一直提示,直到输入while True: try: num = int(input("Enter a number:")) print("your input number:", num) if num == 0: # note, 0 and 000 are both 0 break except ValueError: print('incorrect!!!') 为止。每个缩进级别为四个空格,建议这样做。此外,您可以使用0表示永久循环或直到达到while True语句。