Python第五章实例和实战作业
实例01:使用字符串拼接输出一个关于程序员的笑话
代码如下:
![](/i/l/?n=22&i=blog/2978527/202210/2978527-20221008001530756-993227911.png)
代码运行结果如下:
实例02:截取身份证号码中的出生日期
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
![](/i/l/?n=22&i=blog/2978527/202210/2978527-20221008001935368-1229196123.png)
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实例03:输出被@的好友名称
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
![](/i/l/?n=22&i=blog/2978527/202210/2978527-20221008002151697-1791892411.png)
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实例04:通过好友列表生成全部被@的好友
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
![](/i/l/?n=22&i=blog/2978527/202210/2978527-20221008002344645-290566490.png)
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实例05:不区分大小写验证会员是否唯一
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
![](/i/l/?n=22&i=blog/2978527/202210/2978527-20221008002748530-31641164.png)
代码运行结果如下:
实例06:格式化不同的数值类型数据
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
![](/i/l/?n=22&i=blog/2978527/202210/2978527-20221008003242074-1509403203.png)
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实例07:验证输入的手机号码是否为中国移动的号码
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
![](/i/l/?n=22&i=blog/2978527/202210/2978527-20221008003406476-1306989206.png)
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实例08:验证是否出现危险字符
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
![](/i/l/?n=22&i=blog/2978527/202210/2978527-20221008003712676-1299125217.png)
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实例09:替换出现的危险字符
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
#-----------实例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)
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实例10:输出被@的好友名称(应用正则表达式)
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
#----------实例10:输出被@的好友名称(应用正则表达式)----------# import re str1 = '@明日科技 @扎克伯格 @俞敏洪' pattern = r'\s*@' list1 = re.split(pattern,str1) #用空格和@或单独的@分割字符串 print('您@的好友有:') for item in list1: if item != "": #输出不为空的元素 print(item) #输出每个好友名
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实战一:打印象棋口诀
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
#----------实战一:打印象棋口诀----------# str1 = '马走日' str2 = '象走田' str3 = '车走直路炮翻山' str4 = '士走斜线护将边' str5 = '小卒一去不复返' str6 = ' ,' str7 = ' 。' print('象棋口诀:') print(str1 + str6) print(str2 + str6) print(str3 + str6) print(str4 + str6) print(str5 + str7)
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实战二:判断车牌归属地
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
#----------实战二:判断车牌归属地----------# 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('这张号牌的归属地:北京')
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实战三:模拟微信抢红包
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
#----------实战三:模拟微信抢红包----------# 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)))
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
实战四:显示实时天气预报
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
#----------实战四:显示实时天气预报----------# 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))
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
课后作业:
1.匹配8位密码,既要有数字,又要有字母,也要有字符
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
#----匹配8位密码,既要有数字,又要有字母,也要有字符----# import re pattern = r'^\w{8}$' print('请输入8位密码:') string = input() match = re.match(pattern,string,re.I) print(match) print('匹配值的起始位置:',match.start()) print('匹配值的结束位置:',match.end()) print('匹配位置的元组:',match.span()) print('要匹配的字符串:',match.string) print('匹配值数据:',match.group())
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下:
2.匹配身份证号码是属于广东省的
代码如下:
![复制代码](https://common.cnblogs.com/images/copycode.gif)
#----------匹配身份证号码是属于广东省的----------# import re pattern = r'(44[0-9]{4}\d{12})' print('请输入18位身份证:') string = input() match = re.match(pattern,string) if match == None: print(string,'不属于广东省身份证') else: print(string, '属于广东省身份证')
![复制代码](https://common.cnblogs.com/images/copycode.gif)
代码运行结果如下: