一、创建字符串

  1. >>> s1 = '12345'
  2. >>> s1
  3. '12345'
  4. >>> s2 = str(12345)
  5. >>> s2
  6. '12345'
  7. >>> s3 = str([1, 2, 3, 4, 5])
  8. >>> s3
  9. '[1, 2, 3, 4, 5]'
  10. >>> s4 = str({'one': 1, "two": 2, "three": 3})
  11. >>> s4
  12. "{'one': 1, 'two': 2, 'three': 3}"

二、格式化字符串

第一种方式:

  1. >>> s1 = 'wang'
  2. >>> s2 = 10
  3. >>> s3 = 'hello'
  4. >>> s4 = s1 + s2 + s3
  5. Traceback (most recent call last):
  6. File "<console>", line 1, in <module>
  7. TypeError: must be str, not int
  8. >>> s4 = s1 + str(s2) + s3
  9. >>> s4
  10. 'wang10hello'

第二种方式:

  1. >>> s5 = '%s%d%s' % (s1, s2, s3)
  2. >>> s5
  3. 'wang10hello'

Python中字符串格式化符号:

格式化操作辅助符号:

  1. >>> num = 100
  2. >>> '%x' % num
  3. '64'
  4. >>> '%X' % num
  5. '64'
  6. >>> '%#x' % num
  7. '0x64'
  8. >>> '%#X' % num
  9. '0X64'
  1. >>> pi = 3.1415926
  2. >>> '%.4f' % pi
  3. '3.1416'
  4. >>> '%5.2f' % pi
  5. ' 3.14'
  1. >>> pi = 3.141592
  2. >>> '%*s' % (10, pi)
  3. ' 3.141592'
  1. >>> d = {'one': 1}
  2. >>> "%(one)s" % d
  3. '1'

第三种方式:

  1. >>>"{0} is {1} years old".format("Wilber", 28) # 位置参数
  2. 'Wilber is 28 years old'
  1. >>> "{name} is {age} years old".format(name = "Wilber", age = 28) # 关键字参数
  2. 'Wilber is 28 years old'
  1. >>> li = ["Wilber", 28]
  2. >>> "{0[0]} is {0[1]} years old".format(li) # 下标参数
  3. 'Wilber is 28 years old'

format格式化字符串的一般形式如下:

"... {field_name!conversion:format_spec} ..."

从上面的代码可以看到,格式化字符串可分为 field_name、conversion、format_spec 三部分,分别对应替换字段名称(索引)、转换标志、格式描述。其中,字段名称是必选的,而后两者是可选的。转换标志紧跟在英文感叹号后面,而格式描述紧跟在英文冒号后面。

前面已经提到过,字段名称既可是位置索引,也可是关键字索引。字段名称后面可以通过点来访问属性,或通过方括号来访问元素。

在这里,我们重点看一下格式描述(format_spec)这一项。

格式描述中含有6个选项,分别是 fill、align、sign、width、precision、type。 它们的位置关系如下:

