在 Python 中使用 try/except 将字符串转换为整数

2025-03-04 08:27:00
admin
原创
63
摘要:问题描述:所以我对如何使用 try/except 函数将字符串转换为 int 感到很困惑。有人知道如何执行此操作的简单函数吗?我觉得我对字符串和 int 仍然有点模糊。我非常确信 int 与数字相关。字符串... 则不然。解决方案 1:使用 try/except 块时,明确要捕获的异常非常重要。string ...

问题描述:

所以我对如何使用 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.")
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3998  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2749  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   85  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   96  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   83  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用