一、实验题目
Python第五章实例和实战作业
二、实验目的和要求
1.熟悉Pycharm的运行环境
2.学习并掌握Python的字符串及正则表达式
三、主要仪器设备
联想小新air15
硬件:AMD R7 5700U
软件:Windows11操作系统
四、实验内容
完成第五章实例01-10,5.7实战
利用Pycharm完成Python实验报告
实例01:使用字符串拼接输出一个关于程序员的笑话
代码如下:
#----------实例01:使用字符串拼接输出一个关于程序员的笑话----------# programmer_1 = '程序员甲:搞IT太辛苦了,我想换行……怎么办?' programmer_2 = '程序员乙:敲一下回车键' print(programmer_1 + '\n' + programmer_2)
代码运行结果如下:
实例02:截取身份证号码中的出生日期
代码如下:
#----------实例02:截取身份证号码中的出生日期----------# programmer_1 = '你知道我的生日吗?' #程序员甲问程序员乙的台词 print('程序员甲说:',programmer_1) #输出程序员甲的台词 programmer_2 = '输入你的身份证号码。' #程序员乙的台词 print('程序员乙说:',programmer_2) #输出程序员乙的台词 idcard = '123456199006277890' #定义保存身份证号码的字符串 print('程序员甲说:',idcard) #程序员甲说出身份证号码 birthday = idcard[6:10] + '年' + idcard[10:12] + '月' + idcard[12:14] + '日' #截取生日 print('程序员乙说:','你是' + birthday + '出生的,所以你的生日是' + birthday[5:])
代码运行结果如下:
实例03:输出被@的好友名称
代码如下:
#----------实例03:输出被@的好友名称----------# str1 = '@明日科技 @扎克伯格 @俞敏洪' list1 = str1.split(' ') #用空格分割字符串 print('您@的好友有:') for item in list1: print(item[1:]) #输出每个好友名时,去掉@符号
代码运行结果如下:
实例04:通过好友列表生成全部被@的好友
代码如下:
#----------实例04:通过好友列表生成全部被@的好友----------# list_friend = ['明日科技','扎克伯格','俞敏洪','马云','马化腾'] #好友列表 str_friend = ' @'.join(list_friend) # 用空格+@符号进行连接 at = '@' + str_friend #由于使用join()方法时,第一个元素前不加分隔符,所偶一需要在前面加上@符号 print('您要@的好友:',at)
代码运行结果如下:
实例05:不区分大小写验证会员是否唯一
代码如下:
#----------实例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:格式化不同的数值类型数据
代码如下:
#----------实例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:验证输入的手机号码是否为中国移动的号码
代码如下:
#----------实例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:验证是否出现危险字符
代码如下:
#----------实例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.match(pattern,about) #进行模式匹配 if match == None: #判断是否为None,为真表示匹配失败 print(about, '@ 安全!') else: print(about, '@ 出现了危险词汇!')
代码运行结果如下:
实例09:替换出现的危险字符
代码如下:
#-----------实例09:替换出现的危险字符----------# import re #导入Python的re模块 pattern = r'(黑客)|(抓包)|(监听)|(Trojan)' #模式字符串 about = '我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan。\n' sub = re.sub(pattern, '@_@',about) #进行模式替换 print(sub) about = '我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站。' sub = re.sub(pattern, '@_@',about) #进行模式替换 print(sub)
代码运行结果如下:
实例10:输出被@的好友名称(应用正则表达式)
代码如下:
#----------实例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 = '小卒一去不复返' str6 = ' ,' str7 = ' 。' print('象棋口诀:') print(str1 + str6) print(str2 + str6) print(str3 + str6) print(str4 + str6) print(str5 + str7)
代码运行结果如下:
实战二:判断车牌归属地
代码如下:
#----------实战二:判断车牌归属地----------# string = '津A·12345',\ '沪A·23456',\ '京A·34567' for i in range(len(string)): print('第' + str(i+1) + '张车牌号码:\n' + string[i]) if string[i][0] == '津': print('这张号牌的归属地:天津') if string[i][0] == '沪': print('这张号牌的归属地:上海') if string[i][0] == '京': print('这张号牌的归属地:北京')
代码运行结果如下:
实战三:模拟微信抢红包
代码如下:
#----------实战三:模拟微信抢红包----------# import random import decimal print('----------模拟微信抢红包----------') money = input("请输入要装入红包的总金额:") nums = int(input("请输入红包的个数(个):")) money_all = decimal.Decimal(money) for num in range(1,nums+1): if num == nums: last = money_all else: last = money_all/2*decimal.Decimal(str(random.random())) last = last.quantize(decimal.Decimal('0.00')) money_all = money_all - last print('第%d个红包:%s' %(num,str(last)))
代码运行结果如下:
实战四:显示实时天气预报
代码如下:
#----------实战四:显示实时天气预报----------# weather = '2018年4月17日 \t天气预报:{:s} \t{:d}℃~{:d}℃ \t微风转西风3~4级' print(weather.format('晴',20,7)) print('08:00 \t天气预报:{:s} \t{:d}℃ \t微风'.format('晴',13)) print('12:00 \t天气预报:{:s} \t{:d}℃ \t微风'.format('晴',19)) print('16:00 \t天气预报:{:s} \t{:d}℃ \t西风3~4级'.format('晴',18)) print('20:00 \t天气预报:{:s} \t{:d}℃ \t西风3~4级'.format('晴',15)) print('00:00 \t天气预报:{:s} \t{:d}℃ \t微风'.format('晴',12)) print('04:00 \t天气预报:{:s} \t{:d}℃ \t微风'.format('晴',9))
代码运行结果如下:
标签:re,Python,如下,程序员,实例,第五章,print,实验报告,----------# From: https://www.cnblogs.com/Shing-gyl/p/16743269.html