python学习笔记四:字符串格式化

字符串格式化:%,左侧放字符串,右侧放希望被格式化的值,通常为元组

>>> format
= "Hello, %s, %s enough for ya?"

>>> values
= (‘world‘, ‘Hot‘)

>>> print
format % values

Hello, world, Hot
enough for ya?

如果在格式化字符串里面包括百分号,那么必须使用%%

模板字符串:类似于shell中的变量替换

1)  >>> from
string import Template

>>>
s = Template(‘$x, galourious $x!‘)

>>>
s.substitute(x=‘slurm‘)

‘slurm,
galourious slurm!‘

2)如果替换字段只是一部分则参数名需要用括号括起来

>>>
s = Template("It‘s ${x}tastic!")

>>>
s.substitute(x=‘slurm‘)

"It‘s
slurmtastic!"

3)使用$$ 插入美元符号

>>>
s = Template("Make $$ selling $x!")

>>>
s.substitute(x=‘slurm‘)

‘Make
$ selling slurm!‘

4)使用字典变量提供值/名称对

>>>
s = Template(‘A $thing must never $action‘)

>>>
d = {}

>>>
d[‘thing‘] = ‘gentleman‘

>>>
d[‘action‘] = ‘show his socks‘

>>>
s.substitute(d)

‘A
gentleman must never show his socks‘

如果右操作数为元组,其中每一元素都要被格式化,每个值都需要一个对应的转换说明符

>>>
‘%s plus %s equals %s‘ % (1, 1, 2)

‘1
plus 1 equals 2‘

基本转换说明符

1)简单转换

#%s字符串

>>>
‘Price of eggs : $%s‘ % 42

‘Price
of eggs : $42‘

#%x,不带符号的十六进制

>>>
‘Hexadecimal Price of eggs : %x‘ % 42

‘Hexadecimal
Price of eggs : 2a‘

#%f,十进制浮点数

>>>
from math import pi

>>>
‘Pi : %f....‘ % pi

‘Pi
: 3.141593....‘

#%i,带符号的十进制整数

>>>
‘very inexact estimate of pi : %i‘ % pi

‘very
inexact estimate of pi : 3‘

#%s,字符串(使用str转换任意Python对象)

>>>
‘Using str : %s‘ % 42L

‘Using
str : 42‘

#%r,字符串(使用repr转换任意Python对象)

>>>
‘Using repr: %r‘ % 42L

‘Using
repr: 42L‘

2)字符宽度和精度

字符宽度:转换后的值所保留的最小字符个数

精度:(对于数字转换)结果中应包含的小数位数

(对于字符串转换来说)转换后的值所能包含的最大字符个数

表示格式:字符宽度.精度,若给出精度,则必须包含点号

>>>
‘%.5s‘ % ‘Guido van Rossum‘

‘Guido‘

使用*(星号)作为字段宽度或者精度,此时数值会从元组参数中读出

>>>
‘%.*s‘ % (5, ‘Guido Van Rossum‘)

‘Guido‘

3)符号、对齐和补充

在字段宽度和精度值之前,还可以放置一个“标志”,该标志可以是零、加号、减号或空格

>>>
‘%010.2f‘ % pi

‘0000003.14‘          =>包含小数点位

-减号表示左对齐

示例:

#!
/usr/bin/env python

width
= input(‘Please enter width: ‘)

price_width
= 10

item_width
= width - price_width

header_format
= ‘%-*s%*s‘

format
= ‘%-*s%*.2f‘

print
‘=‘ * width

print
header_format % (item_width, ‘Item‘, price_width, ‘Price‘)

print
‘-‘ * width

print
format % (item_width, ‘Apples‘, price_width, 0.4)

print
format % (item_width, ‘Pears‘, 
price_width, 0.5)

print
format % (item_width, ‘Cantaloups‘, price_width, 1.92)

print
format % (item_width, ‘Dried Apricots(16 oz.)‘, price_width, 8)

print
format % (item_width, ‘Prunes(4 lbs)‘, price_width, 12)

print
‘=‘ * width

[[email protected]
wangdong]# python format_str.py

Please enter width:
35

===================================

Item                          Price

-----------------------------------

Apples                         0.40

Pears                          0.50

Cantaloups                     1.92

Dried Apricots(16
oz.)         8.00

