|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Nicole37 于 2023-10-26 15:35 编辑
字符串6:格式化字符串:[[fill]align][sign][#][0][width][gtouping_option][.precision][type]
符号选项:[sign]:仅对数字类型有效
- #符号设置
- "{:+}{:-}".format(250,-250)
- '+250-250'
- #正号可以加在正数前表示正数,减号加在负数前或者不加
- #使用逗号或者下横线表示千位分割符
- "{:,}".format(123456)
- '123,456'
- "{:_}".format(49565)
- '49_565'
- #精度参数
- #对于[type]设置为‘f’或‘F’的浮点数来说,是限定小数点后显示多少个数位
- #对于[type]设置为‘g’或‘G’的浮点数来说,是限定小数点前后显示多少个数位
- #对于非数字类型,限定 最大字段 的大小
- "{:.2f}".format(3.1415926)
- '3.14'
- "{:.2g}".format(3.1415926) #显示小数点前后一共有两位
- '3.1'
- "{:.6}".format("what is wrong with you")
- 'what i'
- "{:.8}".format(666)#精度选项不能用于整数
- Traceback (most recent call last):
- File "<pyshell#13>", line 1, in <module>
- "{:.8}".format(666)#精度选项不能用于整数
- ValueError: Precision not allowed in integer format specifier
- #[type]决定如何呈现数据形式
- "{:b}".format(70) #b对于整数来说是以其2进制形式输出
- '1000110'
- "{:c}".format(70) #b对于整数来说是以其unicode字符的形式输出
- 'F'
- "{:d}".format(70) #d对于整数来说是以其十进制形式输出
- '70'
- "{:o}".format(70) #d对于整数来说是以其八进制形式输出
- '106'
- "{:x}".format(70) #x/X对于整数来说是以其十六进制形式输出
- '46'
- "{:#o}".format(70) #井号会在整数前显示其进制类型
- '0o106'
- "{:#c}".format(70)
- Traceback (most recent call last):
- File "<pyshell#21>", line 1, in <module>
- "{:#c}".format(70)
- ValueError: Alternate form (#) not allowed with integer format specifier 'c'
- #适用于浮点数或者复数de
-
- "{:e}".format(3.1415)#将参数以科学计数法的形式输出(e表示指数,默认精度为6)
- '3.141500e+00'
- "{:E}".format(3.1415)
- '3.141500E+00'
- "{:e}".format(3.1415)#'f'将参数以定点标识法的形式输出(不是数用’nan‘,无穷’inf‘,默认精度为6)
- '3.141500e+00'
- "{:f}".format(3.1415)#'f'将参数以定点标识法的形式输出(不是数用’nan‘,无穷’inf‘,默认精度为6)
- '3.141500'
- "{:g}".format(123456789)#'g'/'G' 通用格式,较小的数以'f'/'F'形式输出,较大的数以'e'/'E'形式输出
- '1.23457e+08'
- "{:g}".format(123.456789)
- '123.457'
- "{:%}".format(0.95)#'%'以百分比的形式输出
- '95.000000%'
- "{:.2%}".format(0.95)
- '95.00%'
- #python支持通过关键字参数来设置选项的值
- "{:.{jingdu}f}".format(5.14896,jingdu=3)
- '5.149'
- "{:{fill}{align}{width}.{prec}{typ}}".format(3.1415926,fill='+',align='^',width=20,prec=5,typ='G')
- '+++++++3.1416+++++++'
- #f-字符串,在字符串前添加f/F,实现format功能
- a =100
- f"考试分数{a}" #把关键字直接打在花括号里
- '考试分数100'
- f"1+2={1+2}"
- '1+2=3'
- f"{123.456789:g}" #数字写在冒号左侧
- '123.457'
- f"{3.1415:e}"
- '3.141500e+00'
- #f字符串适用于 3.6+以上python机器
复制代码
作业:
动手0:压缩字符串
- z=input("请输入待压缩的字符串:")
- i=0
- b=[]
- r=[]
- while i < len(z):
- a = z.count(z[i])
- b.append(z[i:i+a])
- b.append(',')
- i=i+a
- c="".join(b)
- f=c.split(',')
- for i in f:
- if len(i)<3:
- r.append(i)
-
- else:
- r.append(i[0])
- r.append("{}".format(len(i)))
- p="".join(r)
- print("压缩后的字符串:",p)
- w ="{:.2%}".format(len(p)/len(z))
- print("压缩率为:",w)
复制代码
1:解压字符串
- z=input("请输入待解压的字符串:")
- u=[]
- i=0
- while i+1<len(z):
- for i in range(len(z)):
- if z[i].isalpha() and z[i+1].isdigit():
- u.append(z[i]*int(z[i+1]))
- else:
- if z[i].isalpha():
- u.append(z[i])
- print("解压后的字符串:","".join(u))
复制代码
作业答案:
5.format与f转化:
- "{:{fill}{align}{width}.{prec}{ty}}".format(3.1415, fill='$', align='^', width=10, prec=2, ty='f')
- f"{3.1415:$^10.2f}"
复制代码
注意:可初始化字符串 ,直接进行字符串的append,用+进行连接
|
|