gpt4 book ai didi

python - 通过使用 try-except block 编写一小段代码来汇总字符串中的数字

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:02 24 4
gpt4 key购买 nike

背景:我的入门教材中的一个“手指练习”让我尝试编写这样一个程序来教我如何使用 try-except block 。该教科书旨在配合麻省理工学院 MOOC edX 上的“6.00x”类(class)。这不是在线类(class)本身的一部分,而只是一些让我理解 try-excpet block 的练习。

到目前为止,这是我的代码:

def sumDigits(s):
'''Assumes s is a string
Returns the sum of the decimal digits in s
For example, if is is 'a2b3c' it returns 5'''
try:
digitsum = 0
for i in s:
digitsum += int(i)


except TypeError:
return 'You have hit a TypeError'

except ValueError:
return 'You have hit a ValueError'

return digitsum

因此,我遇到的问题是知道将什么放入 except 子句中。我放入两个 except 子句中的文本是因为我只是想让我的程序运行。我假设解释器通过像“456ab”这样的字符串,点击“a”,然后打印出我告诉它在不可避免地遇到 ValueError 时返回的文本。我如何让它“忽略”字符串中的字母字符,而只使用字符串中的数字,所有这些都在 try-except block 的上下文中?

最佳答案

在循环中移动你的try,并通过使用pass 作为异常处理程序来忽略异常:

digitsum = 0
for i in s:
try:
digitsum += int(i)
except ValueError:
pass # ignore non-digit characters

除非任何 iint() 无法处理的对象类型,否则您不会在这里遇到 TypeError;例如任何不是数字或字符串的东西:

>>> int({})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: int() argument must be a string or a number, not 'dict'

关于python - 通过使用 try-except block 编写一小段代码来汇总字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20356237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com