python3字符串格式化

2023-05-16

python 3 字符串格式化
字符串格式化

Python的字符串格式化有两种方式: 百分号方式、format方式

百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存。[PEP-3101]

This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing ‘%’ string formatting operator.

1、百分号方式

%[(name)][flags][width].[precision]typecode

(name) 可选,用于选择指定的key
flags 可选,可供选择的值有:
+ 右对齐;正数前加正好,负数前加负号;
- 左对齐;正数前无符号,负数前加负号;
空格 右对齐;正数前加空格,负数前加负号;
0 右对齐;正数前无符号,负数前加负号;用0填充空白处
width 可选,占有宽度
.precision 可选,小数点后保留的位数
typecode 必选
s,获取传入对象的str方法的返回值,并将其格式化到指定位置
r,获取传入对象的repr方法的返回值,并将其格式化到指定位置
c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
o,将整数转换成 八 进制表示,并将其格式化到指定位置
x,将整数转换成十六进制表示,并将其格式化到指定位置
d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
F,同上
g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
%,当字符串中存在格式化标志时,需要用 %%表示一个百分号
注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式

常用格式化:

复制代码
tpl = “i am %s” % “xinlan”

tpl = “i am %s age %d” % (“xinlan”, 18)

tpl = “i am %(name)s age %(age)d” % {“name”: “xinlan”, “age”: 18}

tpl = “percent %.2f” % 99.97623

tpl = “i am %(pp).2f” % {“pp”: 123.425556, }

tpl = “i am %(pp).2f %%” % {“pp”: 123.425556, }
复制代码

2、Format方式

[[fill]align][sign][#][0][width][,][.precision][type]

fill 【可选】空白处填充的字符
align 【可选】对齐方式(需配合width使用)
<,内容左对齐

,内容右对齐(默认)
=,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
^,内容居中
sign 【可选】有无符号数字
+,正号加正,负号加负;
-,正号不变,负号加负;
空格 ,正号空格,负号加负;

【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示

, 【可选】为数字添加分隔符,如:1,000,000
width 【可选】格式化位所占宽度
.precision 【可选】小数位保留精度
type 【可选】格式化类型
传入” 字符串类型 “的参数
s,格式化字符串类型数据
空白,未指定类型,则默认是None,同s
传入“ 整数类型 ”的参数
b,将10进制整数自动转换成2进制表示然后格式化
c,将10进制整数自动转换为其对应的unicode字符
d,十进制整数
o,将10进制整数自动转换成8进制表示然后格式化;
x,将10进制整数自动转换成16进制表示然后格式化(小写x)
X,将10进制整数自动转换成16进制表示然后格式化(大写X)
传入“ 浮点型或小数类型 ”的参数
e, 转换为科学计数法(小写e)表示,然后格式化;
E, 转换为科学计数法(大写E)表示,然后格式化;
f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
g, 自动在e和f中切换
G, 自动在E和F中切换
%,显示百分比(默认显示小数点后6位)
常用格式化:

复制代码
tpl = “i am {}, age {}, {}”.format(“seven”, 18, ‘xinlan’)

tpl = “i am {}, age {}, {}”.format(*[“seven”, 18, ‘xinlan’])

tpl = “i am {0}, age {1}, really {0}”.format(“seven”, 18)

tpl = “i am {0}, age {1}, really {0}”.format(*[“seven”, 18])

tpl = “i am {name}, age {age}, really {name}”.format(name=”seven”, age=18)

tpl = “i am {name}, age {age}, really {name}”.format(**{“name”: “seven”, “age”: 18})

tpl = “i am {0[0]}, age {0[1]}, really {0[2]}”.format([1, 2, 3], [11, 22, 33])

tpl = “i am {:s}, age {:d}, money {:f}”.format(“seven”, 18, 88888.1)

tpl = “i am {:s}, age {:d}”.format(*[“seven”, 18])

tpl = “i am {name:s}, age {age:d}”.format(name=”seven”, age=18)

tpl = “i am {name:s}, age {age:d}”.format(**{“name”: “seven”, “age”: 18})

tpl = “numbers: {:b},{:o},{:d},{:x},{:X}, {:%}”.format(15, 15, 15, 15, 15, 15.87623, 2)

tpl = “numbers: {:b},{:o},{:d},{:x},{:X}, {:%}”.format(15, 15, 15, 15, 15, 15.87623, 2)

tpl = “numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}”.format(15)

tpl = “numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}”.format(num=15)
复制代码

更多格式化操作:https://docs.python.org/3/library/string.html

