Python格式化字符串%与format的区别

简介

Python中格式化字符串目前有两种方法:%和format

Python2.6引入了format这个格式化字符串的方法

区别

%

# 定义一个坐标值
c = (250, 250)
# 使用%丑陋的格式化...
s1 = "敌人坐标:%s" % (c,)
# 因为c是一个元祖,所以%格式化时后面不能只写一个c

format

# 定义一个坐标值
c = (250, 250)
# 使用format格式化
s2 = "敌人坐标:{}".format(c)

3.6的新特性f-strings

name = "DZM"
age = 18
f"My name is {name}.I‘m {age}"
# "My name is DZM.I‘m 18"

常用的format用法

通过位置

print(‘{0},{1},{0}‘.format(‘dzm‘, 18))
# dzm,18,dzm

通过关键字

不依赖位置

print(‘my name is {x},my age is {y}‘.format(x=‘dzm‘,y=18))
# my name is dzm,my age is 18
# 或者
data = {"name": "DZM", "age": 18}
print("Name:{name}, Age:{age}".format(**data))
# ‘Name:DZM, Age:18‘

通过对象属性

class Person():
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return "{self.name} is {self.age} years old.".format(self=self)

dzm = Person("dzm", 18)
print(dzm)
# dzm is 18 years old.

通过下标

data = [11, 22]
print("{0[0]} ----- {0[1]}".format(data))
# 11 ----- 22

填充与对齐

填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。

# 18前面用10个空格填充
print("{:>10}".format(‘18‘))
‘        18‘
# 18前面用10个0填充
"{:0>10}".format(‘18‘)

zfill()方法
Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0。
zfill()方法语法:str.zfill(width)
参数width指定字符串的长度。原字符串右对齐,前面填充0。
返回指定长度的字符串。

"18".zfill(10)
# ‘0000000018‘

精度与类型f

其中.4表示长度为4的精度,f表示float类型。

print("{:.4f}".format(3.1415926))
# 3.1416

其他进制
b、d、o、x分别是二进制、十进制、八进制、十六进制

{:b}".format(18)
‘10010‘

千位分隔符

"{:,}".format(1234567890)
‘1,234,567,890‘

参考文章:https://www.cnblogs.com/liwenzhou/p/8570701.html

原文地址:https://blog.51cto.com/dzm911/2357783

时间: 2024-11-07 20:49:55

Python格式化字符串%与format的区别的相关文章

Python格式化字符串str.format()

Python 字符串格式化解决的问题: 字符串格式化是为了实现字符串和变量同时输出时按一定的格式显示. 例如:" 一年有{}天,一天有{}小时 .".format(365,24)  ==>   " 一年有365天,一天有24小时." format()方法的基本使用: <模板字符串>.format(<逗号分隔的参数>) 模板字符串由一系列占位槽组成(用{}表示),参数会按{}中的序号替换到模板字符串的槽中,如果{}没有序号,就按出现顺序替

Python格式化字符串~转

Python格式化字符串 在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%). 下面整理了一下Python中字符串格式化符合: 格式化符号 说明 %c 转换成字符(ASCII 码值,或者长度为一的字符串) %r 优先用repr()函数进行字符串转换 %s 优先用str()函数进行字符串转换 %d / %i

Python格式化字符串知多少

字符串格式化相当于字符串模板.也就是说,如果一个字符串有一部分是固定的,而另一部分是动态变化的,那么就可以将固定的部分做成模板,然后那些动态变化的部分使用字符串格式化操作符(%) 替换.如一句问候语:“Hello 李宁”,其中“Hello”是固定的,但“李宁”可能变成任何一个人的名字,如“乔布斯”,所以在这个字符串中,“Hello”是固定的部分,而“李宁”是动态变化的部分,因此,需要用“%”操作符替换“李宁”,这样就形成了一个模板. Hello %s 上面的代码中,“%”后面的s是什么呢?其实字

Python格式化字符串的替代符与转义字符

                                               Python格式化字符串的替代符以及含义     符   号     说     明       %c  格式化字符及其ASCII码       %s  格式化字符串       %d  格式化整数       %u  格式化无符号整型       %o  格式化无符号八进制数       %x  格式化无符号十六进制数       %X  格式化无符号十六进制数(大写)       %f  格式化浮点

Python 中格式化字符串 % 和 format 两种方法之间的区别

Python2.6引入了 format 格式化字符串的方法,现在格式化字符串有两种方法,就是 % 和 format ,具体这两种方法有什么区别呢?请看以下解析. # 定义一个坐标值 c = (250, 250) # 使用%来格式化 s1 = "敌人坐标:%s" % c 上面的代码很明显会抛出一个如下的TypeError: TypeError: not all arguments converted during string formatting 像这类格式化的需求我们需要写成下面丑陋

【Python】格式化字符串和format函数

## 本文基于Python3,可能存在部分内容不适配Python2 1. 最简单的字符串的输出: str1 = 'popma is so cool' print(str1) 输出: popma is so cool 2. '%S'格式化字符串输出: 格式化字符串时,字符串中有格式符,字符串就变成一个模板了: 例如: str2 = '%s is so cool' %'popma' print(str2) 输出还是像上面的一样,可以试试看. 但是如果有多个格式符,如何处理呢?Python用一个tup

Python格式化字符串

在编写程序的过程中,经常需要进行格式化输出,每次用每次查.干脆就在这里整理一下,以便索引. 格式化操作符(%) "%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%). 下面整理了一下Python中字符串格式化符合: 格式化符号 说明 %c 转换成字符(ASCII 码值,或者长度为一的字符串) %r 优先用repr()函数进行字符串转换 %s 优先用str()函数进行字符串转换 %d / %i 转成有符号十进制数 %u

python格式化字符串含义

字符串格式化符号含义    符   号    说     明      %c    格式化字符及其ASCII码      %s    格式化字符串      %d    格式化整数      %o    格式化无符号八进制数      %x    格式化无符号十六进制数      %X    格式化无符号十六进制数(大写)      %f    格式化定点数,可指定小数点后的精度      %e    用科学计数法格式化定点数      %E    作用同%e,用科学计数法格式化定点数    

(增强型格式化字符串)str.format()

字符串格式化自2.6以后python提供更强大的函数str.format() # 语法 用{}代替% ## EXP 1:简单例子,关键字映射 ```python x = 1 y = "shabi" z = "wo shi {op1},{op2}".format(op1=y,op2=x) print z ``` ## EXP 2:转义{} ```python x = 1 y = "shabi" z = "wo shi {op}{{shit