Python之路(1)format详解

本文详细介绍了 Python 中 Str.format 方法的使用技巧,包括参数传递、填充与对齐、精度控制及进制转换等特性。
部署运行你感兴趣的模型镜像

Str.format方法比之 %方法的优点:

1.传入数据可以不限参数数据类型

2.参数位置可以不按照传入顺序,且单个参数可以输出多次或者不输出

3.强大的填充和对齐功能,完善的进制转换和精度控制

一:填充

#使用关键字填充

>>> #使用key填充
print('{name} today {action}'.format(name='jopen',action='play soccer'))
jopen today play soccer

#使用字典填充

>>> place={'where':'wuhan','country':'China'}
>>> print('{place[where]} is a part of {place[contury]}'.format(place=place))
wuhan is a part of China

或者

>>> place={'where':'wuhan','country':'China'}
>>> print('{where} is a part of {contury}'.format(**place))
wuhan is a part of China


#使用索引填充

>>> print('{1} is {0}'.format('fruit','apple'))
apple is fruit

#通过对象属性来填充

class Hello:
    def __init__(self,name1,name2):
        self.name1=name1;
        self.name2=name2
    def __str__(self):
        return 'Hello {self.name1},I am {self.name2}'.format(self=self)
print(str(Hello('Tom','Jopen')))
Hello Tom,I am Jopen

#多次使用参数和不使用传入的参数

>>> print('{1} {1} {1},so many{1}'.format('apple','banana'))
banana banana banana,so manybanana

二:对齐与填充

对齐与填充经常一起使用

对齐:^、<、>分别是居中,左对齐,右对齐,后面带宽度

居中:居中符号为:,后面跟填充的字符,只能是一个字符,不指定填充字符默认为空格

#左填充

>>> ('{:*>8}').format('Hello')
'***Hello'

#右填充

>>> ('{:*<8}').format('Hello')
'Hello***
#中间对齐
>>> ('{:*^8}').format('Hello')
'*Hello**'

三:精度

#浮点数

>>> '{:.3f}'.format(3.1415926)
'3.142'

#字符串

>>> '{:.3s}'.format('3.1415926')
'3.1'

四:进制转换

>>> '{:b}'.format(33)
'100001'
>>> '{:d}'.format(33)
'33'
>>> '{:o}'.format(33)
'41'
>>> '{:x}'.format(33)
'21'

b,d,o,x分别为二进制,十进制,八进制,十六进制

五:格式转化

!s,!r,!a 对应str(), repr(),acdii()

>>> '{!s:*>8}'.format(8)
'*******8'
repr()将输入转化为解释器读取的形式
!a我却不能转化为ascii码,不知道哪里出了问题.






您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### Python `format` 方法详解 #### 基本语法 Python 的 `str.format()` 方法提供了一种灵活的方式来格式化字符串。其基本形式如下: ```python "{}".format(value) ``` 此方法允许使用花括号 `{}` 作为占位符来标记待替换的部分。 #### 定义位置顺序 可以指定参数的位置索引来控制它们在最终字符串中的排列方式[^2]。 ```python "{1} {0}".format("world", "hello") # 输出: &#39;hello world&#39; ``` #### 利用命名参数 当输入为字典时,可以通过键名称访问对应的值并嵌入到字符串里。 ```python person = {&#39;name&#39;: &#39;Alice&#39;, &#39;age&#39;: 30} "greeting message for {name}, who is {age} years old.".format(**person) # 输出: &#39;greeting message for Alice, who is 30 years old.&#39; ``` #### 处理数值类型的特殊格式 对于浮点数或其他特定数据类型,还可以应用额外的格式说明符以达到更好的显示效果[^4]。 ##### 百分比表示法 - **保留两位小数** ```python "{:.2%}".format(0.75) # 输出: &#39;75.00%&#39; ``` - **无小数部分** ```python "{:.0%}".format(0.75) # 输出: &#39;75%&#39; ``` ##### 进制转换 支持不同进制之间的相互转化,并能设置输出宽度以及对齐方向。 - **二进制** ```python "{:>20b}".format(23) # 输出: &#39; 10111&#39; ``` - **十进制(左对齐)** ```python "{:<15d}".format(892) # 输出: &#39;892 &#39; ``` - **十六进制(居中对齐)** ```python "{:^10x}".format(16894) # 输出: &#39; 41fe &#39; ``` - **八进制(居中对齐)** ```python "{:^10o}".format(1394) # 输出: &#39; 2562 &#39; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值