一.实验项目名称:《零基础学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第五章实验报告的更多相关文章

  1. 20145330《Java程序设计》第五次实验报告

    20145330<Java程序设计>第五次实验报告 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统 4.结队伙伴 ...

  2. 20145320《Java程序设计》第五次实验报告

    20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...

  3. Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  4. Java第五次实验报告

    Java第五次实验报告 实验一 实验内容 两人一组结对编程: 参考 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC. ...

  5. 20145240 《Java程序设计》第五次实验报告

    20145240 <Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.05.06 实验 ...

  6. 简学Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  7. 第五次实验报告 java 网络编程

    20145306 第五次 java 实验报告 实验内容 客户端与服务器连接,客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客 ...

  8. 20145317彭垚 《Java程序设计》第五次实验报告

    20145317彭垚实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21: ...

  9. 《JAVA程序设计》第五次实验报告

    20145333 实验五 Java网络编程及安全 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18:30-21:3 ...

  10. 20165210 Java第五次实验报告

    20165210 实验五 网络编程与安全 网络编程与安全一: 实验要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA ...

随机推荐

  1. nginx4层代理ssh服务

    四层代理依赖模块ngx_stream_core_module,默认情况下,此模块不构建,应使用配置参数启用 --with-stream 配置文件内容: ... stream { upstream ss ...

  2. 解决Vue.js devtools插件成功装上,却在控制台中找不到的问题

    参考:https://blog.csdn.net/CCCCt1/article/details/97668483

  3. 20192305 王梓全Python程序设计实验一报告

    20192305 王梓全Python程序设计实验一报告 课程:<Python程序设计> 班级: 1923 姓名: 王梓全 学号:20192305 实验教师:王志强 实验日期:2021年4月 ...

  4. Oracle添加约束

    约束 -contraint Oracle中约束类型:主键约束,唯一约束,非空约束,外键约束,check约束,下述主要是alter的方法去添加约束,也可以在建表时直接添加约束 主键约束 alter ta ...

  5. CEOI 2021

    CEOI 2021 \(pts\):64 + 0 + 4 \(T1 : 64pts\) 首先我们肯定知道对于相同的数,一定是放在一起才是最优的,随意我们对于每段查询的区间要保证有序,然后我们发现,每个 ...

  6. #科技 #资讯 #生活 微信测试更多图片打开方式,神州圆满发射,英伟达或停产性价比神卡,SAMSUNG新一代显存带宽容量双翻倍,这就是今天的其它大新闻

    今天是2022年12月01日 十一月初八 现在是中午12:10 下面是今天的其他大新闻 #NEWS 1 # 微信测试用不同小程序打开图片:快捷调用小程序打开图片.视频.文件 ( 新浪科技 ) 据悉,微 ...

  7. [杂谈吐槽]UE国内社区环境

    此篇博客是我个人想法,当然也是不争的事实,如果您有意见,那您也是我说那些人其中的一员. --此部分为社区环境差最恶劣的原因-- 国内的虚幻社区环境可以说不能再烂了,虚幻商城和虚幻引擎的蓝图是非常强大的 ...

  8. BGP反射器

    路由反射器是一种减少自治系统内IBGP对等体连接数量的方法. 根据BGP路由通告原则,要求一个AS内的所有BGP Speaker将建立全连接关系(BGP Speaker两两建立邻接关系).当AS内的B ...

  9. python-文件和文件夹操作

    1.os模块 import os 方法 功能说明 access(path,mode) 测试是否可以按照mode指定的权限访问文件 chdir(path) 把path设为当前工作目录 chmod(pat ...

  10. Java中继承相关知识点

    继承 1.继承概述 继承是面向对象的三大特征之一.可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法 1.1 继承的格式 格式:public class 子类名 extends ...