字符串及正则表达式
1.使用字符串拼接输出一个有关程序员的笑话
programmer_1 = "程序员甲:搞IT太辛苦了,我想换行...怎么办?"
programmer_2 = "程序员乙:敲一下回车键"
print(programmer_1+'\n'+programmer_2)
结果:
2.截取身份证号码中的出生日期
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:])
结果:
3.输出被@的好友
str1 = "@明日科技 @扎克伯格 @俞敏洪"
list1 = str1.split(' ')
print("您@的好友有: ")
for item in list1:
print(item[1:])
结果:
4.通过好友列表生成全部被@的好友
list_friend = ["明日科技","扎克伯格","俞敏洪","马云","马化腾"]
str_friend = '@'.join(list_friend)
at = "@"+str_friend
print("你想要@的好友:",at)
结果:
5.不区分大小写验证会员名是否唯一
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,"可以注册!")
结果:
6.格式化不同的数值类型数据
import math
print("1251+3950都结果是(以货币的形式显示):Y{:,.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))
结果:
7.验证输入的手机号码是否为中国移动的号码
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,'是有效的中国移动手机号码.')
结果:
8.验证是否出现危险字符
import re
pattern = r'(黑客)|(抓包)|(监听)|(Trojan)'
about = '我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan.'
match = re.search(pattern,about)
if match == None:
print(about,"@ 安全!")
else:
print(about,"@ 出现了危险词汇!")
about = '我是一名程序员,我喜欢看黑客方面的图书,喜欢开发网站.'
match = re.match(pattern,about)
if match == None:
print(about,"@ 安全!")
else:
print(about,"@ 出现了危险词汇!")
结果:
9.替换出现的危险字符
import re
pattern = r'(黑客)|(抓包)|(监听)|(Trojan)'
about = '我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan.\n'
sub = re.sub(pattern,'@_@',about)
print(sub)
about = '我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站.\n'
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)
结果:
实战1.打印象棋口诀
str1 = "象棋口诀:"
str2 = "马走日 ,"
str3 = "象走日 ,"
str4 = "车走直线跑翻山 ,"
str5 = "士走斜线护将边 ,"
str6 = "小卒一去不回还 。"
print(str1+'\n'+str2+'\n'+str3+'\n'+str4+'\n'+str5+'\n'+str6)
结果:
实战2.判断车牌号的归属地
import re
str1 = ["津A·12345", "沪A·23456", "京A·34567"]
number1 = r'津\w+'
number = input("第1张车牌号码:\n")
match1 = re.match(number1,number)
if match1 != None:
print("这张号码牌的归属地:天津")
number2 = r'沪\w+'
number = input("第2张车牌号码:\n")
match2 = re.match(number2,number)
if match2 != None:
print("这张号码牌的归属地:上海")
number3 = r'京\w+'
number = input("第3张车牌号码:\n")
match3 = re.match(number3,number)
if match3 != None:
print("这张号码牌的归属地:北京")
结果:
实战3.模拟微信抢红包
import random
from decimal import Decimal
print("----------模拟微信抢红包----------")
number1 = (input("请输入要装入红包的总金额(元):"))
number2 = (input("请输入红包的个数(个):"))
money_list = []
number1 = float(number1)
number1 = round(number1,2)
number2 = Decimal(number2)
for i in range(1,int(number2)):
number3 = random.uniform(0.01,number1)
number3 = round(number3,2)
number1 = number1 - number3
money_list.append(number3)
lastnumber = round(number1,2)
money_list.append(lastnumber)
random.shuffle(money_list)
for x in range(len(money_list)):
print("第"+str(x+1)+"个红包:"+str(money_list[x])+"元")
结果:
实战4.显示实时天气预报
print('{:d}年{:d}月{:d}日\t天气预报:{:s}\t{:d}摄氏度~{:d}摄氏度\t{:s}{:d}~{:d}级'.format(2018,4,17,'晴',20,7,'微风转西风',3,4 ))
print('{:0>2d}:{:0>2d}\t天气预报:{:s}\t{:d}摄氏度\t{:s}'.format(8,0,'晴',13,'微风'))
print('{:0>2d}:{:0>2d}\t天气预报:{:s}\t{:d}摄氏度\t{:s}'.format(12,0,'晴',19,'微风'))
print('{:0>2d}:{:0>2d}\t天气预报:{:s}\t{:d}摄氏度\t{:s}'.format(16,0,'晴',18,'西风3~4级'))
print('{:0>2d}:{:0>2d}\t天气预报:{:s}\t{:d}摄氏度\t{:s}'.format(20,0,'晴',15,'西风3~4级'))
print('{:0>2d}:{:0>2d}\t天气预报:{:s}\t{:d}摄氏度\t{:s}'.format(0,0,'晴',12,'微风'))
print('{:0>2d}:{:0>2d}\t天气预报:{:s}\t{:d}摄氏度\t{:s}'.format(4,0,'晴',9,'微风'))
结果:
浙公网安备 33010602011771号