|
发表于 2020-5-19 22:03:27
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数
n=input('请输入一个字符串:')
def counts(m):
for each in m:
temp=0
if each.isalpha():
temp+=1
temp1=temp
if each.isspace():
temp+=1
temp2=temp
if each.numeric():
temp+=1
temp3=temp
temp4=len(m)-temp1-temp2-temp3
print('在',m,'中共有',temp1,'个字母')
print('在',m,'中共有',temp2,'个空格')
print('在',m,'中共有',temp3,'个数字')
print('在',m,'中共有',temp4,'个其他符号')
counts(n)
有啥问题?
本帖最后由 Twilight6 于 2020-5-19 22:15 编辑
n = input('请输入一个字符串:')
def counts(m):
temp1,temp2,temp3,temp4 = 0,0,0,0 # 初始化数值 否则temo4 处会报错
for each in m:
# 这边去掉temp = 0 你应该在循环外面设置初始值否则每次都会重新赋值为0
if each.isalpha():
temp1 += 1
if each.isspace():
temp2 += 1
if each.isnumeric(): # 这边是isnumeric 你打成了numeric
temp3 += 1
# 这个也放循环外面,等全部字母,空格,数字都统计完毕再计算其他字符
# 如果放循环里,每次循环都要减一次,而得到的最后结果其实就只有最后一次循环的计算结果所有放for循环外
temp4 = len(m) - temp1 - temp2 - temp3
# 这边的所有 print 打印都要放 for循环 外,否则 没统计完 ,循环过程都会一直打印
print('在', m, '中共有', temp1, '个字母')
print('在', m, '中共有', temp2, '个空格')
print('在', m, '中共有', temp3, '个数字')
print('在', m, '中共有', temp4, '个其他符号')
counts(n)
|
|