如何使特定字符串在 try-except 块中工作?
How to make a specific string work in a try-except block?
我不想让用户能够输入数字以外的任何内容作为“number”变量的输入,字符串“done”除外。
是否有可能以某种方式对 try-except 块的规则进行例外处理,并使用户能够编写“完成”来中断 while 循环,同时仍保持当前功能?还是我应该尝试一些不同的东西来让它发挥作用?
while number != "done":
try:
number = float(input("Enter a number: ")) #The user should be able to write "done" here as well
except ValueError:
print("not a number!")
continue
将两部分分开:询问用户并验证它是否是 done
,然后在 try/except
中解析它
number = None
while True:
number = input("Enter a number: ")
if number == "done":
break
try:
number = float(number)
except ValueError:
print("not a number!")
continue
print("Nice number", number)
检查报错信息是否包含'done'
:
while True:
try:
number = float(input("Enter a number: "))
except ValueError as e:
if "'done'" in str(e):
break
print("not a number!")
continue
同样在这种情况下 continue
在这里不是必需的(至少对于这个例子)所以它可以被删除
也许之后将数字转换为浮点数。您可以检查数字是否不等于 done,然后将数字转换为 float
number = 0
while number != "done":
try:
number = input("Enter a number: ") #The user should be able to write "done" here as well
if number=="done":
continue
else:
number = float(number )
except ValueError:
print("not a number!")
continue
while True:
try:
user_input = input("Enter a number: ")
if user_input == "done":
break
number = float(user_input)
except ValueError:
print("not a number!")
continue
检查输入是否为 'done'
后,您可以将输入转换为浮点数
与其尝试对规则进行例外处理,不如做一些类似的事情,
while True:
try:
number=input("Enter a number: ")
number=float(number)
except:
if number=="done":
break
else:
print("Not a number")
有多种方法可以解决这种情况。
我想到的第一个是做:
while True:
user_input = input("Enter a number: ")
if user_input == "done":
break
else:
try:
number = float(user_input)
except ValueError:
print("not a number!")
continue
我不想让用户能够输入数字以外的任何内容作为“number”变量的输入,字符串“done”除外。
是否有可能以某种方式对 try-except 块的规则进行例外处理,并使用户能够编写“完成”来中断 while 循环,同时仍保持当前功能?还是我应该尝试一些不同的东西来让它发挥作用?
while number != "done":
try:
number = float(input("Enter a number: ")) #The user should be able to write "done" here as well
except ValueError:
print("not a number!")
continue
将两部分分开:询问用户并验证它是否是 done
,然后在 try/except
number = None
while True:
number = input("Enter a number: ")
if number == "done":
break
try:
number = float(number)
except ValueError:
print("not a number!")
continue
print("Nice number", number)
检查报错信息是否包含'done'
:
while True:
try:
number = float(input("Enter a number: "))
except ValueError as e:
if "'done'" in str(e):
break
print("not a number!")
continue
同样在这种情况下 continue
在这里不是必需的(至少对于这个例子)所以它可以被删除
也许之后将数字转换为浮点数。您可以检查数字是否不等于 done,然后将数字转换为 float
number = 0
while number != "done":
try:
number = input("Enter a number: ") #The user should be able to write "done" here as well
if number=="done":
continue
else:
number = float(number )
except ValueError:
print("not a number!")
continue
while True:
try:
user_input = input("Enter a number: ")
if user_input == "done":
break
number = float(user_input)
except ValueError:
print("not a number!")
continue
检查输入是否为 'done'
后,您可以将输入转换为浮点数与其尝试对规则进行例外处理,不如做一些类似的事情,
while True:
try:
number=input("Enter a number: ")
number=float(number)
except:
if number=="done":
break
else:
print("Not a number")
有多种方法可以解决这种情况。 我想到的第一个是做:
while True:
user_input = input("Enter a number: ")
if user_input == "done":
break
else:
try:
number = float(user_input)
except ValueError:
print("not a number!")
continue