Python第五章实验报告
一.实验项目名称:《零基础学Python》第五章实战、实例以及两道作业题
二.实验目的和要求:了解和掌握操作字符串的方法和正则表达式的应用
三.实验环境:IDLE(Python 3.9 64-bit)
四.实验过程:
- 实例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
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
print('1251+3950的结果是(以货币形式显示):¥{:,.2f}元'.format(1251+3950))
print('{0:.1f}用科学计数法表示:{0:E}'.format(120000.1))
print('π取5位小数:{:.5}'.format(math.pi))
print('{0:d}的16进制结果是:{0:#x}'.format(100))
print('天才是由{:.0%}的灵感,加上{:.0%}的汗水。'.format(0.01,0.99))
、
运行结果:

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

点击查看代码
import re
pattern=r'(13[4-9]\d{8})$|(15[01289]\d{8})$'
mobile='13634222222'
match=re.match(pattern,mobile)
if match==None:
print(mobile,'不是有效的中国移动手机号码。')
else:
print(mobile,'是有效的中国移动手机号码。')
mobile='13144222221'
match=re.match(pattern,mobile)
if match==None:
print(mobile,'不是有效的中国移动手机号码。')
else:
print(mobile,'是有效的中国移动手机号码。')
、
运行结果:

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

点击查看代码
import re
pattern=r'(黑客)|(抓包)|(监听)|(Trojan)'
about='我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan。'
match=re.search(pattern,about)
if match==None:
print(about,'@安全!')
else:
print(about,'@出现了危险词汇!')
about='我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站。'
match=re.search(pattern,about)
if match==None:
print(about,'@安全!')
else:
print(about,'@出现了危险词汇!')
、
运行结果:

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

点击查看代码
import re
pattern=r'(黑客)|(抓包)|(监听)|(Trojan)'
about='我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan。\n'
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)
、
运行结果:

- 实战01 打印象棋口诀

点击查看代码
str1='马走日 象走田 车走直路炮翻山 士走斜线护将边'
str2='小卒一去不回还'
list1=str1.split(' ')
print('象棋口诀:')
for item in list1:
print(item+',')
print(str2+'。')
、
运行结果:

- 实战02 判断车牌归属地

点击查看代码
chepai=["津A·12345", "沪A·23456", "京A·34567"]
for i in range(3):
print('第' + str(i + 1) + '张车牌号码:')
print(chepai[i])
if chepai[i][0]=='津':
print('这张号牌的归属地:天津')
elif chepai[i][0]=='沪':
print('这张号牌的归属地:上海')
elif chepai[i][0]=='京':
print('这张号牌的归属地:北京')
、
运行结果:

- 实战03 模拟微信抢红包

点击查看代码
from decimal import Decimal
import random
print('------------模拟微信抢红包-----------')
ZJE=input('请输入要装入红包的总金额(元):')
i=input('请输入红包个数(个):' )
min=0.01
je_list=[]
zje=Decimal(ZJE)
i=Decimal(i)
min=Decimal(str(min))
if zje>i*min:
for x in range(1,int(i)):
anquan_zje=(zje-(i-x)*min)
item_inf=min*100
item_sup=int(anquan_zje*100)
je=item_inf/100 if item_inf>item_sup else (Decimal(random.randint(item_inf,item_sup)))/100
zje-=je
je_list.append(je)
je_list.append(zje)
random.shuffle(je_list)
for x in range(len(je_list)):
print('第'+str(x+1)+'个红包:',str(je_list[x]),'元')
、
运行结果:

- 实战04 显示实时天气预报

点击查看代码
print('2018年4月17日 天气预报:晴 20℃~7℃ 微风转西风3~4级')
template='{:0>2s}\t天气预报:晴 {:s}℃\t {:s}'
context1=template.format('08:00','13','微风')
context2=template.format('12:00','19','微风')
context3=template.format('16:00','18','西风3~4级')
context4=template.format('20:00','15','西风3~4级')
context5=template.format('00:00','12','微风')
context6=template.format('04:00','9','微风')
print(context1)
print(context2)
print(context3)
print(context4)
print(context5)
print(context6)
、
运行结果:

