字符串格式化表达式
运算符
%
作用:
生成一定格式的字符串
语法:
格式字符串 % 参数值
格式字符串 % (参数值1,参数值2,…)
格式字符串中的 % 为站位符,占位符的位置将用参数值替换
示例见:
格式化字符串中的占位符和类型码
占位符 意义
%s 字符串,使用str函数转换
%r 字符串,使用repr函数转换
%c 整数转为单个字符
%d 十进制整数
%o 八进制整数
%x 十六进制整数(a - f 小写)
%X 十六进制整数(A - F 大写)
%e 指数形浮点数(e小写) 如:2.9e + 10
%E 指数形浮点数(E大写) 如:2.9E + 10
%f,%F 浮点十进制形式
%g,%G 十进制形式浮点数或指数浮点数自动转换
%% 等同于一个%字符
占位符个类型码之间的格式语法
格式:
% [- + 0 宽度.精度]类型码
说明:
- 左对齐(默认是右对齐)
+ 显示正号
0 左侧空白位置补零
宽度: 整个数据输入的宽度
精度: 保留小数点后多少位(默认是6位)
示例:
‘%10d’ % 123 #’ 123’
‘%-10d’ % 123 #’123 ’
‘%10s’ % ‘abc’ # ’ abc’
‘%05d’ % ‘123’ #’00123’
‘%-+5d’ % 123 #’+123’
练习:
输入三行文字,让这三行文字依次以20个字符的宽度右对齐
输出:
如:
请输入第1行: hello world
请输入第2行: abcd
请输入第3行: a
输出结果为:
hello world
abcd
a
再思考:
能否以最长字符串的长度进行右对齐显示(左侧填充空格)
a = input('请输入第一行文字:')
b = input('请输入第二行文字:')
c = input('请输入第三行文字:')
m = max(len(a),len(b),len(c))
p = '%%%ds' % m
print(p % a)
print(p % b)
print(p % c)
print(p)
写一个程序,定义一个合同的模板:
《合同》
甲方:_ 乙方:_
合同金额:_元
…..
日期:年月__日
写程序输入相应的参数,打印出完整的合同文本信息:
如:
请输入甲方姓名:xxx
请输入乙方姓名:yyy
请输入合同金额: 10000
请输入年: 2018
…..
a = input('甲方姓名:')
b = input('乙方姓名:')
c = int(input('合同金额:'))
i = int(input('年:'))
e = int(input('月:'))
f = int(input('日:'))
print(""" 《合同》 \n
甲方:___%s___ , 乙方:__%s____\n
合同金额:___%d____元,\n
.....,\n
日期:__%d___年_%d__月__%d__日""" % (a,b,c,i,e,f))
循环语句
问题:
如何返回到程序的前面在继续执行
可以用循环语句来实现
循环语句有:
while 语句
for 语句
while 语句
作用:
根据一定条件,重复的执行一条语句或多条语句
语法:
while 真值表达式:
语句块1
else:
语句块2
说明:
1.先执行真值表达式1,测试布尔值是否为True
2.如果真值表达式的值为True,则执行语句1,然后再返回到第一步,重复进行测试
3.如果真值表达式的值为False,则执行else子句中的语句2,然后结束此while语句,
如果没有else子句,则直接结束此while语句的执行
4.else字句部分可以省略(if类似)
练习:
1. 输入一个整数n,打印0~n之间的整数(不包含n),每个数字打印一行
# n = int(input('请输入一个整数:'))
# x = 0
# while x < n :
# print(x)
# x += 1
2.打印 1~20 的整数,打印在一行内,每个数字之间用一个空格分隔开
1 2 3 4 5 6 7 8 …14 15 16
(提示: print(x,end=”))
# x = 1
# while x <= 20:
# print(x,end=' ')
# x +=1
# print('')
3.打印1~20的整数,每行打印5个,打印四行
如:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
……
(提示: if 语句可以嵌入while语句中使用)
# x = 1
# while x <=20:
# print(x,end=' ')
# if x % 5 == 0:
# print( )
# x +=1
4.输入一个开始的整数,用变量begin绑定,输入一个结束的整数变量end绑定,
打印从begin开始,到end结束(不包含end)的全部整数(要求打印在一行内)
如:
请输入开始数: 8
请输入结束数: 20
8 9 10 11 …
# begin = int(input('请输入一个开始的数:'))
# end = int(input('请输入一个结束的数:'))
# while begin < end:
# print(begin,end = ' ')
# begin +=1
# print()
5.将上题改写为每5个数打印一行
# begin = a = int(input('请输入一个开始的数:'))
# end = int(input('请输入一个结束的数:'))
# while begin < end:
# print(begin,end = ' ')
# if ((begin - a) + 1) % 5 == 0:
# print( )
# begin +=1
# print( )
6.用while 语句打印 10~1 的整数
# x = 10
# while x >=1:
# print(x,end = ' ')
# x -=1
# print( )
7.输入一个开始的浮点数,用begin绑定,输入一个结束的浮点数用end绑定,输入一个数的间隔
用step来绑定
如:
请输入开始数: 5
结束输结束数: 20
请输入步长: 3
打印如下数字 (不包含end):
5 8 11 14 17
# begin = float(input('请输入开始数'))
# end = float(input('请输入结束数'))
# step = float(input('请输入步长'))
# while begin < end:
# print(begin,end = ' ')
# begin += step
# print( )
- 输入一个字符串,将字符串中Unicode编码值最大的一个字符的编码值和这个字符打印出来
while 语句的注意事项;
1.要控制循环的真值表达式的值来防止死循环
2.通常用真值表达式内的循环变量来控制循环条件
3.通常在循环语句块内改变循环变量来控制循环的次数和变量的走向
while 语句嵌套:
while 语句本身也是语句,和其他语句一样,可以嵌入if 语句和 while 语句
示意:
while 真值表达式:
…
while 真值表达式2:
…
else:
…
else:
…
练习:
输入一个整数,打印指定宽度的正方形
如:输入5
打印如下:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
如:输入4
打印如下:
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
break 语句
问题:
如果在循环过程中我不想再继续此循环语句的执行了,怎么办?
作用:
用于循环语句(while,for语句)中,用来终止当前循环语句的执行
说明:
1.当break 语句执行后,此循环语句break之后的语句将不在执行
2.break语句通常和 if 语句组合使用
3.break语句终止循环是,循环语句的else子句的语句不会被执行
4.break语句只能终止当前循环语句的执行,如果有循环嵌套是,不会跳出嵌套的外重循环
5.break语句只能用在循环语句(while或for)
内部使用
死循环
死循环是指条件一直成立的循环
死循环通常用break语句来终止循环
死循环的else子句永远不会执行
练习:
写程序,求1+2+3+4…+99+100的和
(建议用循环语句来做)
2.输入一个整数n,求下列多项式的和
Sn = 1 + 1/2 + 1/4 + 1/8 +…+1/(2**n)
3.写程序,输入一个整数n代表直角三角形的宽度,打印出相应的直角三角形.
如:
请输入三角形宽度: 4
打印如下:
*
**
*
**
4.修改第3题,打印如下三角形:
*
**
*
**
5.修改第3题,打印如下三角形:
**
*
**
*
6.修改第三题,打印如下三角形:
**
*
**
*
1.
x = 1
s = 0
while x <= 100:
s += x
x += 1
print(‘和是:’,s)
2.
n = int(input(‘请输入一个整数:’))
S = 0
while 1 / (2**n) <= 1:
S += 1 / (2 **n)
n -= 1
print(S)
3.
s = int(input(“请输入三角形宽度:”))
a = 1
while a <= s:
print(“*”*a)
a += 1
4.
s = int(input(“请输入三角形宽度:”))
a = 1
while a <= s:
print(” “(s - a),”“*a)
a += 1
5.
s = int(input(“请输入三角形宽度:”))
a = s
while a > 0:
print(” “(s - a),”“*a)
a -= 1
6.
s = int(input(“请输入三角形宽度:”))
a = s
while a > 0:
print(“*”*a)
a -= 1