[[fill]align][sign][#][0][width][,][.precision][type]
fill 
可以是任意字符,默认为空格。

align 
仅当指定最小宽度时有效。

< 左对齐(默认选项)
> 右对齐
= 仅对数字有效;将填充字符放到符号与数字间,例如 +0001234
^ 居中对齐
sign 
仅对数字有效

+ 所有数字均带有符号
- 仅负数带有符号(默认选项)
 即空格;正数前面带空格,负数前面带符号
'#' 
只对整数有效

自动在二进制、八进制、十六进制数值前添加对应的 0b、0o、 0x。

',' 
自动在每三个数字之间添加 , 分隔符。

width 
十进制数字,定义最小宽度。如果未指定,则由内容的宽度来决定。

如果没有指定对齐方式(align),那么可以在 width 前面添加一个0来实现自动填充0,等价于 fill 设为 0 并且 align 设为 =。

precision 
用于确定浮点数的精度,或字符串的最大长度。不可用于整型数值。

type 
确定参数类型,默认为 s ,即字符串。

整数输出类型:

b:以二进制格式输出
c:将整数转换成对应的 unicode 字符
d:以十进制输出(默认选项)
o:以八进制输出
x:以十六进制小写输出
X:以十六进制大写输出
n:与 d 相同,但使用当前环境的分隔符来分隔每3位数字

十进制浮点数输出类型:

e:指数标记;使用科学计数法输出,用e来表示指数部分,默认 precision 为6
E:与 e 相同,但使用大写 E 来表示指数部分
f:以定点形式输出数值,默认 precision 为6
F:与 f 相同
g:通用格式;对于给定的 precision p >= 1,取数值的p位有效数字,并以定点或科学计数法输出(默认选项)
G:通用格式;与 g 相同,当数值过大时使用 E 来表示指数部分
n:与 g 相同,但使用当前环境的分隔符来分隔每3位数字
%:百分比标记;使用百分比的形式输出数值,同时设定 f 标记

  1. >>> '{:>8}'.format('3.14')
  2. ' 3.14'
  3. >>> '{:<8}'.format('3.14')
  4. '3.14 '
  5. >>> '{:^8}'.format('3.14')
  6. ' 3.14 '
  7. >>> '{:0>8}'.format('3.14')
  8. '00003.14'
  9. >>> '{:a>8}'.format('3.14')
  10. 'aaaa3.14'
  1. >>> '{:.4f}'.format(3.1415926)
  2. '3.1416'
  3. >>> '{:0>10.4f}'.format(3.1415926)
  4. '00003.1416'
  1. >>> '{:b}'.format(11)
  2. '1011'
  3. >>> '{:d}'.format(11)
  4. '11'
  5. >>> '{:o}'.format(11)
  6. '13'
  7. >>> '{:x}'.format(11)
  8. 'b'
  9. >>> '{:#x}'.format(11)
  10. '0xb'
  11. >>> '{:#X}'.format(11)
  12. '0XB'
  1. >>> '{:,}'.format(15700000000)
  2. '15,700,000,000'

  

三、字符串模板

  1. from string import Template
  2.  
  3. s = Template("Hi, $name! $name is learning $language")
  4. print(s.substitute(name="Wilber", language="Python"))
  5.  
  6. d = {"name": "Will", "language": "C#"}
  7. print(s.substitute(d))
  8.  
  9. # 用$$表示$符号
  10. s = Template("This book ($bname) is 17$$")
  11. print(s.substitute(bname="TCP/IP"))
  1. Hi, Wilber! Wilber is learning Python
  2. Hi, Will! Will is learning C#
  3. This book (TCP/IP) is 17$

  

python 字符串操作一的更多相关文章

  1. Python 字符串操作

    Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符 ...

  2. python字符串操作实方法大合集

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下:   #1.去空格及特殊符号 s.st ...

  3. 转 Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    转自: http://www.cnblogs.com/huangcong/archive/2011/08/29/2158268.html 黄聪:Python 字符串操作(string替换.删除.截取. ...

  4. Python 字符串操作及string模块使用

    python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...

  5. python字符串操作总结

    python中有各种字符串操作,一开始python有个专门的string模块,要使用需先import string.后来从python2.0开始,string方法改用str.method()形式调用, ...

  6. 『无为则无心』Python序列 — 17、Python字符串操作常用API

    目录 1.字符串的查找 @1.find()方法 @2.index()方法 @3.rfind()和rindex()方法 @4.count()方法 2.字符串的修改 @1.replace()方法 @2.s ...

  7. python 字符串操作。。

    #字符串操作 以0开始,有负下标的使用0第一个元素,-1最后一个元素,-len第一个元 素,len-1最后一个元素 name= "qwe , erw, qwe "print(nam ...

  8. Python 字符串操作,截取,长度

    1.字符串操作: 字符串长度: s = "; slen = len(s); 字符串截取: print s[:-:-] #截取,逆序隔1个取一个字符 print s[:-:-] #截取,逆序隔 ...

  9. python字符串操作、文件操作,英文词频统计预处理

    1.字符串操作: 解析身份证号:生日.性别.出生地等. 凯撒密码编码与解码 网址观察与批量生成 解析身份证号:生日.性别.出生地等 def function3(): print('请输入身份证号') ...

  10. python字符串操作2

    在python有各种各样的string操作函数.在历史上string类在python中经历了一段轮回的历史.在最开始的时候,python有一个专 门的string的module,要使用string的方 ...

随机推荐

  1. 重新认识一遍JavaScript

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. DataGuard备库ORA-01196故障恢复一则

    问题现象 在使用shutdown abort停DataGuard备库后.备库不能open,报ORA-01196错误. 详细例如以下: 发现一备库不能应用日志.查看备库日志没发现报错.怀疑是备库应用日志 ...

  3. jQuery操作得到DOM元素

    jQuery再DOM操作方面提供了一些函数及其用法,这里就对DOM元素的包装简单说明一下,怎样使用会了,对其它方法也能灵活的使用.以下是一个小样例及其效果图. 代码例如以下: <html xml ...

  4. Python——类的高级主题

    介绍关于类的一些高级主题,这些是可选的,在Python应用程序中,不会常常遇到. =========================================================== ...

  5. innodb 乐观插入因空间不够导致失败,进入悲观插入阶段,这个空间的大小限制

    btr_cur_optimistic_insert{ ... /*检查分裂页时是否有足够的空间预留给未来记录的update*/ if (leaf && !zip_size && ...

  6. 翻译:A Tutorial on the Device Tree (Zynq) -- Part IV

    获取资源信息 内核模块驱动加载之后,就开始把硬件资源管理起来,如读写寄存器.接收中断. 来看看设备树里的一条: xillybus_0: xillybus@50000000 { compatible = ...

  7. 云打印-Beta-凡事预则立

    凡事预则立 课程名称:软件工程1916|W(福州大学) 团队名称: 云打印 作业要求: 项目Beta冲刺(团队) 作业目标:Beta冲刺 团队队员 队员学号 队员姓名 个人博客地址 备注 221600 ...

  8. 检測磁盘驱动的健康程度SMART

    在server中,全部组件中一般最easy坏掉的就是磁盘.所以一般採取RAID来保证系统的稳定性,通过冗余磁盘的方式防止磁盘故障. 现代硬件驱动器一般支持SMART(自我监測分析和报告技术),它可以监 ...

  9. REST RPC HTTP vs 高性能二进制协议 序列化和通信协议

    edisonchou https://mp.weixin.qq.com/s/-XZXqXawR-NxJMPCeiNsmg .NET Core微服务之服务间的调用方式(REST and RPC) Edi ...

  10. dataTables-details 1.9

    本文共四部分:官网 | 基本使用|遇到的问题|属性表 一:官方网站:[http://www.datatables.net/] 二:基本使用:[http://www.guoxk.com/node/jqu ...