四.格式化字符串+循环语句与注释

1.格式化字符串

1.1格式化字符,类似于字符串的拼接,比普通的拼接方式更加简便

a=6

b=9

print(str(a)+'+'+str(b)+'='+str(a+b)) #普通的拼接方式打印6+9=15

print('%d+%d=%d'%(a,b,a+b)) #格式化字符串的方式

1.2格式化字符串方案一

%s字符串 %d整数 %f浮点数

info1='我是%s,你是%s,他是%s,今年是%d年.'%('天乐','青云','德华',2021)

print(info1)

1.2.1前面的占位符比后面的参数多,则报错

info1='我是%s,你是%s,他是%s,今年是%d年.'%('天乐','青云','德华')

print(info1)

1.2.2前面的占位符比后面的参数少,也报错

info1='我是%s,你是%s,他是%s.'%('天乐','青云','德华',2021)

print(info1)

1.2.3前面是%d,后面是str型,报错

info1='你是%d'%('天乐')

print(info1)

1.2.4前面是%s,后面是数字,不报错

info1='你是%s'%(100)

print(info1)

1.2.5补齐 %ns n是任意整数,表示补齐到n位,不足n位用空格补齐,默认右对齐

info1='我是%5s,你是%5s,他是%5s,今年是%5d年.'%('天乐','青云','德华',2021)

print(info1)

1.2.6 如果字符串本身就超过了n位,显示全部字符

info1='我是%5s,你是%5s,他是%5s,今年是%5d年.'%('真正的高手名字不会很长','青云','德华',2021)

print(info1)

1.2.7方案一中,对于数字,可以在左侧补0

info1='我是%5s,你是%5s,他是%5s,今年是%010d年.'%('天乐','青云','德华',2021)

print(info1)

1.2.8左对齐 %-ns

info1='我是%-5s,你是%-5s,他是%-5s,今年是%-10d年.'%('天乐','青云','德华',2021)

print(info1)

1.2.9%f浮点型,默认保留6位小数

number1='您输入的数字是%f'%(3.6)

print(number1)

1.2.10保留两位小数

number1='您输入的数字是%.2f'%(3.6)

print(number1)

1.2.11补齐到10位,保留两位小数

number1='您输入的数字是%10.2f'%(3.6)

print(number1)

1.3方案二

str1='My name is {},Your name is {},age is {}'.format('Clark','Ralf',21)

print(str1)

1.3.1前面的参数比后面的参数多,报错

str1='My name is {},Your name is {},age is {}'.format('Clark','Ralf')

print(str1)

1.3.2前面的参数比后面的参数少,不报错

str1='My name is {},Your name is {}'.format('Clark','Ralf',21)

print(str1)

1.3.3补齐 {:n} n是任意整数 不足n位时补齐到n位,字符串默认左对齐,数字默认右对齐

str1='My name is {:10},Your name is {:10},age is {:10}'.format('Clark','Ralf',21)

print(str1)

1.3.4补0

str1='My name is {:10},Your name is {:10},age is {:010}'.format('Clark','Ralf',21)

print(str1)

1.3.5改变对齐方式 >右对齐 <左对齐 ^居中对齐

str1='My name is {:>10},Your name is {:<10},age is {:<10}'.format('Clark','Ralf',21)

print(str1)

1.3.6{}里面没有写数字时,是顺序取值法,写了数字时,是下标取值法

str1='My name is {},Your name is {},age is {}'.format('Clark','Ralf',21)

print(str1)

1.3.7顺序取值法与下标取值法不能混用,否则报错

str1='My name is {1},Your name is {0},age is {}'.format('Clark','Ralf',21)

print(str1)

1.3.8在python3.6之后的版本中,可以使用更简便的写法

name1='天乐'

name2='青云'

str2=f'My name is {name1},Your name is {name2}'

print(str2)

2.循环

2.1一组被重复执行的语句称之为循环

2.2while循环,从1打印到10

i=1

while i<=10:

print(i)

i += 1 # i每次自增长1

2.3 for循环,1打印到10

for i in range(1,11): #range(起始值,终止值,步长) 包含起始值,不包含终止值,步长的缺省值为1

print(i)

2.4 如果有明确的循环次数,建议用for循环,如果循环次数不确定,建议用while循环,两者可以互相替换

打印100以内的奇数

for i in range(1,100,2):

print(i)

2.5for循环的起始值省略时,默认为0

for i in range(10):

print(i)

2.6 遍历列表

2.6.1方式一,用下标的方式进行遍历

list1=['火','炎','焱','燚']

for i in range(len(list1)):

print(list1[i])

2.6.2方式二,直接遍历

for one in list1:

print(one)

2.7 break语句与continue语句

2.7.1 break 停止循环

for i in range(1,11):

if i==5:

break

print('Hello') #break与continue后的语句是不可达语句

else:

print(i)

2.7.2 continue 跳出当次循环

for i in range(1,11):

if i==5:

continue

print('Hello') #break与continue后的语句是不可达语句

else:

print(i)

2.8循环语句中也可以带一个else语句,当循环成功执行完毕时,会执行一次else中的语句

for i in range(1,11):

if i==5:

pass #占位符

else:

print(i)

else: #如果循环中执行了break语句则else中的语句不执行,其他情况下执行

print('循环执行完毕')

2.9 写一个倒计时程序

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倒计时结束')

上一篇:QS Network ZOJ - 1586 板子题


下一篇:P2330 繁忙的城市(krusal最小生成树)