编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。
下面是写出来的程序,但是无法运行(没显示出错,就是无法运行,enter之后是换行不是结果)。
或者改成别的程序能满足上面的要求。
代码没问题,只是少了输出和函数调用
def count_chars(s):
upper_count = 0
lower_count = 0
digit_count = 0
other_count = 0
for char in s:
if char.isupper():
upper_count += 1
elif char.islower():
lower_count += 1
elif char.isdigit():
digit_count += 1
else:
other_count += 1
return upper_count, lower_count, digit_count, other_count
if __name__ == '__main__':
print(count_chars(input('请输入:')))
可以参考下面的代码实现:
def count_chars(s):
upper_count = 0
lower_count = 0
digit_count = 0
other_count = 0
for c in s:
if c.isupper():
upper_count += 1
elif c.islower():
lower_count += 1
elif c.isdigit():
digit_count += 1
else:
other_count += 1
return (upper_count, lower_count, digit_count, other_count)
s = input("请输入一个字符串:")
result = count_chars(s)
print("大写字母个数:", result[0])
print("小写字母个数:", result[1])
print("数字个数:", result[2])
print("其他字符个数:", result[3])
这个函数接收一个字符串参数 s
,然后遍历字符串中的每个字符,根据字符的类型统计个数。最后将结果以元组的形式返回。在主程序中,调用该函数并输出统计结果。
函数不调用,是不会执行的。您的代码没有问题,但看起来 您的缩进是用的tab制表键。Python 默认是四个英文空格(半角空格),您的代码习惯最好遵循python 代码规范,让您的代码更易“流通”。
代码运行效果截屏图片
代码
#!/sur/bin/nve python
# coding: utf-8
def count_chars(s):
supper = lower = digit = other = 0 # 令统计变量初值都是0。
for char in s:
if char.isupper():
supper += 1
elif char.islower():
lower += 1
elif char.isdigit():
digit += 1
else:
other += 1
print(f"\n{'':>12}".join([''] + [f"{key}: {value}" for key,value in zip(['Supper', 'Lower', 'Digit', 'Other'], [supper, lower, digit, other])]))
if __name__ == '__main__':
s = "I'm a Chongqing old man."
print('\n字符串:', s)
#s = input('\n输入:')
count_chars(s)
说明:采用这种松散方式编写代码的目的是使代码更加清晰。在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留一个以上空格。
1、逗号、分号(假如用到的话)只在后面加空格。
# 错误示例:
print(a,b , c)
# 正确示例:
print(a, b, c)
2、比较操作符">"、">="、"<"、"=<"、"==", 赋值操作符"="、"+=",算术操作符"+"、"-"、"%",逻辑操作符and, or等双目操作符的前后加空格。
错误示例:
if current_time>= MAX_TIME_VALUE:
a=b+ c
a+=2
正确示例:
if current_time >= MAX_TIME_VALUE:
a = b + c
a += 2