Python字符串格式化_占位符_变量转换_Python自学第十八节
2023-02-18 16:43:01 时间
将其他类型的数据转化为字符串,或在字符串中引入一些变量,就要用到字符串格式化。如下采用 "+" 可以进行字符串拼接,但如果引用的变量数目比较多,就会非常复杂。
>>> a = 'zhangsan'
>>> b = '100'
>>> s = 'Hello ' + a + ",your score is " + b
>>> s
'Hello zhangsan,your score is 100'
以下三种方法将可以更方便的将变量带入到某个变量
%占位符:
字符串格式化:要在引用变量的位置使用一个占位符来代替,最后在字符串的后面再按顺序指定这些变量的名称。
- %s表示字符型变量;
- %d表示数值型变量;
- %f代表浮点型变量;%.nf表示小数位数(n为几即保留几位小数)
>>> a = 'lisi'
>>> b = 80
>>> s = 'Hello %s ,Your score is %d' %(a,b) #注意最后引用变量的按顺序输入
>>> s
'Hello lisi ,Your score is 80
>>> b = 88.88 #假设成绩为浮点型(就是包含小数),那么在f之前可以使用.n方式进行保留位数
>>> s = 'Hello %s ,Your score is %.1f' %(a,b) #保留1位小数即为%.1f,并四舍五入
>>> s
'Hello lisi ,Your score is 88.9'
>>> s = 'Hello %s ,Your score is %.2f' %(a,b) #保留2位小数即为%.2f,并四舍五入
>>> s
'Hello lisi ,Your score is 88.88'
%d占位符的其它用法:
输出格式为“2022-06-29”的日期,其中年月日都是用变量表示:
%2d
指定输出宽度为2,默认为空格填充。 %02d
代表用0来填充空位。
>>> year = 2022
>>> month = 6
>>> day = 29
>>> a = '%d-%2d-%2d'%(year,month,day) # %2d指定输出宽度为2,默认为空格填充
>>> a
'2022- 6-29'
>>> a = '%d-%02d-%d' %(year,month,day) # %02d 代表用0来填充
>>> a
'2022-06-29'
format()方法:
%占位符的方式要刻意区分变量类型,format()方法则无需考虑变量类型,可以用来取代%占位符,但是一定要注意顺序。
>>> name = 'wangwu'
>>> age = 40
>>> 'Hello {0}, Your age is {1}'.format(name,age) #{0}{1}要引用变量的编号。format按顺序指定变量
'Hello wangwu, Your age is 40'
利用format()方法指定小数位数。
>>> 'Your score is {0:.1f}'.format(83.129)
'Your score is 83.1'
>>> 'Your score is {0:.2f}'.format(83.129)
'Your score is 83.13'
{0:.1f} 0代表要引用的变量编号,: 用来指定特殊用法,.1f 用来表示是浮点型变量保留小数点后一位。保留2位小数就是.2f。
利用format()方法格式化百分数
>>> 'Your score is {0:0.1%}'.format(0.8796) #四舍五入到小数点后1位
'Your score is 88.0%'
>>> 'Your score is {0:0.2%}'.format(0.8796) #四舍五入到小数点后2位
'Your score is 87.96%'
%
代表数值先乘以 100 ,0.2
保留2位小数,然后得到n%
利用format()方法实现等宽输出
>>> year = 2022
>>> month = 6
>>> day = 29
>>> '{0}-{1:02d}-{2}'.format(year,month,day)
'2022-06-29'
{1:02d}
与%占位符类似,1 代表变量编号, :
代表使用特殊用法,0
代表用0替代1个宽度,2
表示2个宽度, d
表示数值型。
f_string 方法
在字符串的前面加上 f 前缀,并将变量名用花括号括起来,pytho就可以自动识别并引用变量。
>>> f'{year}-{month}-{day} ' #直接加f前缀引用变量
'2022-6-29 '
>>> f'{year}-{month:02d}-{day} ' #0代表用0替代1个宽度,2表示2个宽度, d表示数值型。
'2022-06-29 '
>>> b = 3.1415926
>>> f'{b:.1f}' #: 用来指定特殊用法,.1f 用来表示是浮点型变量保留小数点后一位
'3.1'
特殊用法与format特殊用法一致,:02d
表示2个宽度,空用0替代。:.1f
表示浮点型数值保留小数点后1位。
练习:
输出IP地址表 192.168.1~10
方法一:
>>> for i in range(1,11):
... print(f'192.168.1.{i}')
方法二:
>>> for i in range(1,11):
... print('192.168.1.{0}'.format(i))
...
方法三:
>>> for i in range(1,11):
... print('192.168.1.%d' %i)
...
九九乘法表优化代码:
#!/usr/bin/python3
for i in range(1,10): #外循环共循环九次
for j in range(1,i+1): #内循环控制每行输出的个数,开始是1 结束是i+n
n = i*j
print(f"{j}*{i}={n}",end=' ')
print()
相关文章
- Python图像处理丨详解图像去雾处理方法
- 盘点Python 中字符串的常用操作
- 从0到1学Python丨图像平滑方法的两种非线性滤波:中值滤波、双边滤波
- 跟我学Python图像处理丨带你入门OpenGL
- 跟我学Python图像处理丨图像分类原理与案例
- Python 中 Pickle 库的使用详解
- Python: PyQt5在Pycharm中的配置
- Python: 按位或运算符(Bitwise OR)
- 不知道"鸭子类型"就当没学过python
- 盘一盘 Python 特别篇 23 - 爱因斯坦求和 einsum
- Python中的一个神秘文件:__init__.py 使用讲解
- 孤陋寡闻了,Python中类竟可以像列表一样操作
- Python表白C#?文末有彩蛋!
- (数据科学学习手札147)Python GIS利器shapely全新2.0版本一览
- Python 大数据量文本文件高效解析方案代码实现
- Python3.11正式版,它来了!
- 入门Python,看完这篇就行了!
- Python操作Excel表格
- Python实现XMind测试用例快速转Excel用例
- 做自动化测试选择Python还是Java?