day06字符串

字符串格式化表达式%:
1.1运算符%:
2.作用:生成一定格式的字符串
3.语法:
格式字符串: % 参考值
格式字符串: % (参考值1,参考值2.....)
注意:格式字符串中的%为占位符,占位符的位置将用参数值替换
示例:
str_fomart.py
格式化字符串中的占位符和类型码:
+-------------------------------------------------------+
|占位符 意义
|%s 字符串,使用str函数转换
|%r 字符串,使用reqr函数转换
|%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个字符的宽度右对齐
| 输出:如:
| 请输入第一行:hello Word
| 请输入第二行:abcd
| 请输入第三行:a
| 输出的结果为:
| hello word
|      abcd
| a
| 做完上面的题后思考:
| 能否以最长字符串的长度尽情右对齐显示(左侧填充空格)
+-----------------------------------------------------------------------+
|a=input("请输入第一行文字")
|b=input("请输入第二行文字")
|c=input("请输入第三行文字")
|a="%20s" % a
|b="%20s" % b
|c="%20s" % c
|#print(a)
|#print(b)
|#print(c)
|print(a)
|print(b)
|print(c)
|#思考题:方法一:------------------------------------------------------|
|a=input("请输入第一行文字")
|b=input("请输入第二行文字")
|c=input("请输入第三行文字")
|z=max(len(a),len(b),len(c))
|print(z)
|a1=z-len(a)
|b1=z-len(b)
|c1=z-len(c)
|print(" " * a1 + a)
|print(" " * b1 + b)
|print(" " * c1 + c)
|方法二:---------------------------------------------------------------|
|a=input("请输入第一行文字")
|b=input("请输入第二行文字")
|c=input("请输入第三行文字")
|d=max(len(a),len(b),len(c))
|print(d)
|x="%%%ds" % d
|print(x % a)
|print(x % b)
|print(x % c)
|方法三:---------------------------------------------------------------
|a=input("请输入第一行文字")
|b=input("请输入第二行文字")
|c=input("请输入第三行文字")
|length=len(a)
|if  len(b) > length:
|    length=len(b)
|if  len(c) > length:
|    length=len(c)    
|a1=length-len(a)
|b1=length-len(b)
|c1=length-len(c)
|print(" " * a1 + a)
|print(" " * b1 + b)
|print(" " * c1 + c)
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
|课堂练习:
| 写一个程序,定义一个合同的模板
| 合同
| 甲方:___________  乙方:______________
| 合同金额:____________元
| .....
| 日期:_________年____________月__________日
| 写程序输入相应的参数,打印出完成的合同及文本信息:
| 如:
| 请输入甲方姓名:
| 请输入乙方姓名
| 请输入合同金额
| 请输入年月日
|两种方法:
+-------------------------------------------------------------------------+
str='''合同
甲方:__%s___  乙方:__%s___
合同金额:____%d____元
日期:__%d__年_%d___月_%d__日
'''
name1=input("请输入甲方姓名:")
name2=input("请输入乙方姓名")
money=int(input("请输入合同金额"))
year=int(input("请输入年份"))
month=int(input("请输入月份"))
day=int(input("请输入天数"))
fmt="甲方:____ 乙方:____"
fmt1="合同金额:____元"
print(str % (name1,
            name2,
            money,
            year,
            month,
            day))
--------------------------------------------------------------------------------------------
#方法二:
name1=input("请输入甲方姓名:")
name2=input("请输入乙方姓名")
money=int(input("请输入合同金额"))
year=int(input("请输入年份"))
month=int(input("请输入月份"))
day=int(input("请输入天数"))
print("合同")
print(("甲方:__%s__" % name1) + ("乙方:__%s__" % name2))
print("合同金额:__%d__" % money)
print("....")
print("日期:_%d__年_%d_月__%d__" % (year,month,day))
=====================================================
循环语句:
1.while:语句
作用:根据一定条件,重复执行一条语句或多条语句
语法:while 真值表达式:
语句块1:
      else:
语句块2:
说明:1.先执行真值表达式1,测试布尔值是否为true
     2.如果真值表达式的值为True,则执行语句1,然后再返回到第一步,重复进行测试
     3.如果真值表达式的值为false,则执行false子句中的语句2,然后在结束while语句,如果没有else子句
则直接结束此while语句的执行
     4.else子句部分可以省略(同if类似)

示例:
while.py
===============================================================
课堂练习:
输入一个整数n,打印0-n之间的整数(不包含n)
        每个字打印一行
------------------------------------------------------------------------------------------------------------
n=int(input("请输入一个整数"))
i=0
while i<n:
    print(i)
    i += 1
