Python 包含任何非字母字符的字符串数

Python 包含任何非字母字符的字符串数,python,list,Python,List,我正确地学习python已经有几个星期了,但找不到一种方法从我目前拥有的东西开始。问题是: 使用累加器模式编写函数count_messy(strings),该函数将字符串列表作为参数,并返回一个int,表示包含非字母字符的字符串的数量。字符串方法isalpha在这里很有用 以下是我当前的代码: def count_messy(strings): for string in strings: ans = strings.isalpha(string)

我正确地学习python已经有几个星期了,但找不到一种方法从我目前拥有的东西开始。问题是:

使用累加器模式编写函数count_messy(strings),该函数将字符串列表作为参数,并返回一个int,表示包含非字母字符的字符串的数量。字符串方法isalpha在这里很有用

以下是我当前的代码:

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()
    来计算不包含字母字符的字符串
  • count
    integer变量需要初始化为0,并为满足此条件的每个字符串递增

您的问题到底是什么?累加器模式(必须查找…)不需要建立列表,只需要计算事情。你知道如何计数吗,例如,将一个变量增加
1
?你的程序应该有一个变量,它是一个数字,每次找到一个非字母字符的字符串时,都会向其中添加1。我们学习的累加器模式如下(对于字符串中的num(下一行)result+=num)等等,我想它只是存储了下一个循环的代码。问题基本上是返回没有字母字符的字符数。测试是打印的(count_messy([“x”、“y2y”、“zz%z”])您的代码使用的是
=
,而不是
+=
,正如您为累加器模式所注意的那样。这是故意的吗?谢谢你,先生!谢谢你的坚持哈哈,如果可以的话,我会投票的