- 作业01
匹配出由“数字、字母、特殊字符”这三种字符组成的8位密码
点击查看代码
import re
pattern = r'^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)^.{8}$'
string=input('请输入由数字、字母、特殊字符组成的8位密码:')
a=re.findall(pattern,string)
if a==[]:
print('匹配失败')
else:
print(a,'匹配成功')
、
运行结果:


- 作业02
匹配出身份证属于广东省的身份证号码(提示:广东省身份证的开头两位数字为44)
点击查看代码
#匹配出身份证属于广东省的身份证号码(提示:广东省身份证的开头两位数字为44)
import re
pattern=r'(44[0-9]\d{15})$|(44[0-9]\d{18})$|(44[0-9]\d{17})(\d|X|x)$'
haoma=input('请输入身份证号码:')
match=re.match(pattern,haoma)
if match==None:
print(haoma,'匹配失败')
else:
print(haoma,'是广东省的身份证号码')
、
运行结果:


Python第五章实验报告的更多相关文章
- 20145330《Java程序设计》第五次实验报告
20145330<Java程序设计>第五次实验报告 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统 4.结队伙伴 ...
- 20145320《Java程序设计》第五次实验报告
20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...
- Python第五章__模块介绍,常用内置模块
Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群 群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...
- Java第五次实验报告
Java第五次实验报告 实验一 实验内容 两人一组结对编程: 参考 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC. ...
- 20145240 《Java程序设计》第五次实验报告
20145240 <Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.05.06 实验 ...
- 简学Python第五章__模块介绍,常用内置模块
Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群 群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...
- 第五次实验报告 java 网络编程
20145306 第五次 java 实验报告 实验内容 客户端与服务器连接,客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客 ...
- 20145317彭垚 《Java程序设计》第五次实验报告
20145317彭垚实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21: ...
- 《JAVA程序设计》第五次实验报告
20145333 实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21:3 ...
- 20165210 Java第五次实验报告
20165210 实验五 网络编程与安全 网络编程与安全一: 实验要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA ...
随机推荐
- Lecture 1. Introduction and Basics - Carnegie Mellon - Computer Architecture 2015 - Onur Mutlu
1.Hamming Distance: 两个相同长度比特串对应位置的不同位的数量,一般使用 d(x,y) 来表示汉明距离.对两个比特串进行异或运算,统计结果为1的个数就是汉明距离. ======= ...
- Django 知识点总结
知识点总结 一.URL: 1.在python 正则表达式中,正则表达式命名组的语法是(?P<name>pattern),其中命名组中的命名就是name,并且pattern 是某些匹配的模式 ...
- vue 3 打印 print-js
1.安装 npm install print-js --save 2.引用 import print from 'print-js' 3.编写打印函数 const enterDialog = asyn ...
- rhel8.0配置本地 yum 源
1.首先挂载cdromcat >> /etc/fstab <<EOF/dev/sr0 /media iso9660 ...
- npm设置和取消代理的方法
设置代理 npm config set proxy=http://server:port npm config set https-proxy https://server:port // https ...
- Mysql存储的设备推送数据如何利用GroupBy筛选所有设备的最新数据
首先介绍GroupBy关键字的用法原理: 先来看下表1,表名为test: 表1 执行如下SQL语句: SELECTnameFROMtestGROUPBYname 你应该很容易知道运行的结果,没错, ...
- Linux 库的使用
Linux 库的使用 -I头文件的路径-L动态库的路径 命名 使用 静态库 lib名字.a 静态库路径/lib名字.a 动态库 lib名字.so -L动态库路径 -l名字 编译 #静态编译 # g ...
- ZSTUOJ刷题④:Problem B.--输出双层金字塔
Problem B: 输出双层金字塔 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 7860 Solved: 5834 Description 输出双层 ...
- NIO基本编写
一.编写server端 1 public class Server implements Runnable{ 2 //1 多路复用器(管理所有的通道) 3 private Selector selet ...
- Java中的super和this关键字——
super与this关键字 先总结再解释: super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类. this关键字:指向自己的引用. super注意点: 1.s ...