鱼C论坛

 找回密码
 立即注册
查看: 1197|回复: 0

[学习笔记] 零py-(ep-23)

[复制链接]
发表于 2023-10-26 15:35:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Nicole37 于 2023-10-26 15:35 编辑

字符串6:格式化字符串:[[fill]align][sign][#][0][width][gtouping_option][.precision][type]
符号选项:[sign]:仅对数字类型有效
  1. #符号设置
  2. "{:+}{:-}".format(250,-250)
  3. '+250-250'
  4. #正号可以加在正数前表示正数,减号加在负数前或者不加
  5. #使用逗号或者下横线表示千位分割符
  6. "{:,}".format(123456)
  7. '123,456'
  8. "{:_}".format(49565)
  9. '49_565'
  10. #精度参数
  11. #对于[type]设置为‘f’或‘F’的浮点数来说,是限定小数点后显示多少个数位
  12. #对于[type]设置为‘g’或‘G’的浮点数来说,是限定小数点前后显示多少个数位
  13. #对于非数字类型,限定  最大字段  的大小
  14. "{:.2f}".format(3.1415926)
  15. '3.14'
  16. "{:.2g}".format(3.1415926) #显示小数点前后一共有两位
  17. '3.1'
  18. "{:.6}".format("what is wrong with you")
  19. 'what i'
  20. "{:.8}".format(666)#精度选项不能用于整数
  21. Traceback (most recent call last):
  22.   File "<pyshell#13>", line 1, in <module>
  23.     "{:.8}".format(666)#精度选项不能用于整数
  24. ValueError: Precision not allowed in integer format specifier
  25. #[type]决定如何呈现数据形式
  26. "{:b}".format(70) #b对于整数来说是以其2进制形式输出
  27. '1000110'
  28. "{:c}".format(70) #b对于整数来说是以其unicode字符的形式输出
  29. 'F'
  30. "{:d}".format(70) #d对于整数来说是以其十进制形式输出
  31. '70'
  32. "{:o}".format(70) #d对于整数来说是以其八进制形式输出
  33. '106'
  34. "{:x}".format(70) #x/X对于整数来说是以其十六进制形式输出
  35. '46'
  36. "{:#o}".format(70) #井号会在整数前显示其进制类型
  37. '0o106'
  38. "{:#c}".format(70)
  39. Traceback (most recent call last):
  40.   File "<pyshell#21>", line 1, in <module>
  41.     "{:#c}".format(70)
  42. ValueError: Alternate form (#) not allowed with integer format specifier 'c'
  43. #适用于浮点数或者复数de
  44.    
  45. "{:e}".format(3.1415)#将参数以科学计数法的形式输出(e表示指数,默认精度为6)
  46. '3.141500e+00'
  47. "{:E}".format(3.1415)
  48. '3.141500E+00'
  49. "{:e}".format(3.1415)#'f'将参数以定点标识法的形式输出(不是数用’nan‘,无穷’inf‘,默认精度为6)
  50. '3.141500e+00'
  51. "{:f}".format(3.1415)#'f'将参数以定点标识法的形式输出(不是数用’nan‘,无穷’inf‘,默认精度为6)
  52. '3.141500'
  53. "{:g}".format(123456789)#'g'/'G' 通用格式,较小的数以'f'/'F'形式输出,较大的数以'e'/'E'形式输出
  54. '1.23457e+08'
  55. "{:g}".format(123.456789)
  56. '123.457'
  57. "{:%}".format(0.95)#'%'以百分比的形式输出
  58. '95.000000%'
  59. "{:.2%}".format(0.95)
  60. '95.00%'
  61. #python支持通过关键字参数来设置选项的值
  62. "{:.{jingdu}f}".format(5.14896,jingdu=3)
  63. '5.149'
  64. "{:{fill}{align}{width}.{prec}{typ}}".format(3.1415926,fill='+',align='^',width=20,prec=5,typ='G')
  65. '+++++++3.1416+++++++'
  66. #f-字符串,在字符串前添加f/F,实现format功能
  67. a =100
  68. f"考试分数{a}"  #把关键字直接打在花括号里
  69. '考试分数100'
  70. f"1+2={1+2}"
  71. '1+2=3'
  72. f"{123.456789:g}"   #数字写在冒号左侧
  73. '123.457'
  74. f"{3.1415:e}"
  75. '3.141500e+00'
  76. #f字符串适用于 3.6+以上python机器
复制代码

作业:
动手0:压缩字符串
  1. z=input("请输入待压缩的字符串:")
  2. i=0
  3. b=[]
  4. r=[]
  5. while i  < len(z):
  6.     a = z.count(z[i])
  7.     b.append(z[i:i+a])
  8.     b.append(',')
  9.     i=i+a
  10. c="".join(b)
  11. f=c.split(',')
  12. for i in f:
  13.     if len(i)<3:
  14.         r.append(i)
  15.         
  16.     else:
  17.         r.append(i[0])
  18.         r.append("{}".format(len(i)))
  19. p="".join(r)
  20. print("压缩后的字符串:",p)
  21. w ="{:.2%}".format(len(p)/len(z))
  22. print("压缩率为:",w)
复制代码

1:解压字符串
  1. z=input("请输入待解压的字符串:")
  2. u=[]
  3. i=0
  4. while i+1<len(z):
  5.     for i in range(len(z)):
  6.         if z[i].isalpha() and z[i+1].isdigit():
  7.             u.append(z[i]*int(z[i+1]))
  8.         else:
  9.             if z[i].isalpha():
  10.                 u.append(z[i])
  11.     print("解压后的字符串:","".join(u))
复制代码

作业答案:
5.format与f转化:
  1. "{:{fill}{align}{width}.{prec}{ty}}".format(3.1415, fill='$', align='^', width=10, prec=2, ty='f')
  2. f"{3.1415:$^10.2f}"
复制代码

注意:可初始化字符串 ,直接进行字符串的append,用+进行连接
  1. a=''
  2. a += b
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 00:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表