print("程序运行结束")
------------------------------------------------------------------------------------------------------------
练习:
1.打印1-20的整数,打印在一行内,每个数字之间用一个空格分隔
1 2 3 4 5 6 7 8....20
2.打印1-20的整数,每行打印5个,打印四行
1,2,3,4,5
6,7,8,9,10
11.12,13,14,15
...
(提示用if语句可以嵌入while语句中使用)
-------------------------------------------------------------------------------------------------------------
练习:
1.输入一个开始的整数用变量begin绑定,输入一个结束的整数变量end绑定,打印从begin开始到end结束(但不包含end)
 的全部整数(要求打印在一行内)
 如:请输入开始数
     请输入结束数:
45....161
2.将上题改为每五个打印一行
---------------------------------------------------------------------------------------------------------------------
练习:
用while语句打印10-1的整数
输入一个开始胡浮点数,用begin绑定,结束胡浮点数用end绑定,输入每个数的间隔用step来绑定
如:请输入开始数5
请输入结束数:20
请输入不长:
打印如下数字(不包含end)
5,8,11,14,17
3.输入一个字符串,将字符串中Unicode编码值最大的一个字符编码值和这个字符打印出来
=====================================================================
课堂练习:
输入一个整数n,打印0-n之间的整数(不包含n)
        每个字打印一行
-------------------------------------------------------------------------------------------------------------------------
n=int(input("请输入一个整数"))
i=0
while i<n:
    print(i)
    i += 1
print("程序运行结束")
=====================================================================
while语句的注意事项:
1.要控制循环胡真值表达式的值来防止死循环:
2.通常用真值表达式内胡循环变量来控制循环条件
3.通常在循环语句块内改变循环变量来控制循环体的次数和变量的走向
while语句嵌套:
while语句本身也是语句,和其他语句一样,可以嵌入if语句和while语句
示例:while:真值表达式:
 .....
 while  真值表达式
     .....
 else
     .....
     else:
.....
=================================================================
课堂练习:
输入一个整数,打印指定宽度的正方形
打印如下:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
num=int(input("请输入一个整数"))
i=1
while i < num:
     #print(i,end=" ")
     j=1
     while j < num:
           print(j,end=" ")
           j += 1
     else:
          print()
     i += 1
else:
     print()
====================================================================
break语句:
作用:用于循环语句中(while,for语句)中,用来终止当前循环语句的执行,
说明:  1.当break语句执行后,此循环语句break之后的语句将不再执行
2.break语句通常和if语句组成使用
3.break语句终止循环时,循环语句的else子句的语句不会被执行
4.break语句只能终止当前循环语句的执行,如果有循环嵌套时,不会跳出嵌套的外循环
5.break语句只能用在循环语句(while和for)内部使用
死循环:
死循环是指条件一直成立的循环:死循环通常用break语句来终止循环,死循环的else子句永远不会被执行:
===================================================================
练习:
1.写程序,求1+2+3+...100)的和(建议使用循环语句)
2.输入一个数n,求下列多项式的和
sn=1+1+1/2+1/4+.....+1/2**n
3.写程序,输入一个整数n代表直角三角形的宽度,打印相应的直角三角形
如:输入三角形的宽度4
打印如下:
*
**
***
****
4.修改第3题,打印如下的三角形:
*
                       **
     ***
                     ****
5.修改第3第,打印如下三角形:
****
***
 **
  *


6.修改第3第,打印如下三角形:
 ****
 ***
         **
 *
-----------------------------------------------------------------------------------------------------------
#第一题=============
n=1
s=0
while n <= 100:
      s = s + n
      n += 1
print("1-100的结果为:",s)
#第二题===============
n = int(input("请输入一个整数"))
i = 0
sn = 0
while i <= n:
      a =1 / 2 ** i
      sn = sn + a
      i += 1
print("sn的结果为",sn)
#第三题:
n = int(input("请输入一个整数"))
i = 1
while i <= n:
     str="*" * i
     i += 1
     print(str)
#第四题====================
n=int(input("请输入一个整数"))
i=1
while i <= n:
     str ="*" * i
     i += 1
     x = "%%%ds" % n

     print(x % str)

#第五题====================

n = int(input("请输入一个整数"))
i = n
while i >= 1:
      str = "*" * i
      i -= 1
      print(str)
#第六题
n = int(input("请输入一个整数"))
i = n
while i >= 1:
      str = "*" * i
      i -= 1
      x="%%%ds" % n
      print(x % str)

猜你喜欢

转载自blog.csdn.net/robin13438235412/article/details/80754012