第五章python实训
5-1
programmer_1='程序员甲:搞IT太辛苦了,我想换行...怎么办?'
programmer_2='程序员乙:敲一下回车键'
print(programmer_1+'\n'+programmer_2)
5-2
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:])
5-3
5-4
list_friend=['大笨熊要冬眠咯','A维Cgirl','blue']
str_friend='@'.join(list_friend)
at='@'+str_friend
print('你要@的好友:',at)
5-5
# 不区分大小写验证会员名是否唯一
# 假设已经注册的会员名保存在一个字符串中,以"|"进行分隔
username_1='|fht|lyl|cyy|CYL|DSW|xml|'
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,'可以注册')
5-6
# 格式化不同的数值类型数据
import math # 导入Python的数学模块
# 以货币形式显示
print('1251+3950的结果是(以货币形式显示):¥{:,.2f}元'.format(1251+3950))
print('{0:.1f}用科学计数法表示:{0:E}'.format(120000.1)) #用科学计数法表示
print('π取5位小数:{:.5f}'.format(math.pi)) #输出小数点后5位
print('{0:d}的16进制结果是:{0:#x}'.format(100)) #输出十六进制数
# 输出百分比,并且不带小数
print('天才是由{:.0%}的灵感,加上{:.0%}的汗水。'.format(0.01,0.99))
5-7
# 验证输入的手机号码是否为中国移动的号码
import re # 导入python的re模块
pattern=r'(13[4-9]\d{8})$|(15[01289]\d{8})$'
mobile='13634222221'
match=re.match(pattern,mobile) # 进行匹配模式
if match==None:
print(mobile,'不是有效的中国移动的电话号码')
else:
print(mobile,'是有效的中国移动电话号码')
mobile='1314422221'
match=re.match(pattern,mobile)
if match==None:
print(mobile,'不是有效的中国移动电话号码')
else:
print(mobilr,'是有效的中国移动电话号码')
5-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,'@ 出现了危险词汇!')
5-9
# 替换出现的危险字符
import re
pattern=r'(黑客)|(抓包)|(监听)|(Trojan)'
about='我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan'
sub=re.sub(pattern,'@_@',about)
print(sub)
about='我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站'
sub=re.sub(pattern,'@_@',about)
print(sub)
5-10
# 输出被@的好友名称(应用正则表达式)
import re
str1='@大笨熊要冬眠咯 @A维Cgirl @blue'
pattern=r'\s*@'
list1=re.split(pattern,str1) # 用空格和@单独的@分割字符串
print('你@的好友有:')
for item in list1:
if item !="":
print(item)
p1
# 打印象棋口诀
str1 = '象棋口诀'
str2 = '马走日'
str3 = '象走田'
str4 = '车走直路炮翻山'
str5 = '士走斜线护将边'
str6 = '小卒一去不回还'
print(str1 + ':')
print(str2 + ' ,')
print(str3 + ' ,')
print(str4 + ' ,')
print(str5 + ' ,')
print(str6 + ' 。')
p2
car = ('津','沪','京')
place = ['天津','上海','北京']
car_dict = dict(zip(car,place))
str1 = '津A·12345'
str2 = '沪A·23456'
str3 = '京A·34567'
print('第一张车牌号码:')
print(str1)
carname = str1[0]
location = car_dict[carname]
print('这张号牌的归属地是:' + str(location))
print('第二张车牌号码:')
print(str2)
carname = str2[0]
location = car_dict[carname]
print('这张号牌的归属地是:' + str(location))
print('第三张车牌号码:')
print(str3)
carname = str3[0]
location = car_dict[carname]
print('这张号牌的归属地是:' + str(location))
p3
print('------------模拟微信抢红包------------')
import random
import decimal
money = input('请输入要装入红包的总金额(元):')
money_total = decimal.Decimal(money)
number = int(input('请输入红包的个数(个): '))
for num in range(1,number+1):
if num == number:
last = money_total
else:
last = money_total/2*decimal.Decimal(str(random.random()))
last = last.quantize(decimal.Decimal('0.00'))
money_total = money_total-last
print("第%d个红包: %s"%(num,str(last)))