Python格式化字符串

Python字符串格式化 (%操作符) "I’m %s. I’m %d"为我们的模板。%s为第一个格式符,表示一个字符串。(‘Pythontab’,99)的两个元素’Pythontab’和99为替换%s和%d的真实值。整个"I’m %s. I’m %d" % (‘Pythontab’, 1) 实际上构成一个字符串表达式。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的。 阅读详情

在编写程序的过程中,经常需要进行格式化输出,每次用每次查。干脆就在这里整理一下,以便索引。
在这里插入图片描述

格式化操作符(%)

"%"是Python风格的字符串格式化操作符,非常类似C语言里的printf()函数的字符串格式化(C语言中也是使用%)。

下面整理了一下Python中字符串格式化符合:

格式化符号

说明

%c

转换成字符(ASCII 码值,或者长度为一的字符串)

%r

优先用repr()函数进行字符串转换

%s

优先用str()函数进行字符串转换

%d / %i

转成有符号十进制数

%u

转成无符号十进制数

%o

转成无符号八进制数

%x / %X

转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)

%e / %E

转成科学计数法(e / E控制输出e / E)

%f / %F

转成浮点数(小数部分自然截断)

%g / %G

%e和%f / %E和%F 的简写

%%

输出% (格式化字符串里面包括百分号,那么必须使用%%)

这里列出的格式化符合都比较简单,唯一想要强调一下的就是"%s"和"%r"的差别。

看个简单的代码:

string = "Hello\\tWill\\n"

print "%s" %string
print "%r" %string

代码的输出为:

其实,这里的差异是str()和repr()两个内建函数之间的差异:

  • str()得到的字符串是面向用户的,具有较好的可读性

  • repr()得到的字符串是面向机器的

    • 通常(不是所有)repr()得到的效果是:obj == eval(repr(obj))

格式化操作符辅助符

通过"%“可以进行字符串格式化,但是”%"经常会结合下面的辅助符一起使用。

辅助符号

说明

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号(+)

#

在八进制数前面显示零(0),在十六进制前面显示"0x"或者"0X"(取决于用的是"x"还是"X")

0

显示的数字前面填充"0"而不是默认的空格

(var)

映射变量(通常用来处理字段类型的参数)

m.n

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

看一些简单的 例子:

num = 100

print "%d to hex is %x" %(num, num)
print "%d to hex is %X" %(num, num)
print "%d to hex is %#x" %(num, num)
print "%d to hex is %#X" %(num, num) 

# 浮点数
f = 3.1415926
print "value of f is: %.4f" %f

# 指定宽度和对齐
students = \[{"name":"Wilber", "age":27}, {"name":"Will", "age":28}, {"name":"June", "age":27}\]
print "name: %10s, age: %10d" %(students\[0\]\["name"\], students\[0\]\["age"\])
print "name: %-10s, age: %-10d" %(students\[1\]\["name"\], students\[1\]\["age"\])
print "name: %\*s, age: %0\*d" %(10, students\[2\]\["name"\], 10, students\[2\]\["age"\])

# dict参数
for student in students:
print "%(name)s is %(age)d years old" %student

代码输出为:

对于Python的格式化操作符,不仅可以接受tuple类型的参数,也可以支持dict,象上面代码的最后一部分,那么格式化字符串中就可以直接使用"%(key)s"(这里的s根据具体类型改变)的方式表示dict中对应的value了。

字符串模板

其实,在Python中进行字符串的格式化,除了格式化操作符,还可以使用string模块中的字符串模板(Template)对象。下面就主要看看Template对象的substitute()方法:

from string import Template

s \= Template("Hi, $name! $name is learning $language")
print s.substitute(name="Wilber", language="Python")

d \= {"name": "Will", "language": "C#"}
print s.substitute(d)

# 用$$表示$符号
s = Template("This book ($bname) is 17$$")
print s.substitute(bname="TCP/IP")

代码结果为:

字符串内建函数format()

