Pythonformat()函数:优雅地格式化字符串输出
Python是一种高级编程语言,兼具简单、易学、易读等优点,而Pythonformat()函数则是Python语言中一种优雅地格式化字符串输出的方法。通过Pythonformat()函数,我们可以将各种数据类型转换成字符串,并且格式化输出。本文将详细介绍Pythonformat()函数的基本用法和常用格式化输出方式。
一、Pythonformat()函数基本用法
Pythonformat()函数的基本语法如下:
str.format(args)
其中,str表示需要格式化的字符串,args表示需要格式化的数据。以简单的例子来说明:
>>> name = "Tom"
>>> age = 18
>>> print("{} is {} years old.".format(name, age))
Tom is 18 years old.
上述例子中,使用{}作为占位符,其中 个{}表示需要输出的name变量,第二个{}表示需要输出的age变量。格式化字符串的方式通常使用一组{}对应一个需要格式化输出的变量。
除此之外,也可以把需要输出的变量放在{}内部,还可以使用%作为占位符:
>>> print("{0} is {1} years old.".format(name, age))
Tom is 18 years old.
>>> print("{name} is {age} years old.".format(name=name, age=age))
Tom is 18 years old.
>>> print("%s is %d years old." % (name, age))
Tom is 18 years old.
上述三种方式都可以达到相同的格式化输出效果,使用哪一种方式主要看个人习惯和实际需要。
二、Pythonformat()函数高级用法
在Pythonformat()函数中,除了使用{}作为占位符进行格式化输出之外,还可以使用其他占位符和格式化符号。下面列举常用的其它占位符和格式化符号用法。
1.字符串占位符
| 格式化符号 | 功能 |
| --- | --- |
| %s | 字符串(采用str()的显示) |
| %r | 字符串(采用repr()的显示) |
| %a | 字符串(采用ascii()的显示) |
>>> print("My name is %s. I am %d years old." % ("Tom", 18))
My name is Tom. I am 18 years old.
>>> print("My name is %r. I am %r years old." % ("Tom", 18))
My name is 'Tom'. I am 18 years old.
>>> print("My name is %a. I am %a years old." % ("Tom", 18))
My name is 'Tom'. I am 18 years old.
2.数字占位符
| 格式化符号 | 功能 |
| --- | --- |
| %d | 带符号的十进制整数 |
| %i | 带符号的十进制 |
| %o | 不带符号的八进制 |
| %x | 不带符号的十六进制(小写) |
| %X | 不带符号的十六进制(大写) |
| %e | 科学计数法(小写) |
| %E | 科学计数法(大写) |
| %f | 浮点数 |
| %F | 浮点数 |
| %g | %e或%f的较短版本(小写) |
| %G | %E或%F的较短版本(大写) |
>>> print("Today is the %dth day of the year." % 200)
Today is the 200th day of the year.
>>> print("π is approximately %f." % 3.1415926)
π is approximately 3.141593.
>>> print('%.2f' % 3.1415926)
3.14
3.位占位符
| 格式化符号 | 功能 |
| --- | --- |
| %c | 单字符 |
| %s | 字符串 |
| %d | 十进制整数 |
| %o | 八进制整数 |
| %x | 十六进制整数 |
| %e | 科学技术法 |
>>> print("The first letter of my name is %c." % "Tom")
The first letter of my name is T.
4.宽度、精度控制
| 格式化符号 | 功能 |
| --- | --- |
| m.n | m表示最小总宽度,n表示小数点后位数。 |
>>> print("{:>15}".format("hello"))
hello
>>> print("{:<15}".format("hello"))
hello
>>> print("{:^15}".format("hello"))
hello
>>> print("{:.2f}".format(100 / 3))
33.33
>>> print("{:0>5d}".format(3))
00003
5.使用字典
>>> dic = {"name": "Tom", "age": 18, "gender": "male"}
>>> print("My name is {name}, I am {age} years old. I am a {gender}.".format(**dic))
My name is Tom, I am 18 years old. I am a male.
通过**将字典作为关键字参数传入.format()函数,可以快速地将字典中的值格式化输出。
以上就是Pythonformat()函数的基本用法和常用格式化输出方式,通过使用Pythonformat()函数,我们可以更加优雅地格式化字符串输出,并且可以轻松地掌握各种格式化输出方式。
