我只是想更好地理解 Try 和 except 语句。我被困住了。所以我希望你们能澄清一下。本程序纯粹用于学习。
感谢您的意见。
while True:
x=int(input('enter no.->'))
try:
x/2
except ValueError:
print('try again')
else:
if (x/2)==1:
break
print('program end')
所以我写这个程序的目的是-
- 如果 x 是数字则循环
- 如果不是。然后“异常(exception)”开始发挥作用并重新开始
- 如果商为 1。停止。
即使我把它改成
x=input('enter no.->')
try:
int(x)/2
“异常(exception)”有效,但如果我输入数字,我会得到“不支持的操作数类型”。
最佳答案
您正在尝试立即将其转换为 int。 try- except 语句将检查错误,但仅限于 try- except 中包含的代码中。如果输入错误,int 转换将立即失败,因为输入的不是整数。 相反,将 int 转换 (int(string)) 放入 try- except 语句中:
while True:
x=input('enter no.->')
try:
x=int(x)
except ValueError:
print('try again')
else:
if (x/2)==1:
break
print('program end')
第二个失败,因为您必须将 x 设置为转换后的值,因此您基本上是在尝试将字符串除以 2。
作为一个注释,我不确定这有多适用,但是我的 OOP 教授告诉我使用无限循环并中断/返回它是非常糟糕的编程实践,所以你应该只使用一个 bool 值(而 foo: ... ... ... foo = false)。我不太清楚为什么,因为我还没有查过。
编辑:Is it a bad practice to use break in a for loop?
一般来说,这只是您愿意让它变得可读或容易出错的程度。
关于python - 尝试 except 语句 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22522904/