迭代器和生成器

1、迭代器

迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素。迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件

特点:

访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容
不能随机访问集合中的某个值 ,只能从头到尾依次访问
访问到一半时不能往回退
便于循环比较大的数据集合,节省内存
复制代码

a = iter([1,2,3,4,5])
a

a.next()
1
a.next()
2
a.next()
3
a.next()
4
a.next()
5
a.next()
Traceback (most recent call last):
File “”, line 1, in
StopIteration
复制代码
2、生成器

一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator);如果函数中包含yield语法,那这个函数就会变成生成器;

def func():
yield 1
yield 2
yield 3
yield 4
上述代码中:func是函数称为生成器,当执行此函数func()时会得到一个迭代器。

复制代码

temp = func()
temp.next()
1
temp.next()
2
temp.next()
3
temp.next()
4
temp.next()
Traceback (most recent call last):
File “”, line 1, in
StopIteration
复制代码
3、实例

a、利用生成器自定义range

复制代码
def nrange(num):
temp = -1
while True:
temp = temp + 1
if temp >= num:
return
else:
yield temp
复制代码
b、利用迭代器访问range

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python3字符串格式化 的相关文章

  • OpenHarmony 3.0 虚拟机开发环境

    本文介绍一种简单的OpenHarmony环境搭建方法 首先我们要知道环境搭建包括哪些内容 xff0c 这样我们才好知道如何去搭建 通常来说 xff0c 环境搭建包括这3大部分 xff1a 代码编写 代码编译 代码下载 烧录程序 在OpenH
  • 程序员如何更好的提升自己

    首先你得明白 xff0c 一个人的能力就像一个池塘 xff0c 不断的输入又不断地输出 xff0c 水池的容量以及水的质量决定了输出的高效与否 xff0c 输入大于输出 xff0c 你的池塘就会不断扩大 xff0c 换句话说你会的技能就越来
  • error:D8016 “/ZI”和“/Gy-”命令行选项不兼容 ”问题解决

    VS调试中出现上述问题 进入 项目 gt 属性 gt C C 43 43 xff08 1 xff09 gt 常规 gt 调试信息格式 gt 选择 程序数据库 Zi 或 无 xff08 2 xff09 gt 代码生成 gt 启用函数集链接 g
  • Linux驱动程序开发用户态和内核态 模块机制

    Linux驱动程序开发 用户态和内核态 Linux操作系统分为用户态和内核态 用户态处理上层的软件工作 内核态用来管理用户态的程序 xff0c 完成用户态请求的工作 驱动程序与底层的硬件交互 xff0c 所以工作在内核态 Linux操作系统
  • QT学习第一步 QT下载及安装详细步骤

    下载地址 xff1a QT官方网站 QT下载安装地址 选择的这个 xff1a QT下载安装地址 文件名称选择 xff0c 图中红色箭头详解 xff1a 选择archive QT开发工具安装包文件夹 xff1a 进入之后显示的文件夹 xff1
  • RT-Thread临界段的保护

    临界段的保护 什么是临界段 临界段 xff0c 用一句话概括就是一段在执行时不能被中断的代码段 在RT Thread中 xff0c 临界段最常出现的场景就是对全局变量的操作 xff0c 全局变量就好像是一个靶子 xff0c 谁都可以对其开枪
  • Oracle中expdp与impdp--导入和导出操作步骤

    Oracle expdp 与impdp 一 根据用户导出导入数据 用户和表空间都相同 这些命令必须在Oracle 工具执行 create directory dpdata1 as E oracle home product backup 这
  • 编写Linux设备驱动程序的注意事项

    编写设备驱动程序的注意事项 应用程序开发与驱动程序开发的差异 在Linux上的程序开发一般分为两种 xff0c 一种是内核及驱动程序开发 xff0c 另一种是应用程序开发 这两种开发种类对应Linux的两种状态 xff0c 分别是内核态和用
  • 单片机STM32F103RB,BLDC直流电机控制器设计,原理图、源码和电路方案

    基于STM32 BLDC直流无刷电机控制器设计 xff0c 并附上原理图和源码等 源代码是基于免费开源CoOS UCOS类似 操作系统上写的 xff0c 在学习无刷电机的控制同时还能学习到操作系统的知识 同时提供用Matlab的GUI编写的
  • 构建嵌入式Linux操作系统 Linux操作系统的介绍

    目前流行的嵌入式操作系统有Linux WinCE VxWorks等 Linux作为一种免费的类UNIX操作系统 xff0c 由于其功能强大 xff0c 在嵌入式产品的应用中非常广泛 Linux操作系统的介绍 Linux操作系统 Linux操
  • Linux内核子系统 内核配置选项

    Linux内核子系统 编写设备驱动程序 xff0c 涉及Linux内核的许多子系统 xff0c 了解这些子系统对于了解Linux操作系统和编写设备驱动程序都非常有用 这些主要的子系统包括进程管理 内存管理 文件管理 设备管理和网络管理 现对
  • Linux命令格式 帮助信息 man命令笔记

    命令的格式 打开终端的方式 ubuntu中的命令基本都是在终端执行的 1 桌面右击打开终端 2 ctrl 43 alt 43 t 3 搜索框 终端提示符 stu 64 shy virtual machine stu xff1a 用户名 sh
  • Linux系统 自动补全管道命令学习

    自动补全 输入命令的一部分 xff0c 然后按tab键 xff0c 就自动补全命令 xff0c 如果有多个相同开头的命令多按一次tab键 xff0c 它会将所有你输入开头的命令提示出来 例 xff1a ifconfig 输入 if 按两下t
  • C++简介 C语言编程原理

    C 43 43 简介 C 43 43 融合了3种不同的编程方式 xff1a C语言代表的过程性语言 C 43 43 在C语言基础上添加的类代表的面向对象语言 C 43 43 模板支持的泛型编程 本章将简要介绍这些传统 不过首先 xff0c
  • FTP命令不同系统之间传输文件

    有时可能需要在不同的系统 xff08 甚至不同类型的操作系统 xff09 之间传输文件 xff0c 如将微软的Windows系统中的文件传给Linux或UNIX系统 xff0c 或反过来将Linux或UNIX系统中的文件传给微软的Windo
  • NFC技术的定义通信方式

    NFC技术的定义 什么是NFC NFC xff08 Near Field Communication xff0c 近场通信 xff09 xff0c 是一种工作频率为13 56MHz xff0c 通信距离只有0 xff5e 20cm xff0
  • RFID系统工作原理

    RFID系统由两部分组成 xff0c 其工作原理 xff1a 应答器 xff1a 也称为电子标签 xff0c 由天线 耦合元件及芯片组成 一般来说 xff0c 都是用标签作为应答器 每个标签具有唯一的电子编码 xff0c 附着在物体上标识目
  • 一台linux服务器配置两个tomcat安装包

    准备前 xff1a 一台linux服务器 2个tomcat7应用包 xff08 tomcat 7 0 56 tomcat idc 开始配置 xff1a tomcat idc应用jdk配置绝对路径 tomcat 7 0 56应用jdk配相对路
  • NFC通信基本原理 主动和被动通信

    NFC通信基本原理 近场通信原理 对于天线产生的电磁场 xff0c 根据其特性的不同 xff0c 划分为三个不同的区域 xff1a 感应近场 辐射近场和辐射远场 它们主要通过与天线的距离来区分 感应近场区指最靠近天线的区域 在此区域内 xf
  • NFC协议概述

    NFC协议概述 NFC相关的标准化组织 ISO 国际标准化组织 xff08 International Organization for Standardization xff09 简称ISO xff0c 是世界上最大的非政府性标准化机构

