Python函数定义。

定义一个名为“countCharacter”的函数,它接受一个句子作为参数(字符串)并计算字母总数、大写字母总数、小写字母总数、数字总数和非字母字符总数以及不是数字。
然后该函数将返回一个整数列表,表示字母总数、大写和小写字母的数量、数字的数量以及字母和数字之外的任何其他字符。
假设以下输入提供给函数
"Hel10 Wor1D!!!4567"该函数将返回一个列表,其中包含以下值[9,3,6,5,4]

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

def countCharacter(s):
    li = [0,0,0,0,0]
    for v in s:
        if v.isalpha():
            li[0]+=1
        if v.isupper():
            li[1]+=1
        if v.islower():
            li[2]+=1
        if v.isdigit():
            li[3]+=1
        if not v.isalnum():
            li[4]+=1
    return li

print(countCharacter("Hello Wor1D!!!4567"))

img

ss = str(input("输入一行字符:"))
letters = 0  #统计英文字母个数
letter = 0 #统计小写字母个数
upletter = 0 #统计大写字母个数
digit = 0  #统计空格个数
others = 0  #统计其他字符
list1 = []
for i in range(len(ss)):   #利用字符在ASCII码中的位置逐个统计
    if("0" <= ss[i] <= "9"):
        digit += 1
    elif("a" <= ss[i] <= "z"):
        letters += 1
        letter += 1
    elif("A" <= ss[i] <= "Z"):
        letters += 1
        upletter += 1
others = len(ss) - letters - digit
list1.append(letters)
list1.append(letter)
list1.append(upletter)
list1.append(digit)
list1.append(others)
print("字母总数,小写字母总数,大写字母,数字总数和非字母字符总数")
print(list1)   

最后一个数字6 是统计了空格和感叹号,你题目上面其实是统计有错
img

用re正则匹配字符串,统计其出现次数即可,参考代码:

import re
def countCharacter(s):
    lower=len(re.findall('[a-z]',s))
    print(re.findall('[a-z]', s))
    upper = len(re.findall('[A-Z]',s))
    digits = len(re.findall('\d', s))
    alphas=lower+upper
    other=len(s)-alphas-digits
    return [alphas,upper,lower,digits,other]
print(countCharacter("Hell0 WorlD!!!4567"))
#output:
#[9, 3, 6, 5, 4]

如有帮助,请点击采纳。

string模块非常好用

import string
def countCharacter(strings):
      letter_num = string.digits+string.ascii_letters
      upper = 0
      lower = 0
      num = 0
      other = 0
      for a in strings:
           if a in string.ascii_lowercase:
                 lower += 1
           elif a in string.ascii_uppercase:
                 upper += 1
           elif a in string.digits:
                num += 1
           elif a not in letter_num:
                 other += 1
      return [upper+lower,upper,lower,num,other]