关于Python中的程序编写问题

编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。
下面是写出来的程序,但是无法运行(没显示出错,就是无法运行,enter之后是换行不是结果)。
或者改成别的程序能满足上面的要求。

img

代码没问题,只是少了输出和函数调用


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 代码规范,让您的代码更易“流通”。

  • 代码运行效果截屏图片

    img


    img

  • 代码

#!/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)