Python 在try-and-except-insidewhile循环中使用continue

Python 在try-and-except-insidewhile循环中使用continue,python,Python,这部分代码似乎有问题,但当我删除try和except时,一切都很顺利,所以这似乎就是问题所在 我想将while循环中的输入转换为整数,如果输入不是整数,它将显示一个错误,然后继续循环并再次询问。但是,它不会继续循环,只会永远打印“无效输入”。为什么它没有继续循环 以下是完整的代码,以防出现其他错误: try: num=float(num) except: print "Invalid input" continue 继续意味着返回while,由于num从未改变,您

这部分代码似乎有问题,但当我删除try和except时,一切都很顺利,所以这似乎就是问题所在

我想将while循环中的输入转换为整数,如果输入不是整数,它将显示一个错误,然后继续循环并再次询问。但是,它不会继续循环,只会永远打印“无效输入”。为什么它没有继续循环

以下是完整的代码,以防出现其他错误:

try:
     num=float(num)
except:
     print "Invalid input"
     continue
继续意味着返回while,由于num从未改变,您将陷入无限循环

如果要在异常发生时退出循环,请使用术语break。

continue意味着返回while,而num从未更改,因此将陷入无限循环


如果要在异常发生时退出循环,请使用术语break。

可以通过将变量赋值移动到try块中来解决问题。这样,当引发异常时,将自动避免要跳过的内容。现在没有理由继续,将显示下一个提示

c=0
num2=0
num=raw_input("Enter a number.")
while num!=str("done"):
     try:
          num=float(num)
     except:
          print "Invalid input"
          continue
     c=c+1
     num2=num+num2      
     num=raw_input("Enter a number.")
avg=num2/c
print num2, "\t", c, "\t", avg
您可以通过消除复制提示的需要来进一步收紧该提示

c=0
num2=0
num=raw_input("Enter a number.")
while num!=str("done"):
     try:
          num=float(num)
          c=c+1
          num2=num+num2      
     except:
          print "Invalid input"
     num=raw_input("Enter a number.")
avg=num2/c
print num2, "\t", c, "\t", avg

可以通过将变量指定移动到try块中来解决此问题。这样,当引发异常时,将自动避免要跳过的内容。现在没有理由继续,将显示下一个提示

c=0
num2=0
num=raw_input("Enter a number.")
while num!=str("done"):
     try:
          num=float(num)
     except:
          print "Invalid input"
          continue
     c=c+1
     num2=num+num2      
     num=raw_input("Enter a number.")
avg=num2/c
print num2, "\t", c, "\t", avg
您可以通过消除复制提示的需要来进一步收紧该提示

c=0
num2=0
num=raw_input("Enter a number.")
while num!=str("done"):
     try:
          num=float(num)
          c=c+1
          num2=num+num2      
     except:
          print "Invalid input"
     num=raw_input("Enter a number.")
avg=num2/c
print num2, "\t", c, "\t", avg

continue
表示“跳过循环迭代的其余部分”。这并不意味着“继续前进”;代码会自动运行。如果您描述了当给出无效输入时会发生什么,这会有所帮助。整个程序应该退出吗?是否应该等待下一个输入?
继续
表示“跳过循环的其余迭代”。这并不意味着“继续前进”;代码会自动运行。如果您描述了当给出无效输入时会发生什么,这会有所帮助。整个程序应该退出吗?它应该等待下一次输入吗?很抱歉之前的情况,现在你已经超过50岁了。祝你今天愉快。之前的事很抱歉,现在你已经50多岁了。祝您有个美好的一天。