Python2.6开始,新增了一种格式化字符串的函数str.format(),通过这个函数同样可以对字符串进行格式化处理。在format()函数中,使用“{}”符号来当作格式化操作符。

下面直接通过一些简单的例子演示format()函数的基本使用:

# 位置参数
print "{0} is {1} years old".format("Wilber", 28)
print "{} is {} years old".format("Wilber", 28)
print "Hi, {0}! {0} is {1} years old".format("Wilber", 28)

# 关键字参数
print "{name} is {age} years old".format(name = "Wilber", age = 28)

# 下标参数
li = \["Wilber", 28\]
print "{0\[0\]} is {0\[1\]} years old".format(li)

# 填充与对齐
# ^、<、>分别是居中、左对齐、右对齐,后面带宽度
# :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
print '{:>8}'.format('3.14')
print '{:<8}'.format('3.14')
print '{:^8}'.format('3.14')
print '{:0>8}'.format('3.14')
print '{:a>8}'.format('3.14')

# 浮点数精度
print '{:.4f}'.format(3.1415926)
print '{:0>10.4f}'.format(3.1415926)

# 进制
# b、d、o、x分别是二进制、十进制、八进制、十六进制
print '{:b}'.format(11)
print '{:d}'.format(11)
print '{:o}'.format(11)
print '{:x}'.format(11)
print '{:#x}'.format(11)
print '{:#X}'.format(11)

# 千位分隔符
print '{:,}'.format(15700000000)

str的内建函数

在最开始的时候,Python有一个专门的string模块,要使用string的方法要先import这个模块。从Python2.0开始, 为了方便使用,str类型添加了很多内建函数,这些函数可以实现跟string模块中函数相同的功能,也就是说,只要S是一个字符串对象就可以直接使用内建函数,而不用import。

对于字符串的格式化处理,也可以考虑使用str的其他内建函数:

\>>> dir(str)
\['\_\_add\_\_', '\_\_class\_\_', '\_\_contains\_\_', '\_\_delattr\_\_', '\_\_doc\_\_', '\_\_eq\_\_', '\_\_
format\_\_', '\_\_ge\_\_', '\_\_getattribute\_\_', '\_\_getitem\_\_', '\_\_getnewargs\_\_', '\_\_get
slice\_\_', '\_\_gt\_\_', '\_\_hash\_\_', '\_\_init\_\_', '\_\_le\_\_', '\_\_len\_\_', '\_\_lt\_\_', '\_\_mo
d\_\_', '\_\_mul\_\_', '\_\_ne\_\_', '\_\_new\_\_', '\_\_reduce\_\_', '\_\_reduce\_ex\_\_', '\_\_repr\_\_',
 '\_\_rmod\_\_', '\_\_rmul\_\_', '\_\_setattr\_\_', '\_\_sizeof\_\_', '\_\_str\_\_', '\_\_subclasshook
\_\_', '\_formatter\_field\_name\_split', '\_formatter\_parser', 'capitalize', 'center',
 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index
', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper',
'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', '
rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', '
strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'\]

下面整理出来了一些常用的str类型的内建函数:

# 小写 
S.lower() 
# 大写 
S.upper() 
#大小写互换 
S.swapcase() 
# 首字母大写 
S.capitalize() 

# 输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。 
S.ljust(width,\[fillchar\]) 
# 右对齐 
S.rjust(width,\[fillchar\]) 
# 中间对齐 
S.center(width, \[fillchar\]) 

# 返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S\[start:end\]中搜索 
S.find(substr, \[start, \[end\]\]) 
# 返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号 
S.rfind(substr, \[start, \[end\]\]) 
# 计算substr在S中出现的次数 
S.count(substr, \[start, \[end\]\]) 
#把S中的oldstar替换为newstr,count为替换次数
S.replace(oldstr, newstr, \[count\]) 

# 把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None 
S.strip(\[chars\]) 
S.lstrip(\[chars\]) 
S.rstrip(\[chars\]) 

# 以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符 
S.split(\[sep, \[maxsplit\]\]) 
# 把seq代表的字符串序列,用S连接起来 
S.join(seq)

总结

本文整理了一些格式化字符,以及一些辅助指令,结合格式化操作符(%),就可以生成特定格式的字符串了。也可以使用字符串模板来进行字符串格式化。

最后这里给大家免费分享一份Python学习资料,包含了视频、源码、课件,希望能够帮助到那些不满现状,想提示自己却又没用方向的朋友,也可以和我一起来交流呀!

编辑资料、学习路线图、源代码、软件安装包等!【点击这里】领取!
在这里插入图片描述
在这里插入图片描述

SDM量化噪声等效到PLL输出的传递函数推导 在历年文章或书本中少见SDM量化噪声等效到PLL输出的传递函数推导。需了解SDM量化噪声的本质,配合欧拉方程简化,并将Z域转化成S域。最终结合断环处等效到PLL输出的传递函数,方可完成。 阅读详情

相关推荐

CAN收发器TJA1145A休眠唤醒应用

TJA1145的唤醒工作原理主要依赖于其内部的唤醒机制和外部硬件的配合,主要涉及低功耗状态、选择性唤醒功能。TJA1145是一款CAN收发器,它支持多种工作模式,包括NormalStandbySleep等。在这些模式中,Sleep模式是最低功耗状态,而Normal模式则是最活跃的状态,其中Standby模式处于两者之间,允许一定的功能操作但功耗较低。TJA1145可以通过接收特定的唤醒源从Sleep或Standby模式唤醒到Standby或Normal模式。唤醒源的检测与处理。

radix关于mcu的博客,持续更新中... 5955

【Python 基础篇】Python中的格式化字符串方法

当需要传入的字符串过多时,仍然会显得非常冗长。info = [f'名字:{name}年龄:{age}性别:{gender}',f'第一个爱好:{hobbie1}第二个爱好:{hobbie2}第三个爱好:{hobbie3}']print('{0:*10}'.format('开始执行')) # ******开始执行。print('{0:*^10}'.format('开始执行')) # ***开始执行***

那么菜的博客 3181

深入浅出DNS系列(一)- DNS杂谈

黄丝玛:班达山,你好,我记性不好,你告诉我搜狐、新浪的网站IP地址好吗? 班达山:你问问DNS先生吧,他专门干这买卖的

jiangsd198的博客 4130

Python中常用的格式化字符串方法

常用字符串格式化

weixin_44166070的博客 8231

【驭风计划 算法训练营】周测4:习题11-4、8-4、12-4

给出 nn 个非负整数 x1,x2,⋯,xnx1,x2,⋯,xn,有 qq 个询问,第 jj 个询问给出一个非负整数 yjyj,求其中,xor 表示按位异或运算。

Mege1的博客 1043

C#粘包和分包问题及解决方法

一:通过图解法来描述一下分包和粘包,这样客户更清晰直观的了解:  下面对上面的图进行解释:  1.正常情况:如果Socket Client 发送的数据包,在Socket Server端也是一个一个完整接收的,那个就不会出现粘包和分包情况,数据正常读取。  2.粘包情况:Socket Client发送的数据包,在客户端发送和服务器接收的情况下都有可能发送,因为客户端发送的数据都是发送的一个缓冲...

weixin_42033401的博客 7767

python编程实践:格式化字符串输出的四种方式详解

Python字符串格式化输出,在python编程中,是一个非常重要的知识点,掌握了它,你就可以输出各种格式要求的文本内容,并生成相关要求的文件。

lu_jianjun的专栏 7865

零基础实战:YOLO检测头自定义替换全攻略

本文为零基础用户提供了YOLO检测头自定义替换的完整实战指南。通过将检测头比作汽车的“方向盘”,文章详细阐述了为何需要替换、如何寻找和集成新检测头模块、修改配置文件以及最终训练验证的全过程,旨在帮助用户针对特定任务(如小目标检测)提升模型性能。

perl8的博客 255

Python基础:格式化字符串的方法(三种常用的,一种使用模板来格式化字符串的)

这三种方法都能有效地格式化字符串,你可以根据个人偏好和需求选择其中一种来进行字符串的格式化。在实际使用中,f-string 通常被认为是最简洁和易读的字符串格式化方法。这种模板字符串的格式化方法比较灵活,可以根据需要动态地生成格式化字符串。类,用于支持模板字符串的格式化。这种方法可以通过指定占位符来替换字符串中的值。方法传入字典形式的参数,将占位符替换为相应的值,生成最终的格式化字符串。方法的功能相同,但是如果在字典中找不到对应的键值,它不会引发。在上面的例子中,我们创建了一个模板字符串,并使用。

weixin_40458518的博客 1859

VSCode 1.85便携版安装与配置:解决远程服务器glibc版本过低报错的保姆级指南

本文详细介绍了如何通过VSCode 1.85便携版解决远程服务器glibc版本过低导致的兼容性问题。通过环境隔离和版本固化的方法,开发者可以在老旧服务器上稳定运行Remote-SSH插件,同时保留主力VSCode的配置。文章提供了从下载安装到深度配置的完整指南,帮助用户快速搭建稳定的开发环境。

weixin_30279315的博客 578

东方财富个股实时行情爬虫实战:从入门到精通,手把手教你构建股票数据采集系统

在量化投资、股市分析和数据挖掘等领域,获取实时、准确的股票行情数据是第一步也是至关重要的一步。东方财富网作为国内最大的财经门户网站之一,提供了丰富的股票数据和实时行情接口。本文将带你从零开始,构建一个完整的东方财富个股实时行情爬虫系统,涵盖股票代码遍历、JSON接口分析、反爬虫策略应对、数据持久化存储等核心技术点。目录前言一、项目背景与目标1.1 为什么要爬取东方财富数据?1.2 项目目标1.3 技术栈二、接口分析与逆向工程2.1 寻找真实数据接口2.2 简化接口2.3 字段含义对照表三、股票代码获取。

2201_76125261的博客 147

python字符串格式化

对于字符串格式化的常见三种方式

ex_6450的博客 3万+

FPGA/IC 秋招笔试/面试题总结(续)

FPGA/IC 秋招笔试/面试题总结(续)来啦… 文章目录二十七、状态机1. Moore/Mealy状态机2.一、二、三段式状态机 二十七、状态机 1. Moore/Mealy状态机 (1)Moore状态机: 输出只由当前状态决定,即次态=f(现态。输入),输出=f(现态) Moore型状态机的输出信号是直接由状态寄存器译码得到的。 Moore型状态机检测序列1101如下 Moore型状态机输出函数只由状态变量决定,想要输出Z=1,必须S4状态形成,即寄存器中的1101都打进去后才可以。输出Z=1会在

Crazzy_M的博客 2万+

python格式化字符串

格式化字符串是什么? Python字符串的格式化处理主要是用来将变量(对象)的值填充到字符串中,在字符串中解析Python表达式,对字符串进行格式化显示(左对齐、右对齐、居中对齐,保留数字有效位数)。 使用占位符格式化字符串: 常见的占位符有: %d (整型) %f (浮点型) %s (字符串) 例子: name='小明' age=18 height=1.74 print('我的名字叫%s,今年%d岁了,身高%f米'%(name,age,height)) 注意:%f默认是输出小数点后.

HHYZBC的博客 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python 中的 字符串格式化

Python 中的 字符串格式化1. 字符串格式化的种类2. % 格式化方式3. % 格式化方式例子4. format 格式化方式5. format 格式化方式例子 1. 字符串格式化的种类 Python 的字符串格式化有两种方式: % 格式符方式,format 方式 2. % 格式化方式 %[(name)][flags][width].[precision]typecode (na...

YKenan的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python的三种字符串格式化方法

Python的三种字符串格式化方法 一、%格式化 实例代码: print("我叫 %s, 今年 %u 岁了..." % ('dycc', 99)) # 我叫 dycc, 今年 99 岁了... python字符串格式化符号: 符号 描述 %c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整数 %u 格式化无符号整数 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大写) %f 格式化浮点数,可指定小数点后精

柚子树's Blog 4338

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python字符串格式化

字符串格式化是我们在使用Python中经常用到的功能。Python为我们提供了四种格式化字符串的方法,分别是%运算符、字符串format方法、格式化字符串字面值以及模板字符串。

cpxsxn的博客 4804

【python】字符串格式化

在Python中,字符串格式化是一种将变量或表达式嵌入到字符串中的技术。Python提供了多种字符串格式化的方法,包括百分号格式化、str.format()方法和f-string(格式化字符串字面量)。

morris 1万+

总结Python中的字符串格式化

> 正式的Python专栏第22篇,同学站住,别错过这个从0开始的文章! 前篇分析了字符串的简单使用,这篇我们看看字符串的格式化 # []() 什么是字符串格式化,为什么需要这样做? > 我们有时候刷抖音/B站看到封面很好看,但是进入直播发现,不过如此! > 想必主播通过某种方式把输出转换为读者想看的内容。 是不是大概懂了什么是格式化和格式化的必要性了!

持续学习持续开发,我是雷学委! 1164

【Python】格式化字符串

在Python中,我们通常使用字符串的格式化方法来将变量值插入到字符串中,以便于我们后续的使用,我们通常将字符串格式化用来输出,Python也提供了多种格式化输出的方式,其中包括。是一种更强大、更灵活的字符串格式化方式,相较于旧式字符串格式化(%操作符),更推荐在新代码中使用,因为它提供了更多的功能和更易读的语法。里面都是这样,有的里面并没有精度,有的不能指定填充符等,需要合理运用,或则自己进行总结。需要指出的是,上面基本用法的示例代码也是使用了位置参数,当我们没有在花括号。使用该方法,我们需要。

qq_63215420的博客 3073

【python】之字符串格式化

python字符串的格式化(建议初学者收藏)

m0_67388084的博客 3536

python字符串格式化是什么意思_python字符串格式化什么意思

python字符串格式化什么意思python字符串格式化的意思就是用format函数格式化字符串的用法。 用法:它通过{}和:来代替传统%方式。使用位置参数 要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开。java中字符串为什么要格式化??格式化是什么意思?格式化是根据业务需要进行的。像时间字符串或者特殊意思的ID,对他们进行格式...

weixin_39815879的博客 5935

python3中字符串的格式化

python3中字符串的格式化

wojiaxiaohuang2014的博客 999

python 字符串格式化变量_Python之format字符串格式化

1.字符串连接>>> a = 'My name is ' + 'Suen'>>> a'My name is Suen'>>> a = 'My name is %s'%'Suen'>>> a'My name is Suen'>>> a = 'My name is %s, Age:%d'%('Suen', 18)...

weixin_34673225的博客 381

Python字符串相加以及字符串格式化

1、在Python中字符串a占用一块内存地址,字符串b也占用一块内存地址,当字符串a+b时,又会在内存空间中开辟一块新的地址用来存放a+b。 a 地址一 b 地址二 a+b 地址三 因此内存中就占了三份空间,对内存消耗是很大的因此尽量使用字符串格式化来进行字符拼接。 2、字符串格式化 a、常见的占位符 %d:整数 %f:浮点数 %s:字符串 %x:十六进制整数 b、其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数: print('%2d-%02d'%(3,1)):'3-01' print

python学习者的博客 1644
上一篇: Python爬取拉勾网数据并进行数据可视化
下一篇: Python零基础爬虫教程(实战案例手把手Python爬虫教学)
Python_trys
博客等级 码龄2年 4380粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值