繁体   English   中英

尝试除了语句python

[英]Try except statement python

我只是想更好地理解Try和语句,我陷入了困境。 所以我希望你们能澄清一下。 该程序纯粹用于学习。

感谢您的输入。

while True:
    x=int(input('enter no.->'))

    try:
        x/2
    except ValueError:
        print('try again')
    else:
        if (x/2)==1:
            break
print('program end')

所以我写这个程序的目的是-

  1. 如果x是数字则循环
  2. 如果不是这样。 然后“除外”开始起作用并重新开始
  3. 如果商为1。停止。

即使我将其更改为

    x=input('enter no.->')

    try:
        int(x)/2

'except'有效,但是如果我输入数字,则会得到“不支持的操作数类型”。

您正在尝试将其立即转换为int。 try-except语句将检查错误,但仅在try-exceptthing包含的代码中进行。 如果输入错误,则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教授告诉我使用无限循环,并且中断/返回循环是非常糟糕的编程习惯,因此您应该只使用布尔值(而foo: ……foo = false)。 我还不确定为什么,因为我还没有查找。

编辑: 在for循环中使用break是一种不好的做法吗?

通常,这就是您愿意做到的可读性或易错性。

要在x是数字的情况下循环播放,可以执行以下操作(使用Try and Except):

num = True
while num:
   x = raw_input("Enter a number: ")
   try:
       y = int(x)/2
       num = True
   except:
       num = False

print "Done!"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM