格式化字符串
格式化字符,类似于字符串的拼接,比普通的拼接方式更加简便
a=6, b=9
print(str(a)+'+'+str(b)+'='+str(a+b)) # 普通的拼接方式打印6+9=15
print('%d+%d=%d'%(a,b,a+b)) # 格式化字符串的方式
方案一:格式化字符串
1、%s 字符串 ,%d 整数 ,%f 浮点数
info1='我是%s,你是%s,他是%s,今年是%d年.'%('天乐','青云','德华',2021)
print(info1)
2、前面的占位符比后面的参数多,则报错
info1='我是%s,你是%s,他是%s,今年是%d年.'%('天乐','青云','德华')
print(info1)
3、前面的占位符比后面的参数少,也报错
info1='我是%s,你是%s,他是%s.'%('天乐','青云','德华',2021)
print(info1)
4、前面是%d,后面是str型,报错
info1='你是%d'%('天乐')
print(info1)
5、前面是%s,后面是数字,不报错
info1='你是%s'%(100)
print(info1)
字符串补齐(一)
1、补齐 %ns: n是任意整数,表示补齐到n位,不足n位用空格补齐,默认右对齐
info1='我是%5s,你是%5s,他是%5s,今年是%5d年.'%('天乐','青云','德华',2021)
print(info1)
2、如果字符串本身就超过了n位,显示全部字符
info1='我是%5s,你是%5s,他是%5s,今年是%5d年.'%('真正的高手名字不会很长','青云','德华',2021)
print(info1)
3、对于数字,可以在左侧补0,%010d
--表示左侧用0补齐到10位
info1='我是%5s,你是%5s,他是%5s,今年是%010d年.'%('天乐','青云','德华',2021)
print(info1)
# 输出:我是 天乐,你是 青云,他是 德华,今年是0000002021年.
4、左对齐 : %-ns
info1='我是%-5s,你是%-5s,他是%-5s,今年是%-10d年.'%('天乐','青云','德华',2021)
print(info1)
# 输出:我是天乐 ,你是青云 ,他是德华 ,今年是2021 年.
5、%f
浮点型 ,默认保留6位小数
number1='您输入的数字是%f'%(3.6)
print(number1)
6、%.2f
保留两位小数
number1='您输入的数字是%.2f'%(3.6)
print(number1)
7、%10.2
f补齐到10位,保留两位小数
number1='您输入的数字是%10.2f'%(3.6)
print(number1)
方案二: 格式化字符串.format()
1、format() 前后参数一一对应
str1='My name is {},Your name is {},age is {}'.format('Clark','Ralf',21) # 三个对应三个
print(str1)
2、format() 前面的参数比后面的参数多,报错
str1='My name is {},Your name is {},age is {}'.format('Clark','Ralf') # 三个对应两个
print(str1)
3、format() 前面的参数比后面的参数少,不报错
str1='My name is {},Your name is {}'.format('Clark','Ralf',21) # 两个对应三个
print(str1)
字符串补齐(二)
1、补齐 {:n} n是任意整数 不足n位时补齐到n位,字符串默认左对齐, 数字默认右对齐
str1='My name is {:10},Your name is {:10},age is {:10}。'.format('Clark','Ralf',21)
print(str1)
# 输出:My name is Clark ,Your name is Ralf ,age is 21。
2、{:010}
--补0
str1='My name is {:10},Your name is {:10},age is {:010}'.format('Clark','Ralf',21)
print(str1)
# 输出:My name is Clark ,Your name is Ralf ,age is 0000000021
3、改变对齐方式 :> 右对齐 ,< 左对齐, ^ 居中对齐(尖尖在哪边就是哪边对齐)
str1='My name is {:>10},Your name is {:<10},age is {:<10}。'.format('Clark','Ralf',21)
print(str1)
# 输出:My name is Clark,Your name is Ralf ,age is 21 。
4、{}里面没有写数字时,是顺序取值法,写了数字时,是下标取值法
# 顺序
str1='My name is {},Your name is {},age is {}'.format('Clark','Ralf',21)
print(str1)
# 输出:My name is Clark,Your name is Ralf,age is 21
# 下标
str1='My name is {1},Your name is {0},age is {2}'.format('Clark','Ralf',21)
print(str1)
# 输出:My name is Ralf,Your name is Clark,age is 21
5、顺序取值法与下标取值法不能混用,否则报错
str1='My name is {1},Your name is {0},age is {}'.format('Clark','Ralf',21)
print(str1)
在python3.6之后的版本中,可以使用更简便的写法
name1='天乐'
name2='青云'
str2=f'My name is {name1},Your name is {name2}' #简单方便
print(str2)
循环:一组被重复执行的语句称之为循环
1.while循环,从1打印到10
i=1
while i<=10: # 设置循环结束条件
print(i) # 循环时做什么动作
i += 1 # i 每次自增长1
2.for循环,1打印到10
range(起始值,终止值,步长) :包含起始值(不设置的话默认为0),不包含终止值,步长的缺省值为1,设置为-1,则可倒转顺序
for i in range(1,11): # range(起始值,终止值,步长) 包含起始值,不包含终止值,步长的缺省值为1
print(i)
循环语句的选择:
1、如果有明确的循环次数,建议用for循环,
2、如果循环次数不确定,建议用while循环,两者可以互相替换
3、打印100以内的奇数,设置步长为2,初始为1即可
for i in range(1,100,2):
print(i)
4、for循环的起始值省略时,默认为0
for i in range(10):
print(i)
遍历列表
方式一,用下标的方式进行遍历
list1=['火','炎','焱','燚']
for i in range(len(list1)):
print(list1[i])
方式二,直接遍历
list1=['火','炎','焱','燚']
for one in list1:
print(one)
break语句与continue语句
- break 停止循环
for i in range(1,11):
if i==5:
break
print('Hello') #break与continue后的语句是不可达语句
else:
print(i)
- continue 跳出当次循环
for i in range(1,11):
if i==5:
continue
print('Hello') #break与continue后的语句是不可达语句
else:
print(i)
循环语句中也可以带一个else语句,当循环成功执行完毕时,会执行一次else中的语句
for i in range(1,11):
if i==5:
pass #占位符
else:
print(i)
else: #如果循环中执行了break语句则else中的语句不执行,其他情况下执行
print('循环执行完毕')
应用:写一个倒计时程序
import time #加载time模块
for i in range(10,0,-1):
print(f'\r倒计时{i}秒',end='') #\r让光标回到行首
# 低版本的python中,可能不会自动刷新,那么就要加一句flush=True
# print(f'\r倒计时{i}秒', end='',flush=True)
time.sleep(1) #让程序等待1秒
else:
print('\r倒计时结束')
网友评论