关于代码的运行,为什么和参考答案不一致。
这是我的代码:def count(*strings):
length = len(strings)
for i in range(length):
alpha = 0
digit = 0
space = 0
other = 0
for each in strings:
if each.isalpha() == True:
alpha += 1
elif each.isdigit == True:
digit += 1
elif each.isspace == True:
space += 1
else:
other += 1
print('第%d个字符串共有英文字母%d个,数字%d个,空格%d个,其他字符%d个' % (i+1,alpha, digit, space, other))
这是参考答案:
def count(*param):
length = len(param)
for i in range(length):
letters = 0
space = 0
digit = 0
others = 0
for each in param:
if each.isalpha():
letters += 1
elif each.isdigit():
digit += 1
elif each == ' ':
space += 1
else:
others += 1
print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others))
count('I love fishc.com.', 'I love you, you love me.')
在实际运行中,我的代码没办法识别空格和数字,但是参考答案的可以,请问我的代码哪里出错了呢?
本帖最后由 Twilight6 于 2020-7-28 14:40 编辑
你的 isdigit()、isspace() 都忘记加括号了,导致并没有执行函数,而只是代表 isspace 这个函数体
还有就是建议直接像参考答案那样,不用加上 == 号判断
因为字符串方法会返回 True 或者 False 直接作为 if 判断条件了哈~
def count(*strings):
length = len(strings)
for i in range(length):
alpha = 0
digit = 0
space = 0
other = 0
for each in strings:
if each.isalpha() == True:
alpha += 1
elif each.isdigit() == True:
digit += 1
elif each.isspace() == True:
space += 1
else:
other += 1
print('第%d个字符串共有英文字母%d个,数字%d个,空格%d个,其他字符%d个' % (i+1,alpha, digit, space, other)) def count(*strings):
length = len(strings)
for i in range(length):
alpha = 0
digit = 0
space = 0
other = 0
for each in strings:
if each.isalpha() == True:
alpha += 1
elif each.isdigit() == True:
digit += 1
elif each.isspace() == True:
space += 1
else:
other += 1
print('第%d个字符串共有英文字母%d个,数字%d个,空格%d个,其他字符%d个' % (i+1,alpha, digit, space, other))
isspace和isdigit后面没加括号 Twilight6 发表于 2020-7-28 14:38
你的 isdigit()、isspace() 都忘记加括号了,导致并没有执行函数,而只是代表 isspace 这个函数体
还 ...
感谢专业解答~ 1q23w31 发表于 2020-7-28 14:39
isspace和isdigit后面没加括号
感谢解答!
页:
[1]