【发布时间】:2013-12-19 19:26:57
【问题描述】:
背景:我的入门教科书中的“手指练习”之一让我尝试编写这样的程序来教我如何使用 try-except 块。该教科书旨在配合麻省理工学院 MOOC edX 上的“6.00x”课程。这不是在线课程本身的一部分,而只是一些让我理解 try-excpet 块的练习。
到目前为止,这是我的代码:
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 块的上下文中?
【问题讨论】:
-
您也可以使用
"".join(filter(str.isdigit, "dfg"))过滤掉非数字字符。
标签: python string try-except