Prunes(4 lbs)                 12.00

===================================

时间: 2024-11-03 19:33:19

python学习笔记四:字符串格式化的相关文章

Python学习:12.字符串格式化

字符串格式化 讲解Python这么久,也没有讲解Python的字符串的格式化,那我们今天就来了解一下python字符串格式化的强大之处. 字符串格式化的两种方式 百分号方式和format方式,百分号方式比较老,而format方式是比较先进的,企图替代古老的方式,目前两者共存,接下来我们就针对这两种方式进行讲解. 1.百分号方式 name = 'alexsel' print('name: %s'%name) 这是使用百分号方式输出变量的简单写法,百分号方式内部还有很多可选参数. %[(name)]

Python学习笔记(字符串)

一变量 1创建变量:d=4   表示将整型对象‘4’赋值给变量d 记住:一切数据都是对象 记住:一切变量都是数据对象的一个引用 分析:Python内部的引用计数.sys.getrefcount 2变量命名规范: (1)只能用字母和下划线 (2)不能用关键字如if等 (3)大小写敏感 3赋值: 记住多态特性 多重赋值 删除:del 一个等号=是赋值,两个等号==是比较 注意:三内置必须用熟.type,help,dir 4常用基本数据类型: (1)    int整型 (2)    boolean布尔

python学习笔记(二)-字符串方法

python的字符串内建函数: #====================常用方法=============================name = 'besttest' new_name = name.strip() #默认是去掉两边的空格和换行符 new_name= name.lstrip() #默认是去掉左边的空格和换行符 new_name= name.rstrip()#默认是去掉右边边的空格和换行符 new_name = name.count('t')#查找某个字符串在字符串里面出现

python学习笔记(四)列表、元组、字符串及字典

1.列表及元组操作 1.1 列表 Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 定义列表: 1 >>> namelist = ['cc','uu','tt','yy','nn'] 变量namelist就是一个list.用len()函数可以获得list元素的个数: 1 >>> print(len(namelist)) 1.1.1 list取值 用索引来访问list中每一个位置的元素,记得索引是从0开始的: 1 &

python 学习笔记day04-python字符串、列表、元组

字符串 序列 序列类型操作符 序列操作符 作用 seq[ind] 获得下标为ind的元素 seq[ind1:ind2] 获得下标从ind1到ind2间的元素结合 seq * expr 序列重复expr次 seq1 + seq2 连接序列seq1和seq2 obj in seq 判断obj元素是否包含在seq中 obj not in seq 判断obj元素是否不包含在seq中 内建函数 函数 含义 list(iter) 把可迭代对象转换为列表 str(obj) 把obj对象转换成字符串 tuple

python学习笔记一--字符串

一.字符串: (一)字符串里单个元素的操作 1. 单个字符(元素)的序列组合. 2. 序列:单个字符的位置 3. 序列的操作:内置函数len获取长度,加位置索引 4. 获取字符串的里的元素:正向索引+反向索引 (二)字符串里多个元素的操作:分片 1. X[I:J]:取出X中从偏移量为I,直到但不包括偏移量为J的元素. 2. 一个分片中,左边界默认为0,并且右边界默认为分片序列的长度. 3. 作为序列,字符串支持使用加号进行合并,或重复. (三)字符串的内置方法及函数的调用: 1. 查询字符串支持

python学习笔记(四):函数

一.函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method. 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 二.使用函数的好处: 1.简化代码2.提高代码的复用性3.代码可扩展 三.p

Python学习笔记四(迭代器、生成器、内置函数)

一.迭代器 1.迭代器定义 迭代是一个重复的过程,每次重复一次迭代,并且每次迭代的结果都是下一次迭代的初始值. l = ["aaa","bbb","ccc"] count = 0 while count< len(l): #每次重复完成后count都是下一次的初始值 print(l[count]) count+=1 需要迭代器的原因:对于序列类型str.list.tuple可以依赖索引迭代取值,对于dict.set.文件需要提供不依赖索引取

Python学习笔记四

参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 Python高级特性 一.切片 如果要取出一个列表或元组的部分元素,可以通过直接下标方法: lista=['apple','banana','cherry'] lista[0] lista[1] lista[2] 但如果要取再多个,或者前面(后面)多少个,或中间多少个,直接访问的方法就很不方便了. Python