Python第五章

1、实例1:使用字符串拼接输出一个关于程序员的笑话

代码:

programmer_1 = '程序员甲:搞IT太辛苦了,我想换行……怎么办?'
programmer_2 = '程序员乙:敲一下回车键'
print(programmer_1 + '\n' + programmer_2)

 

运行结果:

 

 2、实例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:])

运行结果:

 

 3、实例3:输出被@的好友名称

代码:

str1 = '@明日科技 @扎克伯格 @俞敏洪'
list1 = str1.split(' ')
print('您@的好友有:')
for item in list1:
    print(item[1:])

运行结果:

 

 

 

 

 4、实例4:通过好友列表生成全部被@的好友

代码:

list_friend = ['明日科技','扎克伯格','俞敏洪','马云','马化腾']
str_friend = ' @'.join(list_friend)
at = '@'+str_friend
print('您要@的好友:',at)

运行结果:

 

 5、实例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、实例6:格式化不同的数值类型数据

代码:

import math
print('1251+3950的结果是(以货币形式显示):¥{:,.2f}元'.format(1251+3950))
print('{0:.1f}用科学计数法表示:{0:E}'.format(120000.1))
print('π取五位小数:{:.5f}'.format(math.pi))
print('{0:d}的16位进制结果是:{0:#x}'.format(100))
print('天才是由{:.0%}的灵感,加上{:.0%}的汗水。'.format(0.01,0.99))

运行结果:

 

 

7、实例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、实例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、实例9:替换出现的危险字符

代码:

import re                                           
pattern = r"(黑客)|(抓包)|(监听)|(Trojan)"            
about = "我是一名程序员,我喜欢看黑客方面的图书,想研究一下Trojan。\n"
sub = re.sub(pattern,"@_@",about)                   
print(sub)
about = "我是一名程序员,我喜欢看计算机网络方面的图书,喜欢开发网站。"
sub = re.sub(pattern,"@_@",about)                   
print(sub)

运行结果:

 

 

10、实例10:输出被@的好友名称(应用正则表达式)

代码:

import re                       
str1 = "@明日科技 @扎克伯格 @俞敏洪"
pattern = r"\s*@"
list1 = re.split(pattern,str1)   
print("您@的好友有:")
for item in list1:
    if item !="":               
        print(item)              

运行结果:

 

 

实战一:打印象棋口诀

代码:

str1 = '马走日'
str2 = '象走田'
str3 = '车走直路炮翻山'
str4 = '士走斜线护将边'
str5 = '小卒一去不回还'
s1 = ''
s2 = ''
print("象棋口诀:")
print(str1 + s1)
print(str2 + s1)
print(str3 + s1)
print(str4 + s1)
print(str5 + s2)

运行结果:

 

 

实战二:判断车牌归属地

代码:

str1='津A·12345','沪A·23456','京A·34567'
for i in range(len(str1)):
    print('',str(i+1)+'张车牌号码:\n'+str1[i])
    if str1[i][0]=='':
        print('这张号牌的归属地:天津')
    if str1[i][0]=='':
         print('这张号牌的归属地:上海')
    if str1[i][0]=='':
         print('这张号牌的归属地:北京')

运行结果:

 

 

实战三:模拟微信抢红包

代码:

import random
import decimal
money=input("请输入要装入红包的总金额:")
money_total=decimal.Decimal(money)
nums=int(input("请输入红包的个数:"))
for num in range(1,nums+1):
    if num==nums:
        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)))

运行结果:

 

 

实战四:显示实时天气预报

代码:

weather='2018年4月17日\t天气预报:{:s}\t20℃~7℃\t微风转西风3~4级\n\
08:00\t天气预报:{:s}\t13℃\t微风\n\
12:00\t天气预报:{:s}\t19℃\t微风\n\
16:00\t天气预报:{:s}\t18℃\t西风3~4级\n\
20:00\t天气预报:{:s}\t15℃\t西风3~4级\n\
00:00\t天气预报:{:s}\t12℃\t微风\n\
04:00\t天气预报:{:s}\t9℃\t微风'
context=weather.format('','','','','','','')
print(context)

运行结果:

 

 

1:匹配出由“数字、字母、特殊字符”这三种字符组成的8位密码

代码:

import re                      
pattern = r"^(?![A-Za-z0-9]+$)(?![a-z0-9\\W]+$)(?![A-Za-z\\W]+$)(?![A-Z0-9\\W]+$)^.{8}$"    
passward = ["Assdf15341.,","0511@ltt","20021102"]              
for item in passward:                                           
    match = re.search(pattern, item)                           
    if match == None:                                        
        print(item,"不是由数字、字母、特殊字符组成的8位密码")
    else:
        print(item,"是由数字、字母、特殊字符组成的8位密码")

运行结果:

 

 

2:正则表达式(re模块)实践二:匹配出身份证属于广东省的身份证号码(提示:广东省身份证的开头两位数字为44)

代码:

import re
pattern = r"(^44\d{13}$)|(^44\d{16}$)|(^44\d{15})(\d|X|x)$"        
id = ["440883200211025017","441251975456456",
          "44279212345689230X","440882012447897397",
          "402112321534556","448899556611448800"]               
for item in id:
    if (len(item) == 15) or (len(item) == 18):
        search = re.search(pattern, item)    
        if search == None:     
            print(item + "不是广东省的身份证号码,头两位数字为:" + item[0:2])
        else:                  
            print(item + "是广东省的身份证号码,头两位数字为:" + item[0:2])
    else:         
        print(item + "不符合身份证号码格式")

运行结果:

 

posted @ 2022-10-20 11:47  ww罗辉  阅读(158)  评论(0)    收藏  举报