本文共 3720 字,大约阅读时间需要 12 分钟。
格式化字符串:
格式化字符串实际上是字符串的拼接,但是比拼接更加简洁
a = 3b = 4print(str(a)+'+'+str(b)+'='+ str(a+b))输出3+4=7#格式化方法:
格式化方法:
方法一:%print('%d+%d=%d'%(a,b,a+b))#该方式就比较简洁info1 = '我是%s,你是%s,他是%s,今年是%d年。'%('天乐','青云','德华',2021)print(info1)info1 = '我是%s,你是%s,他是%s,今年是%d年。'%('天乐','青云','德华')#前面占位比后面参数多,报错info1 = '我是%s,你是%s,他是%s,今年是%d年。'%('天乐','青云','德华',2021,2022)#前面占位比后面参数少,报错info1 = '我是%s,你是%s,他是%s,今年是%d年。'%('天乐','青云','德华','2021')#前面需要%d后面给的字符串,也报错。info1 = '我是%s,你是%s,他是%s,今年是%d年。'%('天乐','青云',2022,2021)#前面需要%s后面给int,不报错。#补齐,默认补空格info1 = '我是%10s,你是%10s,他是%10s,今年是%10d年。'%('天乐','青云','德华',2021)#10代表补成10位,默认是右对齐的。print(info1)输出我是 天乐,你是 青云,他是 德华,今年是 2021年。info1 = '我是%10s,你是%10s,他是%10s,今年是%10d年。'%('真正的高手名字不能太长','青云','德华',2021)#这个意思是参数超过补齐长度,还是能正常显示的。print(info1)输出我是真正的高手名字不能太长,你是 青云,他是 德华,今年是 2021年。info1 = '我是%-7s,你是%7s,他是%-7s,今年是%010d年。'%('天乐','青云','德华',2021)#加负号,表示左对齐,数字还可以在前面补0print(info1)我是天乐 ,你是 青云,他是德华 ,今年是0000002021年。info2 = '您输入的数字是%f'%(3.6)#f表示浮点型,默认保留6位小数print(info2)输出:您输入的数字是3.600000info2 = '您输入的数字是%.2f'%(3.6) #保留两位小数print(info2)您输入的数字是3.60info2 = '您输入的数字是%8.2f'%(3.6)#补齐到8位,保留两位小数,8位包含了小数点以及小数部分。print(info2)输出您输入的数字是 3.60info2 = '您输入的数字是%08.2f'%(3.6)#可以补0print(info2)输出您输入的数字是00003.60
方法二:.format
info1 = '我是{},你是{},他是{},今年是{}年。'.format('天乐','青云','德华',2021)print(info1)输出我是天乐,你是青云,他是德华,今年是2021年。info1 = '我是{},你是{},他是{},今年是{}年,爱吃{}。'.format('天乐','青云','德华',2021)#顺序取值情况下,前面占位比后面多,报错print(info1)info1 = '我是{},你是{},他是{},今年是{}年。'.format('天乐','青云','德华',2021,333)#后面参数比前面多,ok,不报错。print(info1)info1 = '我是{:10},你是{:8},他是{:1},今年是{:9}年。'.format('天乐','青云','德华',2021,333)#补齐到n个长度,参数大于n,正常显示,默认字符串左对齐,数字默认右对齐print(info1)输出我是天乐 ,你是青云 ,他是德华,今年是 2021年。info1 = '我是{:10},你是{:8},他是{:1},今年是{:09}年。'.format('天乐','青云','德华',2021,333)#补0print(info1)输出:我是天乐 ,你是青云 ,他是德华,今年是000002021年。info1 = '我是{:^10},你是{:>8},他是{:<10},今年是{:<9}年。'.format('天乐','青云','德华',2021,333)#^居中, <左对齐,> 右对齐print(info1)输出:我是 天乐 ,你是 青云,他是德华 ,今年是2021 年。info1 = '我是{1:^10},你是{1:>8},他是{2:<10},今年是{1:<9}年。'.format('天乐','青云','德华',2021,333)#冒号前面有数字表示选取后面的哪个参数,参数下标从0开始的print(info1)我是 青云 ,你是 青云,他是德华 ,今年是青云 年。info1 = '我是{1:^10},你是{1:>8},他是{0:<10},今年是{1:<9}年。'.format('天乐','青云')#这种情况下,前面占位可以比后面多。print(info1)我是 青云 ,你是 青云,他是天乐 ,今年是青云 年。#!!!!需要注意,下标取值和顺序取值不能混用,混用就报错了info1 = '我是{:^10},你是{:>8},他是{:<10},今年是{1:<9}年。'.format('天乐','青云','德华',2021,333)#这种就是错误的#另外Python3.6以后版本对这种方式新增了一种优化写法:name1 = 'deihua'name2 = 'tianle'info3 = f'我的名字是{ name1:>10},他的名字是{ name2:20}'print(info3)我的名字是deihua,他的名字是tianle 左对齐,>
循环:while 和for
如果有明确循环次数的话,建议用for,没有明确循环次数建议用while,两者可以互相取代。#循环也可以配else,用的比较少,循环成功执行完毕会进入else中,如果没有成功执行完,不会进入else。for i in range(1,11): if i ==5: break # continue else: print(i)else: print('----end----')输出1234for i in range(1,11): if i ==5: # break continue else: print(i)else: print('----end----') 输出1234678910----end----
利用for循环+else写的一个倒计时小程序
#一个倒计时显示的小程序import timefor i in range(10,0,-1): print('\r倒计时%d秒'%i,end='')#\r让光标回到首行 time.sleep(1)else: print('\r倒计时结束')
'''写一个号段筛选程序,要求如下: 1、用户从控制台输入一个手机号,判断出运营商(假设,移动130-150, 联通151-170,电信171-199) 2、如果用户输入位数不对,提示用户位数有误 3、如果用户输入非数字,提示输入字符非法'''while True: s = input('请您输入手机号码:').strip() if len(s)!=11: print('您输入的位数有误') else: if not s.isdigit(): print('您输入了非法字符,请输入数字') else: num = int(s[:3]) # print(num) if 130<= num <=150: print('移动号段') elif 151<=num<=170: print('联通号段') elif 171<=num<=199: print('电信号段') else: print('非法号段')
转载地址:http://rchof.baihongyu.com/