python中format的用法实例详解
作者:月夜风雨磊 发布时间:2023-08-03 12:27:28
标签:python,format
format是字符串内嵌的一个方法,用于格式化字符串。以大括号{}来标明被替换的字符串。
1、基本用法
1. 按照{}的顺序依次匹配括号中的值
s = "{} is a {}".format('Tom', 'Boy')
print(s) # Tom is a Boy
s1 = "{} is a {}".format('Tom')
# 抛出异常, Replacement index 1 out of range for positional args tuple
print(s1)
2. 通过索引的方式去匹配参数
s = "{0} is a {1}".format('Tom', 'Boy')
print(s) # Tom is a Boy
s1 = "{1} is a {2}".format('Tom', 'Lily', 'Girl')
print(s1) # Lily is a Girl
字符串中索引的顺序可以打乱,并不影响匹配。
s = "{1} is a {0}".format('Boy', 'Tom', )
print(s) # Tom is a Boy
3. 通过参数名来匹配参数
s = "{name} is a {sex}".format(name='Tom', sex='Boy')
print(s) # Tom is a Boy
同理,如果参数已经确定,可以直接利用{}进行格式化引用。
name = 'Tom'
sex = 'Girl'
# 以f开头表示在字符串中支持大括号内的python表达式 此用法3.6之后支持
s = f"{name} is a {sex}"
print(s) # Tom is a Boy
4. 混搭使用
可以通过索引,参数名来混搭进行匹配。
s = "My name is {}, i am {age} year old, She name is {}".format('Liming', 'Lily', age=10)
print(s) # My name is Liming, i am 10 year old, She name is Lily
需要注意的是,命名参数必须写道最后。负责会编译报错!
s = "My name is {}, i am {age} year old, She name is {}".format('Liming', age=10, 'Lily')
print(s) # SyntaxError: positional argument follows keyword argument
另外,不可以索引和默认格式化混合使用。
s = "{} is a {0}".format('Boy', 'Tom', )
print(s)
s1 = "{} is a {1}".format('Boy', 'Tom', )
print(s1)
#以上两种写法均报异常。
# ValueError: cannot switch from automatic field numbering to manual field specification
2、进阶用法
1. 通过对象的属性
class Names():
name1='Kevin'
name2='Tom'
print 'hello {names.name1} i am {names.name2}'.format(names=Names)
# hello Kevin i am Tom
2. 支持对参数部分引用
可以通过索引对参数的部分进行取值。如下:s[0] = w。
s = "The word is {s}, {s[0]} is initials".format(s='world')
# The word is world, w is initials
print(s)
3. 数字的处理
如何使用format 保留两位小数呢? 需要使用:.2f,在用%进行格式化时我们使用的是%:.2f
s = 'π is {:.2f}'.format(3.1415926)
print(s) # π is 3.14
s1 = 'π is %.2f'% 3.1415926
print(s1) # π is 3.14
同时这种方法还可以用于字符串截取,不过数字后面就不能加f了。
s = "{:.1}".format('Hello')
print(s) # H
给数字加千位符
s = "{:,}".format(1000000)
print(s) # 1,000,000
将数字转换成二进制
s = "{:b}".format(8)
print(s) # 1000
将数字转换成八进制
s = "{:o}".format(8)
print(s) # 10
将数字转换成十六进制
s = "{:X}".format(12)
print(s) # C
4. 格式处理
通过:+数字指定转换后的字符串长度,不足的部分用空格补充
s = "{:2}b".format('a')
print(s) # a b (a后面补了一个空格)
# 如果指定的长度小于参数的长度,按照原参数匹配
s1 = "{:2}World".format('Hello')
print(s1) # HelloWorld
5. 字符的填充
可通过:符号^数字进行字符串的填充。 其中数字为填充后的字符串总长度。
s = "{:*^10}".format('Hello')
print(s) # **Hello***
s = "{:-^20}".format('123456')
print(s) # -------123456-------
如果数字小于字符串的长度,则不进行填充操作。
s = "{:*^3}".format('Hello')
print(s) # Hello
6. list、tuple的拆分
在format格式化时,可使用* 或者 ** 进行对list、tuple拆分。
foods = ['fish', 'beef', 'fruit']
s = 'i like eat {} and {} and {}'.format(*foods)
# i like eat fish and beef and fruit
print(s)
foods = ['fish', 'beef', 'fruit']
s = 'i like eat {2} and {0} and {1}'.format(*foods)
# i like eat fruit and fish and beef
print(s)
dict_temp = {'name': 'Lily', 'age': 18}
# 字典需要用 ** 进行拆分
s = 'My name is {name}, i am {age} years old'.format(**dict_temp)
print(s) # My name is Lily, i am 18 years old
来源:https://blog.csdn.net/qq_42855293/article/details/118480087
0
投稿
猜你喜欢
- 这只是个asp小技巧类的东西,它虽然适合在每个不同文件名里调用这个函数,但是也是有前提的,下面让我们来仔细看看其中的原委。 &n
- Windows环境: (1)离线安装 首先在线搜索并下载你需要的第三方库:网址https
- 最近在一个python工具中需要实现串口自动触发工作的功能,之前只在winform上面实现,今天使用python试试。这里简单记一下:首先用
- 导言在前面的教程里我们学习了DataList提供了一些风格样式的属性.而且我们还学习了如何定义HeadStyle, ItemStyle, A
- 1. lr_scheduler相关lr_scheduler = WarmupLinearSchedule(optimizer, warmup
- 当需要制作转动鼠标滚轮放大页面字体这样的交互效果时,会用到 Mousewheel 事件。其实在大多数浏览器(IE6, IE7, IE8, O
- 摘 要: 恢复丢失的数据库文件在很大程度上取决于所采用的备份策略。本文从恢复的灵活性出发,对Oracle8数据库的备份及恢复策略进行了探讨,
- 现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了, 比如我. jquery虽
- 一、Python的字典在项目的开发过程中,如果遇到有映射关系的内容可以考虑使用Python中的字典进行存储数据,字典中冒号前的数据称为【键】
- Chrome的CSS支持程度 :Green / √ means current support.Orange / Δ means that
- (1) 展示了ASP * 站设计的一些最基本的方法,相信通过实践各位对ASP已经有了最基本的了解,本篇在答复大家所提问题的同时,将进一步介绍
- 注:因为最近想用一下Python做一些简单小游戏的开发作为项目练手之用,而Pygame模块里面提供了大量的有用的方法和属性。今天我们就在之前
- 本文实例讲述了PHP面向对象程序设计继承用法。分享给大家供大家参考,具体如下:<?php//继承是子类(派生类)从父类(基类,超类)继
- 有朋友使用DIV居中,但是却发现DIV居中失灵了,是怎么回事呢?下面给大家解决一下问题,呵呵!1、一般情况下DIV居中失效是因为没写DTD语
- 因为python打包的时候需要用到ico图片格式,网上看好的图片又没有ico,于是自己寻找了一下python转换图片格式的方法,彻底解决这个
- 很神奇的一个晚上,居然在以前老同事的群里跟同事讨论起CSS的东西来了,不过很意外的还是有收获。在IE中常常会碰到如果将容器定位后,出现容器内
- ASP页面延迟的两个简单方法 asp延时第一种 代码如下:<% Response.Buffer = Tr
- 首先安装pip install ruamel.yaml用于修改yaml文件#coding:utf-8from ruamel import y
- 前言for...in 是Python程序员使用最多的语句,for 循环用于迭代容器对象中的元素,这些对象可以是列表、元组、字典、集合、文件,
- Python SSH远程连接与文件传输from paramiko import (SSHClient, SFTPClient, AutoAd