十三绯
2021-09-06 11:52
采纳率: 33.3%
浏览 149
已结题

python 统计不同字符的个数。用户从键盘输入一行字符,编写一个程序,统计并输出英文字符、数字、空格和其他字符的个数。

统计不同字符的个数。用户从键盘输入一行字符,编写一个程序,统计并输出英文字符、数字、空格和其他字符的个数。

这是我的代码


import string
c = input("输入字符串:");
a = 0;
b = 0;
c = 0;
d = 0;
i = string();
for i in range(c):
    if 'A'<=i<='z':
        a+=1;
    elif '0'<=i<='9':
        b+=1;
    elif i==' ':
        c+=1;
    else:
        d+=1;

print(" 英文字符有",a,"个" "数字有",b,"个" "空格有",c,"个" "其他字符有",d,"个")

img

出现这个错误。我的想法是强行定义i为字符,但是错误,能不能按照我的思路纠正一下,谢谢大伙

  • 收藏

5条回答 默认 最新

  • String name="小吴"; 2021-09-06 12:35
    已采纳

    1-首先python语法不加;
    2-你的变量名重复,导致input,被第六行重新赋值成0
    3-如果想将i变量定义为字符语法为str(i) 整数为int(i)
    如有帮助望采纳,谢谢

    打赏 评论
  • 吃肉的小馒头 2021-09-06 11:55

    这都不符合python语法规范吧,python中基本没有分号使用的,string是内置模块的,你这使用都不对

    打赏 评论
  • 於黾 2021-09-06 14:49

    你的c本身就是字符串,你想获取到c里面的每个字符,直接这样
    for i in c:
    就成了
    根本不用range,也不需要转换类型

    打赏 评论
  • Morningstar? 2021-09-06 16:18

    但是报错的主要错误还是你这模块没写对

    打赏 评论
  • 十三绯 2021-09-07 15:32
    
    c = input("输入字符串:");
    a = 0;
    b = 0;
    d = 0;
    e = 0;
    i = string();
    for i in range(c):
        if 'A'<=i<='z':
            a+=1;
        elif '0'<=i<='9':
            b+=1;
        elif i==' ':
            e+=1;
        else:
            d+=1;
     
    print(" 英文字符有",a,"个" "数字有",b,"个" "空格有",e,"个" "其他字符有",d,"个")
    打赏 评论

相关推荐 更多相似问题