一.实验项目名称:《零基础学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,'是广东省的身份证号码')

运行结果:



最新文章

  1. Ubuntu14.04下安装Hadoop2.4.0 (单机模式)
  2. python基础语法(2)
  3. 清华大学出版社即将推出的又一本挂羊头卖狗肉的劣书 《C语言入门1.2.3—一个老鸟的C语言学习心得》
  4. Django中级篇之模板语言
  5. jQuery选择器(适合初学者哟....)
  6. 【Android - 框架】之刷新加载框架Ultra-Pull-To-Refresh的使用
  7. 一道阿里面试题(js)
  8. js 点名
  9. 多种语言socket编程集锦—win32
  10. 新服务器部署sqlserver之前的准备
  11. IIS6、7添加反向代理的步骤
  12. php7-编译安装参数
  13. NodeJS Web模块
  14. oracle12C 创建PDB
  15. Spring Cloud :断路器集群监控(Turbine)
  16. jenkins1
  17. IDEA创建一个Mybatis逆向工程
  18. php笔记篇(二)
  19. POJ--Strange Way to Express Integers
  20. Connection to https://dl-ssl.google.com refused的解决办法

热门文章

  1. window.open在打开pdf时直接下载而不是查看
  2. Mysql数据库基础第二章:(八)子查询经典案例
  3. PCIe收发卡设计资料:611-基于VU9P的2路4Gsps AD 2路5G DA PCIe收发卡
  4. js两个数组对象中,获取不相同的值 非交集元素对象
  5. Dashboard是什么意思 Dashboard怎么用?
  6. python调用lua脚本
  7. 拓展django-haystack全文检索的样式和搜索频率限制
  8. python机器学习——朴素贝叶斯算法
  9. hdu4585 Treap与名次树/STL map(C/C++)
  10. 【loguru】Python简单的日志管理模块