随机推荐

  • 计算机网络

    计算机网络 计算机网络是利用通信线路和通信设备 xff0c 把地理上分散并且具有独立功能的多个计算机系统互相连接 xff0c 按照网络协议进行数据通信 xff0c 通过功能完善的网络软件实现资源共享的计算机系统集合 计算机网络的功能 计算机
  • html标签手册

    完整的HTML页面 x1f4d1 基础标签 x1f4d1 x1f4d1 x1f4d1 HTML lt DOCTYPE gt 声明 DOCTYPE声明必须是 HTML 文档的第一行 xff0c 位于 html标签之前 DOCTYPE 声明不是
  • BCD码的作用和实现

    内容部分摘抄于朱有朋老师 BCD码本质是对数字的一种编码 xff0c 用来解决这种问题 xff1a 由56得到0x56 或者反过来 也就是说我们希望十进制的56被编码成56 xff08 这里56不是十进制的56 xff0c 而是两个数字5和
  • window和虚拟机(Linux)通过串口通讯

    准备工具 虚拟串口驱动 虚拟机 xff08 我的是乌班图版本 xff09 串口调试助手 xff08 以上网上自己找来下载 xff09 利用虚拟机串口驱动添加2个虚拟串口 xff08 com1和com2 xff09 xff0c 然后打开串口调
  • 关于‘QByteArray::operator QNoImplicitBoolCast() const’ is private

    home hins Qt5 9 8 5 9 8 gcc 64 include QtCore qbytearray h 436 error QByteArray operator QNoImplicitBoolCast const is pr
  • Linux创建虚拟CAN

    创建 xff1a 加载vcan内核模块 sudo modprobe vcan创建虚拟CAN接口 sudo ip link add dev can0 type vcan xff08 can0就是你要创建的设备 xff09 将虚拟CAN接口处于
  • 解决ubuntu20.04 连接xshell显示ssh拒绝服务

    近两天在弄linux系统 xff0c 突然xshell就连接不上了 xff0c 连接的时候一直显示ssh拒绝访问 折腾几个小时总算解决了 xff0c 现对其进行记录 报错情况 xff1a 手动分界效果 首先看下本机IP和虚拟机设置的IP是否
  • C++文件的建立

    C 43 43 文件的建立 include include int main using namespace std ofstream ofs jar txt ios out ofs lt lt 小明 lt lt endl ofs lt l
  • DB2数据库的安装-for linux

    DB2的安装 1 安装DB2服务端 将db2v8 iso文件 FP6 tar 安装响应文件db2ese rsp 复制到 home install 目录下 root cd home install mkdir iso fp root moun
  • ROS学习笔记-Gazebo安装与闪退、卡顿问题解决

    1 安装 在安装完整版的ROS后 xff0c 就包括了Gazebo的安装了 xff0c 因此在终端输入下载指令时 xff0c 出现已存在的反馈信息 安装完整版ROS的指令是 xff1a sudo apt get install ros me
  • win10+vs2015+Intel RealSense D435i深度相机配置

    第一步 xff1a Intel RealSense D435i的SDK下载 链接 xff1a https pan baidu com s 1sIDlkbk8U9PFmJLhGJndxg 提取码 xff1a lppa 第二步 xff1a 测试
  • Vue中使用element-ui的el-dialog对话框,实现拖拽效果

    效果图 xff1a element ui的el dialog对话框 xff0c 没有拖拽移动的效果 xff0c 需要自定义指令来实现对话框拖拽 1 准备 xff1a 在准备一个vue组件 xff08 点击按钮弹出对话框 xff09 功能 x
  • 前端知识点(六):网页中有大量图片时加载很慢,如何优化?

    1 图片懒加载 在图片未可视区域加一个滚动条事件 xff0c 判断图片位置与浏览器顶端和页面的距离 xff0c 当图片到浏览器顶端的距离 xff0c 小于图片到页面的距离时 xff0c 优先加载 2 图片预加载 将当前展示图片的前一张和后一
  • 请求类型get,delete,post,put 的用法(传参)

    1 get delete传参 注意 xff1a xff08 1 xff09 传参格式 xff1a 96 URL key 61 value amp key2 61 value2 96 xff08 2 xff09 注意使用反引号 xff0c 而
  • 关于前端--RSA加密(对登录密码加密)

    安装 npm install jsencrypt 1 在utils文件中封装一个jsencrypt js文件 密匙对生成链接 xff1a http web chacuo net netrsakeypair import JSEncrypt
  • Vue+Uniapp实现直播功能(推流拉流)

    提示 xff1a 前言 目前有一个项目 需要做一个APP和一个PC端网页 xff0c 主要功能是类似直播 xff0c 经查阅资料 xff0c 可采用uniapp 43 vue 43 推流拉流的技术 xff0c 前端使用uniapp打开摄像头
  • web菜单--自定义样式

    1 文件src styles variables scss 定义变量 sidebar menuText var menuText bfcbd9 menuActiveText var menuActiveText 409EFF subMenu
  • vue3拖拽布局+动态组件+自适应布局

    1 拖拽布局插件 Vue Grid Layout 适用Vue js的栅格布局系统 可拖动和可调整大小栅格布局的Vue组件 https jbaysolutions github io vue grid layout zh 在package j
  • webrtc视频播放器(ZLMRTCClient.js)

    引言 在播放实时视频时 xff0c 视频播放器一般会有延迟 xff0c 此时 xff0c 就可以使用webrtc来拉流 xff0c 延迟在1s或者基本没有延迟 与zlm配套的rtc js客户端 国标 1 开源项目地址 ZLMRTCClien
  • python3字符串格式化

    python 3 字符串格式化 字符串格式化 Python的字符串格式化有两种方式 百分号方式 format方式 百分号的方式相对来说比较老 xff0c 而format方式则是比较先进的方式 xff0c 企图替换古老的方式 xff0c 目前