Python 包含任何非字母字符的字符串数
我正确地学习python已经有几个星期了,但找不到一种方法从我目前拥有的东西开始。问题是: 使用累加器模式编写函数count_messy(strings),该函数将字符串列表作为参数,并返回一个int,表示包含非字母字符的字符串的数量。字符串方法isalpha在这里很有用 以下是我当前的代码:Python 包含任何非字母字符的字符串数,python,list,Python,List,我正确地学习python已经有几个星期了,但找不到一种方法从我目前拥有的东西开始。问题是: 使用累加器模式编写函数count_messy(strings),该函数将字符串列表作为参数,并返回一个int,表示包含非字母字符的字符串的数量。字符串方法isalpha在这里很有用 以下是我当前的代码: def count_messy(strings): for string in strings: ans = strings.isalpha(string)
def count_messy(strings):
for string in strings:
ans = strings.isalpha(string)
return(len(ans))
print(count_messy(["x", "y2y", "zz%z"]))
应输出:
2
最好对累加器模式和无列表理解使用
for
循环
正确的解决方案是:
def count_messy(strings):
count = 0
for string in strings:
if not string.isalpha():
count += 1
return count
原始代码和其他几种解决方案尝试的问题包括:
是字符串isalpha
的方法,而不是列表string
字符串的方法
来计算不包含字母字符的字符串非字符串。必须使用isalpha()
integer变量需要初始化为0,并为满足此条件的每个字符串递增count
1
?你的程序应该有一个变量,它是一个数字,每次找到一个非字母字符的字符串时,都会向其中添加1。我们学习的累加器模式如下(对于字符串中的num(下一行)result+=num)等等,我想它只是存储了下一个循环的代码。问题基本上是返回没有字母字符的字符数。测试是打印的(count_messy([“x”、“y2y”、“zz%z”])您的代码使用的是=
,而不是+=
,正如您为累加器模式所注意的那样。这是故意的吗?谢谢你,先生!谢谢你的坚持哈哈,如果可以的话,我会投票的