(四)字符串,循环语句

字符串格式化表达式
 运算符
   %
 作用:
生成一定格式的字符串
 语法:
   格式字符串 % 参数值
   格式字符串 % (参数值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( )
  1. 输入一个字符串,将字符串中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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值