Python 从键盘输入一个字符串,分别统计数字,字母(包括大小写)和其他字符的个数,并输出每类字符及其个数。

从键盘输入一个字符串分别统计数字,字母包括大小写和其他字符的个数,并输出字符及其个数,要求输出用字典形式:{'字母':n1,'数字':n2,'其他':n3}

输出样例:python is good
输出样例:{'数字':0,'其他':2,'字母':12}

img

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
以下是一个Python示例代码,可以从键盘输入一个字符串,然后分别统计其中数字、字母和其他字符的个数,并使用字典形式输出结果。

def count_chars(s):
    counts = {'数字': 0, '字母': 0, '其他': 0}
    for c in s:
        if c.isdigit():
            counts['数字'] += 1
        elif c.isalpha():
            counts['字母'] += 1
        else:
            counts['其他'] += 1
    return counts

这个函数接受一个字符串作为输入,并返回一个字典,其中包含数字、字母和其他字符的个数。它首先使用字典初始化计数器,然后遍历输入字符串中的每个字符,如果该字符是数字,则将数字计数器加1;如果该字符是字母,则将字母计数器加1;否则,将其他字符计数器加1。

可以使用以下代码来测试这个函数:

s = input('请输入一个字符串:')
counts = count_chars(s)
print(counts)

在运行这段代码时,将会提示用户输入一个字符串,然后输出该字符串中数字、字母和其他字符的个数,格式为字典形式,例如:{'数字': 0, '字母': 12, '其他': 2}。

请根据实际情况修改代码,例如可以添加异常处理,以避免输入非字符串类型的数据。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7548788
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:python:编写程序,用键盘输入一个三位整数,在屏幕打印输出个位数、十位数和百位数
  • 除此之外, 这篇博客: Python 编程1000例(12):统计字符、用户登录系统、不重复的随机数中的 二、用户登录系统 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 需求:创建一个字典对象,用来保存用户名和密码,通过接收用户输入的用户名,判断该用户是否存在。如果不存在,则提示创建用户;如果存在,则提示输入密码。当密码输入正确时,显示登录系统;当密码输入不正确时,提示还有几次机会。案例演示效果如下:
    在这里插入图片描述
    示例代码如下:

    # -*- coding: UTF-8 -*-
    """
    @author:AmoXiang
    @file:27.用户登录系统.py
    @time:2021/01/30
    """
    
    users = {"张三": "123456", "李四": "111111", "王五": "234567"}  # 用户字典,保存用户名和密码
    count = 2  # 输入密码的次数
    while True:  # 循环使用系统
        print("*" * 40)
        name = input("欢迎登陆系统! \n请输入用户名:")  # 接收用户名
        if name in users:  # 用户是否存在
            while count >= 0:  # 3次输入密码机会
                password = input("请输入密码:").strip()  # 接收密码
                if users[name] == password:  # 密码正确
                    print("登录成功!")
                    break
                else:
                    print(f"密码输入错误!你还有{count}次机会")  # 剩余密码次数
                    count -= 1  # 密码次数-1
            else:
                print("您的次数已经用完!再见!")
            break  # 密码次数用完或成功退出系统
        else:
            flag = input("用户名不存在!\n是否创建用户[y/n]:").strip()  # 是否创建用户
            if flag == "y":  # 创建用户
                while True:  # 用户创建失败时,执行循环
                    name = input("请创建用户名:").strip()  # 接收用户名
                    if name in users:  # 创建用户已存在
                        print("用户已存在!")
                    else:
                        password = input("请设置密码:").strip()
                        re_password = input("请确认密码:").strip()
                        if password == re_password:  # 两次密码输入正确
                            users[name] = password  # 添加用户信息
                            print("用户创建成功!")
                            break  # 成功创建,退出创建循环
                        else:
                            print("两次密码输入不一致!")
            else:  # 不创建用户
                print("欢迎再次使用系统!再见!")
                break
    
  • 您还可以看一下 刘英老师的Python数据殿堂:数据分析与数据可视化课程中的 透视表、字符串向量化、时间序列小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    这个问题可以使用Python中的字典(dict)来实现。可以定义三个变量分别记录数字、字母和其他字符的个数,然后将它们存储到一个字典中,并输出。

    具体的步骤如下:

    1. 定义一个字典,用于保存每个字符类型的个数。

    2. 使用input函数获取用户输入的字符串。

    3. 遍历用户输入的字符串,对每个字符进行判断:

    4. 如果是数字,则将数字的计数器加1。

    5. 如果是字母,则将字母的计数器加1。

    6. 如果既不是数字,也不是字母,则将其他字符的计数器加1。

    7. 将每个字符类型和它们的计数器存储到字典中。

    8. 输出字典。

    下面是具体的代码实现:

    count_dict = {'数字': 0, '字母': 0, '其他': 0}
    input_str = input("请输入字符串:")
    
    for char in input_str:
        if char.isdigit():
            count_dict['数字'] += 1
        elif char.isalpha():
            count_dict['字母'] += 1
        else:
            count_dict['其他'] += 1
    
    print(count_dict)
    

    输出结果:

    请输入字符串Python is good
    {'数字': 0, '字母': 12, '其他': 2}
    

    这样就完成了对用户输入的字符串中数字、字母和其他字符的统计。