在 Python 中使用 try/except 将字符串转换为整数
- 2025-03-04 08:27:00
- admin 原创
- 63
问题描述:
所以我对如何使用 try/except 函数将字符串转换为 int 感到很困惑。有人知道如何执行此操作的简单函数吗?我觉得我对字符串和 int 仍然有点模糊。我非常确信 int 与数字相关。字符串... 则不然。
解决方案 1:
使用 try/except 块时,明确要捕获的异常非常重要。
string = "abcd"
try:
string_int = int(string)
print(string_int)
except ValueError:
# Handle the exception
print('Please enter an integer')
Try/Excepts 功能非常强大,因为如果某些事情可能以多种不同的方式失败,您可以指定程序在每种失败情况下如何反应。
解决方案 2:
这里是:
s = "123"
try:
i = int(s)
except ValueError as verr:
pass # do job to handle: s does not contain anything convertible to int
except Exception as ex:
pass # do job to handle: Exception occurred while converting to int
解决方案 3:
首先,try
/except
不是函数,而是语句。
要在 Python 中将字符串(或任何其他可以转换的类型)转换为整数,只需调用int()
内置函数。如果失败,您应该特别捕获此信息:int()
`raise`ValueError
在 Python 2.x中:
>>> for value in '12345', 67890, 3.14, 42L, 0b010101, 0xFE, 'Not convertible':
... try:
... print '%s as an int is %d' % (str(value), int(value))
... except ValueError as ex:
... print '"%s" cannot be converted to an int: %s' % (value, ex)
...
12345 as an int is 12345
67890 as an int is 67890
3.14 as an int is 3
42 as an int is 42
21 as an int is 21
254 as an int is 254
"Not convertible" cannot be converted to an int: invalid literal for int() with base 10: 'Not convertible'
在 Python 3.x中
语法略有改变:
>>> for value in '12345', 67890, 3.14, 42, 0b010101, 0xFE, 'Not convertible':
... try:
... print('%s as an int is %d' % (str(value), int(value)))
... except ValueError as ex:
... print('"%s" cannot be converted to an int: %s' % (value, ex))
...
12345 as an int is 12345
67890 as an int is 67890
3.14 as an int is 3
42 as an int is 42
21 as an int is 21
254 as an int is 254
"Not convertible" cannot be converted to an int: invalid literal for int() with base 10: 'Not convertible'
解决方案 4:
不幸的是,官方文档并没有告诉太多关于int()
可能引发的异常的信息;但是,当你使用时int()
,它基本上可以引发两个异常:TypeError
,如果值不是数字或字符串(或字节或字节数组),并且ValueError
如果值实际上没有映射到数字。
你应该用如下方法管理两者:
try:
int_value = int(value)
except (TypeError, ValueError):
print('Not an integer')
解决方案 5:
在许多情况下,我们希望从用户那里获取一个整数值。用户可能会插入非整数值,应该警告他们,并提示他们重试。以下代码片段可用于从用户那里获取一个整数值,并继续提示用户插入一个整数,直到他们输入一个有效的整数。
def get_integer_value():
user_value = input("Enter an integer: ")
try:
return int(user_value)
except ValueError:
print(f"{user_value} is not a valid integer. Please try again.")
return get_integer_value()
if __name__ == "__main__":
print(f"You have inserted: {get_integer_value()}")
输出:
Enter an integer: asd
asd is not a valid integer. Please try again.
Enter an integer: 32
You have inserted: 32
解决方案 6:
您可以执行以下操作:
try :
string_integer = int(string)
except ValueError :
print("This string doesn't contain an integer")
解决方案 7:
这是一个简短而简单的方法,要求用户输入一个整数,直到完成:
while True:
try:
quantity = int(input("Quantity: "))
break
except ValueError:
print("Error: Quantity must be a whole number.")
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD