Python简单练习(十一)

编程题(一)

  • 输入一个字符串,判断字符串中有多少个字母?多少个数字?多少个其他符号

    例如:'hello, nice to meet you. i am 18. my birthday is 1999-05-23'
        -- 结果: 字母的个数为33个,数字个数为10个, 其他字符为16个
str1 = "hello, nice to meet you. i am 18. my birthday is 1999-05-23"
count_str = 0
count_num = 0
count_other = 0
for i in str1:
    if i.isdigit():
        count_num += 1
    elif i in "abcdefghijklmnopqrstuvwxyz":
        count_str += 1
    else:
        count_other += 1
print(f"字母的个数为{count_str}个,数字个数为{count_num}个, 其他字符为{count_other}个")
  • 以下是一段歌词,请从这段歌词中统计出朋友出现的次数。

    “这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。”
str1 = ("这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。"
        "朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。"
        "朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。")
count = str1.count("朋友")
print(f"朋友出现的次数为:{count}")
  • 编写敏感词过滤程序
    *说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,要求输入一段文本,如果包含以上的敏感词汇,需要替换掉**

    例如:“军火走私” ---- 结果为 "**走私"
# str1 = ("说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。"
#         "如“性”、“色情”、“爆炸”、“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,")
word = ["性", "色情", "爆炸", "恐怖", "枪", "军火"]
str1 = input("请输入内容:")
for item in word:
    if item in str1:
        str1 = str1.replace(item, "*" * len(item))
print(f"修改后,内容为:{str1}")
  • 输入一个用户名,判断用户名是否合法。用户名要求:由英文字母或数字组成,长度是6到12位

    例如:‘abcd’ --- 不合法  "123456" -- 合法 ‘ABC23’ -- 不合法   ‘ABC123’ -- 合法
    “abc 124” --- 不合法
import string

name = input("请输入用户名:")
if 6 <= len(name) <= 12:
    for i in name:
        if i in string.digits or i in string.ascii_letters:
            continue
        else:
            print(f"用户名:{name},内容不合法")
            break
    else:
        print(f"用户名:{name},内容合法")
else:
    print(f"用户名:{name},长度不合法")
  • 随机生成长度为5的验证码, 验证码的组成是英文字母或者数字
import random
import string

all_str = string.digits + string.ascii_letters
yzm = ""
for i in range(5):
    str1 = all_str[random.choice(range(len(all_str)))]
    yzm += str1
print(yzm)
  • 实现将字符串 "1,2,3" 变成列表 ["1","2","3"]
str1 = "1,2,3"
list1 = str1.split(",")
print(list1)
  • 判断输入的字符串是否是 .py 结束
str1 = input("请输入字符串:")
result = str1.endswith(".py")
print(f"符串是否是 .py 结束:{result}")

编程题(二)

  • 输入一个字符串,将字符串中所有的数字符取出来产生一个新的字符串

    例如: 输入: 'abc1shj23kls99+2kkk'   输出: '123992'
str1 = 'abc1shj23kls99+2kkk'
new_str = ""
for i in str1:
    if i.isdigit():
        new_str += i
print(f"新字符串为:{new_str}")
  • 输入用户名,判断用户名是否合法,用户名的要求:必须由数字和字母且只能有数字和字母,并且第一个字符是大写字母

    例如:  'Abc'  — 不合法    '123'  — 不合法   'abc123'  — 不合法    'Abc123ahs' — 合法
import string

num_count = 0
str_count = 0
name = input("请输入用户名:")
if name[0] in string.ascii_uppercase:
    for i in name:
        if i in string.digits:
            num_count += 1
            continue
        if i in string.ascii_letters:
            str_count += 1
            continue
        else:
            print(f"用户名:{name},内容不合法")
            break
    if num_count != 0 and str_count != 0:
        print(f"用户名:{name},内容合法")
    else:
        print(f"用户名:{name},内容不合法")
else:
    print(f"用户名:{name},不合法,第一个字符不是大写字母")
  • 输入两个字符串,打印两个字符串中公共的字符,如果没有公共字符打印 公共字符不存在

    例如: 字符串1为 abc123a , 字符串2为  huak33 , 打印 a3
str1 = " abc123a "
str2 = "  huak33 "
common_list = []

for i in str2:
    if i in str1:
        common_list.append(i)

common_str = "".join(set(common_list))
print(common_str)
  • 如下字符串: "01#张三#60-02#李四#90-03#王五#70", 每一部分表示 学号#姓名#分数,提取学生信息存放于列表中,列表形式如下:

    结果显示为:
    [{"学号":'02', '姓名':'李四', '分数':90}, {"学号":'03', '姓名':'王五', '分数':70}, {"学号":'01', '姓名':'张三', '分数':60}]
stu_str = "01#张三#60-02#李四#90-03#王五#70"
stu_list = []
for item in stu_str.split("-"):
    stu_dict = {
        "学号": item.split("#")[0],
        "姓名": item.split("#")[1],
        "分数": item.split("#")[2],
    }
    stu_list.append(stu_dict)
print(stu_list)
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容