Python课程|上机小任务2.4-字符练习

基本要求:

●输入一串字符,计算总个数,并提取出其中的小写字母、大写字母、数字、其它字符,然后分别将它们以及它们的个数打印出来。

        例如,输入'ok? 123Yes', 则程序打印出(注:形式不局限于如下所示):

共 10 个字符      

   小写 4 个:  okes  

大写 1 个:  Y    

  数字 3 个:  123  

其它 2 个:  ?  

高级要求:

●将这串字符存成两个文本文件,其中第一个文件(文件名自取,扩展名为 txt),其文本内容即为上述显示的字符;另一个文件(文件名自取,扩展名为 txt),是将上述这串字符(按照 ASCII 码)转成无符号整型(uint8)数组,将该整型数组存成的显示内容相同的文本(即直接打开该文本,显示内容就为该整型数组);

●再对上述无符号整型数组求其最大值、最小值、均值,并打印。

import numpy as np


def Cal(user_input):


    def isnumer(s):
      return all(c in "0123456789" for c in s)


    int_Count = 0  # 用来记录列表中的数字个数
    i_count = []
    strs_Count = 0 # 记录大写字母个数
    ss_count = []
    strl_Count = 0 # 记录小写字母个数
    sl_count = []
    other_Count = 0 # 记录其他字符个数
    o_count = []
    a = user_input

    # 使用for循环遍历字符串,每次循环判断当前获取的元素的类型,并给对应计数器计数
    count = 0
    for i in a:
        if i.isupper():  # 判断i是不是大写字母
            strs_Count += 1
            ss_count.append(i)
        elif i.islower():  # 判断i是不是小写字母
            strl_Count += 1
            sl_count.append(i)
        elif isnumer(i):  # 判断i是否为数字
            i_count.append(i)
            int_Count += 1
        else:
            other_Count += 1
            o_count.append(i)
        count += 1
    print ("字符总个数为{},数字个数为{},分别是{},大写字母个数为{},分别是{},小写字"
           "个数为{},分别是{}, 其他个数为{}, 分别是{}" .format(count, int_Count, i_count, strs_Count, ss_count,  strl_Count, sl_count, other_Count, o_count))

    # 将文本内容存储为str.txt文件
    with open("str.txt", "w") as s:
        s.write(user_input)

    # 将这串字符转化成无符号整型(uint8)
    numlist = []
    for i in a:
        numlist.append(ord(i))


    # 将这串字符转化成无符号整型(uint8)存储到str_num.txt
    numlist_str = str(numlist)
    with open("str_num.txt", "w") as n:
        n.write(numlist_str)


    numlist_max = np.max(numlist)
    # print(numlist_max)
    numlist_min = np.min(numlist)
    numlist_mea = np.mean(numlist)

    print("无符号整型数组最大值{},最小值{},均值{}".format(numlist_max, numlist_min, numlist_mea))



if __name__ == "__main__":
    user_input = input("请输入一串字符:")
    Cal(user_input)

课程上机任务小练习

如有不足 多多指教

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值