首页 > 编程语言 >Python实验报告——第5章 字符串及正则表达式

Python实验报告——第5章 字符串及正则表达式

时间:2022-10-08 01:33:06浏览次数:54  
标签:about 程序员 re Python pattern str1 正则表达式 print 实验报告

实验报告

  • 实例01:使用字符串拼接输出一个关于程序员的笑话

代码如下:

programmer_1 = '程序员甲:搞IT太辛苦了,我想换行……怎么办?'
programmer_2 = '程序员乙:敲一下回车键'
print(programmer_1 + '\n'  + programmer_2)

运行结果:

 

  •  实例02:截取身份证号码中的出生日期

代码如下:

programer_1 = '你知道我的生日吗?'    #程序员甲问程序员乙的台词
print('程序员甲说:',programer_1)    #输出程序员甲的台词
programer_2 = '输入你的身份证号码。'   #程序员乙的台词
print('程序员乙说:',programer_2)    #输出程序员乙的台词
idcard = '123456199006277890'      #定义保存身份证号码的字符串
print('程序员甲说:',idcard)         #程序员甲说出身份证号码
birthday = idcard[6:10] + '年' + idcard[10:12] + '月' + idcard[12:14] + '日'     #截取生日
print('程序员乙说:','你是' + birthday + '出生的,所以你的生日是' + birthday[5:])

运行结果:

 

  •  实例03:输出被@的好友名称

代码如下:

str1 = '@明日科技 @扎克伯格 @俞敏洪'
list1 = str1.split(' ')         #用空格分割字符串
print('您@的好友有:')
for item in list1:
    print(item[1:])             #输出每个好友名时,去掉@符号

运行结果:

 

  •  实例04:通过好友列表生成全部被@的好友

代码如下:

list_friend = ['明日科技','扎克伯格','俞敏洪','马云','马化腾']    #好友列表
str_friend = '@'.join(list_friend)     #用空格+@符号进行连接
at = '@'+str_friend   #由于使用join()方法时,第一个元素前不加分隔符,所以需要在前面加上@符号
print('您要@的好友:',at)

运行结果:

 

  •  实例05:不区分大小写验证会员名是否唯一

代码如下:

#假设已经注册的会员名称保存在一个字符串中,以“|”进行分隔
username_1 = '|MingRi|mr|mingrisoft|WGH|MRSoft|'
username_2 = username_1.lower()              #将会员名称字符串全部转换为小写
regname_1 = input('请输入要注册的会员名称:')
regname_2 = '|' + regname_1.lower() + '|'    #将要注册的会员名称全部转换为小写
if regname_2 in username_2:                  #判断输入的会员名称是否存在
    print('会员名',regname_1,'已经存在!')
else:
    print('会员名',regname_1,'可以注册!')

运行结果:

 

 

  •  实例06:格式化不同的数值类型数据

代码如下:

import math        #导入Python的数学模块
#以货币形式显示
print('1251+3950的结果是(以货币形式显示):¥{:,.2f}元'.format(1251+3950))
print('{0:.1f}用科学计数法表示:{0:E}'.format(120000.1)) #用科学计数法表示
print('π取5位小数:{:.5f}'.format(math.pi))            #输出小数点后五位
print('{0:d}的16进制结果是:{0:#x}'.format(100))        #输出十六进制数
#输出百分比,并且不带小数
print('天才是由{:.0%}的灵感,加上{:.0%}的汗水浇筑而成的。'.format(0.01,0.99))

运行结果:

 

  •  实例07:验证输入的手机号码是否为中国移动的号码

代码如下:

import re                                      #导入Python的re模块
pattern = r'(13[4-9]\d{8})$|(15[01289]\d{8})$'
mobile = '13634222222'
match = re.match(pattern, mobile)              #进行模式匹配
if match == None:                              #判断是否为None,为真表示匹配失败
    print(mobile, '不是有效的中国移动手机号码。')
else:
    print(mobile, '是有效的中国移动手机号码。')
mobile = '13144222221'
match = re.match(pattern, mobile)              #进行模式匹配
if match == None:                              #判断是否为None,为真表示匹配失败
    print(mobile, '不是有效的中国移动手机号码。')
else:
    print(mobile, '是有效的中国移动手机号码。')

运行结果:

 

 

 

  • 实例08:验证是否出现危险字符

代码如下:

import re                                       #导入Python的re模块
pattern = r'(黑客)|(抓包)|(监听)|(Trojan)'        #模式字符串
about = '我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan。'
match = re.search(pattern, about)               #进行模式匹配
if match == None:                               #判断是否为None,为真表示匹配失败
    print(about, '@ 安全!')
else:
    print(about, '@ 出现了危险词汇!')
about = '我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站。'
match = re.search(pattern, about)               #进行模式匹配
if match == None:                               #判断是否为None,为真表示匹配失败
    print(about, '@ 安全!')
else:
    print(about, '@ 出现了危险词汇!')

运行结果:

 

 

 

  • 实例09:替换出现的危险字符

代码如下:

import re                                      #导入Python的re模块
pattern = r'(黑客)|(抓包)|(监听)|(Trojan)'        #模式字符串
about = '我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan。'
sub = re.sub(pattern, '@_@', about)             #进行模式替换
print(sub)
about = '我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站。'
sub = re.sub(pattern, '@_@', about)             #进行模式替换
print(sub)

