python语言format用法_详解Python中的format格式化函数的使用方法
format函数实现字符串格式化的功能
基本语法为:
通过 : 和 {} 来控制字符串的操作
一、对字符串进行操作
1. 不设置指定位置,按默认顺序插入
①当参数个数等于{}个数的时候
str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢")
print(str_1)
运行结果:
②当参数个数大于{}个数的时候
str_1 = "小明{}小美,可是小美{}小明".format("喜欢", "不喜欢", "也不喜欢", "更不喜欢")
print(str_1)
运行结果:
③当参数个数习小于{}个数的时候
str_1 = "小明{}小美,可是小美{}小明".format("喜欢")
print(str_1)
运行结果:
程序会报错:越界
由此可以得出,当我们不指定参数位置的时候,format函数会帮我们按顺序将其接收到的参数,填入到{}中。
2. 设置指定位置
当format接收到的参数个数大于{}或者我们想将不同{}替换为相同字符串的时候,我们可以在{}内指定接收第几个参数。format接收的参数,从0开始。
str_1 = "小明{1}小美,可是小美{3}小明,小美{0}小明,小美{2}小华".format("不喜欢", "喜欢", "更喜欢", "很讨厌")
print(str_1)
在这一句代码中,分别为不同的{}指定了接收的参数位置。
运行结果:
很显然,如果我们的{}的个数小于format的参数也是OK的。
str_1 = "小明{1}小美,可是小美{3}小明,小美{2}小华".format("不喜欢", "喜欢", "更喜欢", "很讨厌")
print(str_1)
运行结果:
由此我们得出结论:
在使用format()函数的时候,我们给format()的个数是不限的,如果我们并没有在{}中指定位置,那么format()会自动按顺序将参数填入{},而如果我们为{}指定了位置,那么format()就会把指定位置的参数填入对应的{}中。
3.设置format()参数的值①直接在format()中进行赋值
str_1 = "博主:{name}, 博客地址:{url}".format(name="KaiSarH", url="https://blog.csdn.net/KaiSarH")
运行结果:
②通过传递多值参数向format传递参数进而对{}进行赋值
- 使用**传递字典。
在Python中,使用**可以传递一个字典参数,我们可以使用键名进行匹配,进而进行赋值
dict_1 = {"name": "KaiSarH",
"url": "https://blog.csdn.net/KaiSarH"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)
运行结果:
我们向format()传递的字典参数,所包含的键值对,必须包含所有的{}名。只能多(正确),不能少(报错)。
dict_1 = {"name": "KaiSarH",
"url": "https://blog.csdn.net/KaiSarH",
"login": "login information"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)
print(str_2)
dict_1 = {"name": "KaiSarH",
"key": "https://blog.csdn.net/KaiSarH",
"login": "login information"}
str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1)
print(str_4)
运行结果:
注意:我们可以向format()中传递多个字典,但是不可以含有相同键。
dict_1 = {"name": "KaiSarH",
"url": "https://blog.csdn.net/KaiSarH",
"login": "login information"}
str_2 = "博主:{name}, 博客地址:{url}".format(**dict_1)
dict_2 = {"name": "KaiSarH",
"key": "https://blog.csdn.net/KaiSarH",
"login": "login information"}
str_4 = "博主:{name}, 博客地址:{url}".format(**dict_1, **dict_2)
print(str_4)
运行结果:
- 传递列表
list_1 = ["KaiSarH","https://blog.csdn.net/KaiSarH"]
str_3 = "博主:{0[0]}, 博客地址:{0[1]}".format(list_1)
运行结果:
除了传递一个列表,我们也可以向format()中传递多个列表,只需保证取值的时候无误就可以。
list_1 = ["ZhangSan","https://blog.csdn.net/KaiSarH"]
list_2 = ["KaiSarH", "http:www.baidu.com"]
str_3 = "博主:{1[0]}, 博客地址:{0[1]}".format(list_1, list_2)
运行结果:
③向format()中传入对象,进行赋值
与列表相同,我们同样可以向format()中传递多个对象,只要在赋值的之后做好对应就可以。
class Dog:
def __init__(self, name):
self.name = name
class Mouse:
def __init__(self, name):
self.name = name
tom = Dog("Tom")
jerry = Mouse("Jerry")
str_1 = "{0.name} want to eat {1.name}".format(tom, jerry)
print(str_1)
运行结果:
二、对数字进行格式化
对于数字的格式化,我们主要是在{}中进行设置格式化数字的多种方法
1.保留小数点后n位
格式:{:.nf}
print("{:.1f}".format(3.1415926535))
print("{:.3f}".format(3.1415926535))
print("{:.4f}".format(3.1415926535))
print("{:.6f}".format(3.1415926535))
运行结果:
2.带符号保留小数点后n位
格式:{:+.nf}
print("{:+.1f}".format(3.1415926535))
print("{:+.3f}".format(-3.1415926535))
print("{:+.4f}".format(3.1415926535))
print("{:+.6f}".format(-3.1415926535))
运行结果:
{:.nf}和 {:+.nf}的区别
负数无区别,整数有无符号。
print("{:.1f}".format(3.1415926535))
print("{:+.1f}".format(3.1415926535))
print("{:.3f}".format(-3.1415926535))
print("{:+.3f}".format(-3.1415926535))
print("{:.4f}".format(3.1415926535))
print("{:+.4f}".format(3.1415926535))
print("{:.7f}".format(-3.1415926535))
print("{:+.7f}".format(-3.1415926535))
运行结果:
3.不带小数(只保留整数)
格式:{:.0f}
print("{:.0f}".format(3.1415926535))
print("{:.0f}".format(-3.1415926535))
print("{:.0f}".format(3.8415926535))
运行结果:
4.如果整数的位数不足n位,在左边进行数字补零。如果已经够了n位,直接输出
格式:{:0>nd}
print("{:0>2d}".format(5))
print("{:0>3d}".format(5))
print("{:0>5d}".format(123456))
运行结果:
5.如果整数的位数不足n位,在右边进行x补充。如果已经够了n位,直接输出
格式:{:x<4d}
print("{:x<2d}".format(5))
print("{:x<3d}".format(5))
print("{:x<4d}".format(123456))
运行结果:
很显然,在补充操作中,我们既可以指定在哪一边补充,也可以指定补充的值为什么。
我们也可以利用print("{:x>.2f}".format(3.1))或者{:x<.2f}对浮点数进行操作
6.以逗号分隔数字格式,每三位加入一个,
格式:{:,}
print("{:,}".format(314156926))
运行结果:
7.百分比格式(在我理解,就是把数字×100,保留两位数字,然后加一个百分号)
格式:{:.2%}
print("{:.2%}".format(0.27896))
运行结果:
8.指数记法
格式:{:.2e}
print("{:.2e}".format(100))
运行结果:
9.右对齐(默认宽度为10)
格式:{:>10d}
print("{:>10d}".format(100))
print("{:>10d}".format(2))
print("{:>10d}".format(12580))
运行结果:
10.左对齐(默认宽度为10)
格式:{:<10d}
print("{:<10d}".format(100))
print("{:<10d}".format(2))
print("{:<10d}".format(12580))
运行结果:
11.中间对齐(默认宽度为10)
格式:{:^10d}
print("{:^10d}".format(100))
print("{:^10d}".format(2))
print("{:^10d}".format(12580))
运行结果:
12.进制——b、d、o、x 分别是二进制、十进制、八进制、十六进制。
格式:
‘{:b}'.format(11)
‘{:d}'.format(11)
‘{:\o}'.format(11)
‘{:x}'.format(11)
‘{:#x}'.format(11)
‘{:#X}'.format(11)
print("{:b}".format(125))
print("{:d}".format(125))
print("{:o}".format(125))
print("{:x}".format(125))
print("{:#x}".format(125))
print("{:#X}".format(125))
运行结果:
当我们在格式化中,传入的参数中包含{}的时候,我们可以用{}进行转义。
当我们直接在format()中对参数进行赋值的时候,我们必须要把对参数的赋值放在最后
print("{name}对应的位置是{{0}},{}对应的位置是{{1}}".format("489", "zhangsan", name="123"))
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
python语言format用法_详解Python中的format格式化函数的使用方法相关推荐
- python中str.format用法_详解Python中的str.format方法
字符串的内置方法大致有40来个,但是一些常用的其实就那么20几个,而且里面还有类似的用法,区分度高比如:isalpha,isalnum,isdigit,还有一些无时不刻都会用到的split切分,joi ...
- python字符串切片用法_详解Python字符串切片
在python中,我们定义好一个字符串,如下所示. 在python中定义个字符串然后把它赋值给一个变量. 我们可以通过下标访问单个的字符,跟所有的语言一样,下标从0开始(==,我自己都觉得写的好脑残了 ...
- python中squeeze函数_详解pytorch中squeeze()和unsqueeze()函数介绍
squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...
- python中setattr用法_详解Python的hasattr() getattr() setattr() 函数使用方法
hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False. 需要注意的是name要用括号括起来 ...
- [转载] python中for语句用法_详解Python中for循环的使用_python
参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...
- python namedtuple用法_详解Python中namedtuple的使用
namedtuple是Python中存储数据类型,比较常见的数据类型还有有list和tuple数据类型.相比于list,tuple中的元素不可修改,在映射中可以当键使用. namedtuple: na ...
- python中for语句用法_详解Python中for循环的使用_python
这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程&q ...
- python变量定义大全_详解python变量与数据类型
这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...
- python装饰器由浅入深_详解Python装饰器由浅入深
装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码.装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们 ...
最新文章
- 利用shell脚本结合hive语句进行数据加载时的优化
- 简单的session共享的封装
- Linux设备驱动--块设备(二)之相关结构体
- 神策数据与 UCloud 达成战略合作,开启高效企业服务新模式
- 数据库主从不同步_数据从不说什么
- Black and white
- 前端学习(2794):实现拨打电话功能
- Redis:21---客户端相关配置篇
- 12个很棒的Pandas和NumPy函数,让python数据分析事半功倍
- Learning Spark中文版--第三章--RDD编程(1)
- Qt5.2.1 + VS2010安装错误(Unable to find a Qt build)
- 话单分析 之 含小数保留9位
- Datalogic得利捷扫码器助力生产与物流自动化!
- JDK动态代理介绍与使用
- httprunner 2.x学习4-测试用例分层
- 【OpenCV + Python】时域和频域傅里叶变换
- 基于C语言 51单片机应用技术 速成教程(持续更新中)
- win10怎么取消小箭头_已取消到该网页的导航,小编教你网页提示已取消到该网页的导航怎么办...
- C - Matrix Reducing
- opencv立方体的画法_【不看后悔!】最详细的立方体透视变化及画法讲解
热门文章
- 【原】UIView实现点击着重效果的解决方案
- 检测ID卡的输入或者是其它卡的输入。
- android+button+不可点击置灰,android:tint 给imagebutton着色 按钮灰色
- Android.View.InflateException: Binary XML File Line #异常的解决
- ViewPager外部获取“当前显示的页面的位置position”
- windows系统下oracle数据库rman备份记录(实战篇)
- 计算机组成原理中ID是什么,计算机组成原理.doc
- 菜鸟要做架构师——java性能优化之for循环
- php查询数据方法,php查询数据库的方法
- Java中组合、继承与代理之间的关系。