实验名称:字符串练习

发布于:2024-05-31 ⋅ 阅读:(138) ⋅ 点赞:(0)
  • 欢迎收看你的月亮我的心!大家好!我是肖老师,我又回来了!

一、实验目的:

  1. 统计不同字符(字母、数字、空格、其他字符)的个数
  2. 编写程序,检查字符串”Life is short.I use python”中是否包含字符串”python”,若包含则替换为”Python”后输出新字符串,否则输出原字符串。
  3. 随机生成六位验证码(random模块:randint(0,9)可生成一个0-9之间的随机整数random.choice()从参数中选择一个   string模块:string.ascii_letters可得到所有字母string.digits可得到所有数字)
  4. 进度条一般以图形的方式显示已完成任务量和未完成任务量,并以动态文字的方式显示       任务的完成度。要求编写程序实现文本进度条功能。(page50)
  5. 敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语。编写代码,实现具有过滤敏感词功能的程序。(page54)
  6. 使用字符串的方法,将字符串的每一个字符放入列表中

二、实验环境:

安装pycharm2023.3.4 

安装适配的jdk

三、实验步骤:

1.统计不同字符(字母、数字、空格、其他字符)的个数

  • 先输入一串字符串
  • 创建变量记录符号个数
  • 利用for循环遍历字符串
  • 使用if条件判断是否为字母、数字、空格、其他
  • 输出结果,分别有几个

      

2.编写程序,检查字符串”Life is short.I use python”中是否包含字符串”python”,若包含则替换为”Python”后输出新字符串,否则输出原字符串。

  • 先另一个变量接收字符串”Life is short.I use python”
  • 使用if语句判断字符串中是否有python
  • 如果有则替换成Python
  • 如果没有原样输出

3.随机生成六位验证码

  • random.randint()随机生成数字
  • random.choice()选择其中一个打印
  • string.ascii_letters打印所有的字母,大小写
  • string.digits打印所有数字

 4.进度条一般以图形的方式显示已完成任务量和未完成任务量,并以动态文字的方式显示任务的完成度。要求编写程序实现文本进度条功能。(page50)

  • 进度条开始,设置进度条scale
  • 使用for循环,打印*和.来显示进度条
  • 使用格式化打印,^表示居中,3.0f表示字符串占三位且不保留小数
  • 使用time.sleep暂时暂停0.1s
  • 输出显示进度条,进度条结束

5.敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语。编写代码,实现具有过滤敏感词功能的程序。(page54)

  • 输入字符串
  • 使用for循环遍历,看是否有敏感词汇
  • 如果有,将*替换
  • 没有,则原样输出

6.使用字符串的方法,将字符串的每一个字符放入列表中

  • 让用户输入字符串
  • 使用split方法,将字符串分隔再组成列表

四、实验结果:

1.统计不同字符(字母、数字、空格、其他字符)的个数

# 1.统计不同字符(字母、数字、空格、其他字符)的个数
word = 0
num = 0
blank = 0
other = 0
s = input("请输入一串字符")
print("/n")
for k in s:
    if k.isalpha():
        word += 1
    elif k.isdigit():
        num += 1
    elif k ==" ":
        blank += 1
    else:
        other += 1
print(f"该串字符字母{word}个、数字{num}个、空格{blank}个、其他字符{other}个")

2.编写程序,检查字符串”Life is short.I use python”中是否包含字符串”python”,

  若包含则替换为”Python”后输出新字符串,否则输出原字符串。

#编写程序,检查字符串”Life is short.I use python”中是否包含字符串”python”,若包含则替换为”Python”后输出新字符串,否则输出原字符串。
s = "Life is short.I use python"
if "python" in s:
    print(s.replace("python","Python"))
else:
    print(s)

3.随机生成六位验证码

random模块

randint(0,9)可生成一个0-9之间的随机整数

random.choice()从参数中选择一个

string模块

string.ascii_letters可得到所有字母

string.digits可得到所有数字)

# 3.随机生成六位验证码
# (random模块)randint(0,9)可生成一个0-9之间的随机整数
# random.choice()从参数中选择一个
# string模块
# string.ascii_letters可得到所有字母
# string.digits可得到所有数字)
import random
import string
#random.randint()随机生成六位验证码
print(random.randint(1,1000000))
#random.choice()随机选取一个字母输出
print(random.choice("university"))
#获取26个字母打印(大写+小写)
print(string.ascii_letters)
#打印0-9数字

4.进度条一般以图形的方式显示已完成任务量和未完成任务量,并以动态文字的方式显示       任务的完成度。要求编写程序实现文本进度条功能。(page50)

# 4.进度条一般以图形的方式显示已完成任务量和未完成任务量,并以动态文字的方式显示任务的完成度。要求编写程序实现文本进度条功能
# 文本进度条简单的开始
#way one:
import time

scale = 10
print("------执行开始------")
for i in range(scale + 1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i / scale) * 100
    print("{:^3.0f}%[{}->{}]".format(c, a, b))
    time.sleep(0.1)
print("------执行结束------")

'''文本进度条实例完整效果:'''

'''文本进度条单行动态刷新:'''''
print("\n")

#way two
import time
for i in range(101):
    print("\r{:3}%".format(i), end="")   # \n 换行   \r  单行显示,定位于最左侧
    time.sleep(0.1)

#way three
import time
print("\n")
scale = 50
print("执行开始".center(scale // 2, "-"))  # .center 字符串处理方法,将“-”打印在字符串两侧
start = time.perf_counter()  # perf_counter() 计算时间
for i in range(scale + 1):
    a = '*' * i
    b = '.' * (scale - i)
    c = (i / scale) * 100
    dur = time.perf_counter() - start  # 计算打印文本进度条所消耗的时间
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, dur), end='')
    time.sleep(0.1)
print("\n" + "执行结束".center(scale // 2, '-'))

5.敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语。

编写代码,实现具有过滤敏感词功能的程序。(page54)

# 5.敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语。
# 编写代码,实现具有过滤敏感词功能的程序。(page54)
s = input("请输入:")
for i in s:
    if "小日本" in s:
        print(s.replace("小日本","日本人"))
    elif "美国佬" in s:
        print(s.replace("美国佬","美国人"))
    elif "老不死的" in s:
        print(s.replace("老不死的","万古长青"))
    else:
        print(s)

6.使用字符串的方法,将字符串的每一个字符放入列表中

# 6.使用字符串的方法,将字符串的每一个字符放入列表中
s = input("请输入一段字符串:")
print(s.split(","))

!!!!!自己运行代码截图上交。

五、实验心得

这次实验中我学习到了有关random模块以及string模块的相关知识,拓宽了我的知识面。random模块内容颇多,使用起来方便快捷,功能也比较强大。我此次学习到的是九牛一毛,我也知道此后可以在这方面加强学习。此外,将已经学过的知识学以致用,这加深了我对代码的理解以及运用,我也从中得到了一些新的启发。对格式化输出也有更好的掌握,敲代码是一个日渐熟练的过程,虽然过程有些艰辛,但学到现在乐趣也颇多,我以后一定会更加努力学习。


网站公告

今日签到

点亮在社区的每一天
去签到