运行结果:

 

 

 

  • 实例10:输出被@的好友名称(应用正则表达式)

代码如下:

import re
str1 ='@明日科技 @扎克伯格 @俞敏洪'
pattern = r'\s*@'
list1 = re.split(pattern, str1)     #用空格和@或单独的@分割字符串
print('您@的好友有:')
for item in list1:
    if item != "":                  #输出不为空的元素
        print(item)                 #输出每个好友名

运行结果:

 

 

 

  • 实战一:打印象棋口诀

代码如下:

str1 = '马走日'
str2 = '象走田'
str3 = '车走直路炮翻山'
str4 = '士走斜线护将边'
str5 = '小卒一去不回还'
s1 = ','
s2 = '。'
print("象棋口诀:")
print(str1 + s1)
print(str2 + s1)
print(str3 + s1)
print(str4 + s1)
print(str5 + s2)

运行结果:

 

 

  • 实战二:判断车牌归属地

代码如下:

str1 = '津A·12345','沪A·23456','京A·34567'
for i in range(len(str1)):
    print('第' + str(i + 1) + '张车牌号码:\n' + str1[i])
    if str1[i][0] == '津':
        print("这张号牌的归属地:天津")
    elif str1[i][0] == '沪':
        print("这张号牌的归属地:上海")
    elif str1[i][0] == '京':
        print("这张号牌的归属地:北京")

运行结果:

 

 

  • 实战三:模拟微信抢红包

代码如下:

import random
import decimal
print("--------------模拟微信抢红包-------------")
money = float(input("请输入要装入红包的总金额(元):"))
count = int(input("请输入红包的个数(个):"))
for num in range(1, count + 1):
    if num == count:
        end = money
    else:
        end = random.uniform(0.01, money)
        end = round(end, 2)
        money = money - end
        money = round(money, 2)
    print("第" + str(count) + "个红包:" + str(end) + "元")

运行结果:

 

 

  • 实战四:显示实时天气预报

代码如下:

weather='2018年4月17日 \t 天气预报:{:s} \t 20C~7°℃ \t 微风转西风3~4级\n \
08:00 \t 天气预报:{:s} \t 13℃ \t 微风\n\
12:00 \t 天气预报:{:s} \t 19℃ \t 微风\n\
16:00 \t 天气预报:{:s} \t 18℃ \t 西风3~4级\n\
20:00 \t 天气预报:{:s} \t 15℃ \t 西风3~4级\n\
00:00 \t 天气预报:{:s} \t 12℃ \t 微风\n\
04:00 \t 天气预报:{:s} \t 9℃  \t 微风'
ans = weather.format('晴', '晴', '晴', '晴', '晴', '晴', '晴')
print(ans)

运行结果:

 

标签:about,程序员,re,Python,pattern,str1,正则表达式,print,实验报告
From: https://www.cnblogs.com/xunegu77/p/16767620.html

相关文章

  • python第四章实例与实战
    实例01输出每日一贴,代码如下:importdatetimemot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。","今天星期二:\n含泪播种的人一定能笑着收获......
  • Python_fifth_chapter_homework
    Python第五章实例和实战作业实例01:使用字符串拼接输出一个关于程序员的笑话代码如下:代码运行结果如下: 实例02:截取身份证号码中的出生日期代码如下:代码运行......
  • Python: 执行系统命令的四种方法(os.system、os.popen、commands、subprocess)
    一、os.system方法这个方法是直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息。os.system(cmd)的返回值。如果执行成功,那么会......
  • 字符串及正则表达式
    实例1、使用字符串拼接输出一个关于程序员的笑话programmer_1='程序员甲:搞IT太辛苦了,我想换行......怎么办?'programmer_2='程序员乙:敲一下回车键'print(programmer_1+'\n'......
  • Python中的__new__()方法
    1、__new__()至少要有一个参数cls,代表当前类,此参数在实例时由python解释器自动识别,2、__new__()必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别......
  • Python 使用zmail、imapclient或imap_tools接收邮件
    Python中,可以使用通过代码方式接收邮件,本文主要介绍使用zmail、imapclient和imap_tools三种方法接收邮件,以及相关的示例代码。原文地址:Python使用zmail、imapclient或ima......
  • python写脚本测试执行为什么要写if __name__ == '__main__'
    我的博客在写python脚本的时候,例如,我写一个test1.pydeftest(n):print(n)if__name__=='__main__':n=1test(1)接下来打开cmd命令窗口,执行命令python......
  • Python 如何查找特定类型文件(以xls和xlsx为例)
    今天的文章是介绍如何用Python去定位特定类型的文件,会讲到用字符串匹配文件名定位特定文件以及顺带介绍一下遍历目录树的函数,通过今天的这一部分以及之前文章讲到的文件......
  • 在VSCODE的终端运行Python时汉字乱码问题处理
    问题描述在VSCODE的终端运行Python时,打印输出中文时汉字出现乱码,文件编码都是UTF-8解决步骤1、打开Settings配置窗口(Ctrl+,)2、搜索:code-runner.executor如下图所示......
  • CentOS 7.9 安装 Python-3.9.5
    一、CentOS7.9安装Python-3.9.5地址https://www.python.orghttps://www.python.org/ftp/python/3.9.5查看当前python版本pythonpython-V可以看到执行python......