字符串格式化输出


%字符串格式化输出

Python字符串格式化操作符(%)只适用于字符串类型,非常类似于C 语言里面的printf()函数的字符串格式化,甚至所用的符号都一样,都用百分号(%),并且支持所有printf()式的格式化操作。

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:")

info = '''
------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
Name  : %s  #代表 name 
Age   : %s  #代表 age  
job   : %s  #代表 job 
Hobbie: %s  #代表 hobbie 
------------- end -----------------
''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 

print(info)

Python中字符串格式化占位符:

占位符 说明
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c  单个字符
%b 二进制整数
%d  十进制整数
%i  十进制整数
%o 八进制整数
%x  十六进制整数
%e  指数 (基底写为e)
%E 指数 (基底写为E)
%f 浮点数
%F 浮点数,与上相同
%g  指数(e)或浮点数 (根据显示长度)
%G 指数(E)或浮点数 (根据显示长度)
%% 字符"%"

format

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

在Python3.6中加入了f-strings

name = "QQ"
age = 18
print(f"My name is {name}.I'm {age}")  # My name is QQ.I'm 18
print("My name is {}.I'm {}".format(name, age))  # My name is QQ.I'm 18

常用的format用法

通过位置

data = ["QQ", 18]
print("Name:{0}, Age:{1}".format(*data))  # Name:QQ, Age:18

通过关键字

data = {"name": "QQ", "age": 18}
print("Name:{name}, Age:{age}".format(**data)) # Name:QQ, Age:18

通过对象属性

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

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


p = Person("QQ", 18)
print(str(p)) # This guy is QQ, 18 years old.

通过下标

data = ["QQ", 18]
print("{0[0]} is {0[1]} years old.".format(data))  # QQ is 18 years old.

填充与对齐

填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
print("{:>10}".format('18'))  #         18
print("{:0>10}".format('18'))  # 0000000018
print("{:A>10}".format('18'))  # AAAAAAAA188

补充一个字符串自带的zfill()方法:

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

精度与类型f

精度常跟类型f一起使用。

print("{:.2f}".format(3.1415926))  # 3.14

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

其他进制

主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

print("{:b}".format(18))  # 10010
print("{:d}".format(18))  # 18
print("{:o}".format(18))  # 22
print("{:x}".format(18))  # 12

千位分隔符

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM