定义一个名为“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"))
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 是统计了空格和感叹号,你题目上面其实是统计有错
用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]