Python3学习笔记(六):字符串
一、基本字符串操作
所有标准的序列操作(索引、分片、乘法、判断成员资格、求长度、取最小值和最大值)对字符串同样适用。但是字符串是不可改变的。
二、字符串格式化
字符串格式化使用字符串格式化操作符(%)来实现。
1、格式化一个值:
>>> "Hello,%s" % 'world'
'Hello,world'
2、格式化多个值:
元组或字典实现:
>>> print("Hello,%s. %s enough for ya?" % ('world','Hot'))
Hello,world. Hot enough for ya?
3、字符串格式化规则
- %字符:标识转换说明符的开始。
- 转换标志(可选):- 表示左对齐;+ 表示在转换的值前加上正负号;" "(空白字符)表示正数之前保留空格;0 表示转换值若位数不够则用0填充。
- 最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度从值元组中读取。
- 点(.)后跟精度值(可选):如果转换的是实数,精度值就表示小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将从元组中读取。
- 转换类型:
| 转换类型 | 含义 |
|---|---|
| d,i | 带符号的十进制数 |
| o | 不带符号的八进制数 |
| u | 不带符号的十进制数 |
| x | 不带符号的十六进制数(小写) |
| X | 不带符号的十六进制数(大写) |
| e | 科学计数法表示的浮点数(小写) |
| E | 科学计数法表示的浮点数(大写 ) |
| f,F | 十进制浮点数 |
| g | 如果指数大于-4或者小于精度值则和e相同,其他情况与F相同 |
| G | 如果指数大于-4或者小于精度值则和E相同,其他情况与F相同 |
| C | 单字符(接受整数或单字符串) |
| r | 字符串(使用repr转换任意python对象) |
| s | 字符串(使用str转换任意python对象) |
简单转换
只需写出转换类型:
>>> 'Price of eggs:%d' % 42
'Price of eggs:42'
>>> 'Hexadecimal price of eggs:%x' % 42
'Hexadecimal price of eggs:2a'
字段宽度和精度
- 字段宽度是转换后的值保留的最小字符个数。
- 字段精度,对于数字来说,是应该包含的小数位数;对于字符串来说,是转换后的值所能包含的最大字符个数。
- 这两个参数都是整数(首先是宽度,然后是精度),以点号(.)分隔。如果只给出精度,就必须包含.号
>>> '%10f' % 3.1415926
' 3.141593'
>>> '%10.2f' % 3.1415926
' 3.14'
>>> '%.2f' % 3.1415926
'3.14'
>>> '%.5s' % 'dhfuhduioshduio'
'dhfuh'
可以使用*做为字段宽度或精度,此时数值会从元组参数中读取
>>> '%.*s' % (5,'dhfuhduioshduio')
'dhfuh'
>>> '%*.*s' % (10,5,'dhfuhduioshduio')
' dhfuh'
符号、对齐和用0填充
在字段宽度和精度值之前还可以放一个标志,该标志可以是零(0),加号(+),减号(-)或空格
零(0)表示转换的值为数字时,不足宽度的部位将用0填充,转换的值为字符串时无影响
>>> '%010.2f' % 3.1415926
'0000003.14'
>>> '%010.5s' % 'udshkdsfhdkjf'
' udshk'
减号(-)表示左对齐数值
>>> '%-10.2f' % 3.1415926
'3.14 '
加号(+)表示不管是正数还是负数都表示出正负号
>>> '%+5d' % 10
' +10'
>>> '%+5d' % -10
' -10'
空格表示在正数前加上空格
>>> '% 5d' % 10
''
>>> '% 5d' % -10
' -10'
三、字符串方法
1、find
用于在一个长字符串中查找子串。返回子串所在位置的最左端索引。如果没有找到则返回-1
>>> title = "Monty Python's Flying Circus"
>>> title.find('Monty')
0
>>> title.find('Python')
6
>>> title.find('Flying')
15
>>> title.find('Zirquss')
-1
这个方法还可以接受可选的起始点和结束点参数,指定查找的字符串范围:
>>> subject = '$$$ Get rich now!!! $$$'
>>> subject.find('$$$')
0
>>> subject.find('$$$',1) # 指定查找的起始点
20
>>> subject.find('!!!')
16
>>> subject.find('!!!',0,16) # 指定查找的起始点和结束点
-1
2、join
用于连接序列中的元素,被连接的元素都必须是字符串
>>> dirs = '','usr','bin','env'
>>> '/'.join(dirs)
'/usr/bin/env'
>>> seq = ['','','','','']
>>> '+'.join(seq)
'1+2+3+4+5'
>>> seq = [1,2,3,4,5]
>>> '+'.join(seq)
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
'+'.join(seq)
TypeError: sequence item 0: expected str instance, int found
3、lower
用户返回字符串的小写字母
>>> 'HELLO WORLD!'.lower()
'hello world!'
4、replace
用于替换字符串中的字符
>>> 'This is a test'.replace('is','eez')
'Theez eez a test'
5、split
用于将字符串分割成序列
>>> '1+2+3+4+5'.split('+')
['', '', '', '', '']
>>> '/usr/bin/env'.split('/')
['', 'usr', 'bin', 'env']
6、strip
用于去除字符串两侧(不包括内部)空格的字符串
>>> ' hello world! '.strip() 'hello world!'
Python3学习笔记(六):字符串的更多相关文章
- python3学习笔记之字符串
字符串 1.一个个字符组成的有序的序列,是字符的集合: 2.使用单引号.双引号.三引号引住的字符序列 3.字符串是不可变对象 4.python3起,字符串就是Unicode类型: 字符串特殊举例: 不 ...
- python3学习笔记六(元组)
元组 创建空元组 tup1 = () #空元组print(type(tup1))print(tup1) tup2 = (10)tup3 = (10,)print(type(tup2)) #不加逗号,类 ...
- python3.4学习笔记(六) 常用快捷键使用技巧,持续更新
python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- Typescript 学习笔记六:接口
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- python3学习笔记(7)_listComprehensions-列表生成式
#python3 学习笔记17/07/11 # !/usr/bin/env python3 # -*- conding:utf-8 -*- #通过列表生成式可以生成格式各样的list,这种list 一 ...
- python3学习笔记(6)_iteration
#python3 学习笔记17/07/10 # !/usr/bin/env python3 # -*- coding:utf-8 -*- #类似 其他语言的for循环,但是比for抽象程度更高 # f ...
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
- Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
Python3学习笔记(urllib模块的使用) 1.基本方法 urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, ...
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
随机推荐
- Java static基本认知
一. static的用途 在Java编程思想中有这么一句话:“static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅 ...
- Luogu P1650 田忌赛马
题目 如果我们最大比对面最大大,那么直接用. 如果我们最小比对面最小大,那么直接用. 否则用我们最小去换对面最大. #include<bits/stdc++.h> using namesp ...
- 解决移动端浏览器 HTML 音频不能自动播放的三种方法
https://blog.csdn.net/PY0312/article/details/90349386 由于Android,IOS移动端的浏览器以及微信自带的浏览器为了用户更好的体验,规定不自动播 ...
- 优化 JS 条件语句及JS 数组常用方法, ---- 看完绝对对日后开发有用
前言: 日常所说的优化优化.最后我们到底优化了哪些,不如让我们从代码质量开始:个人觉得简洁简化代码其实觉得存在感挺强烈的QAQ 1. 获取URL中 ?后的携带参数: 这是我见过最简洁的了,若有更简洁的 ...
- python format格式化函数用法
python format格式化函数用法 原文 Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能. 基本语法是通过 {} 和 : 来代替以前 ...
- C++循环单链表删除连续相邻重复值
比如:1(头)->2->2->3->3->1->1(头) 去除以后的结果是1->2->3,注意头尾的1也要去掉一个. #include "st ...
- Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion' has value '1.8', but '1.7'
第一种方法:安装1.8之前安装了1.7,将1.7卸载就好了. 第二种方法:删掉Windows\System32下的java.exe, javaw.exe 就行了,但是安装的1.8的jdk会回到1.7的 ...
- poj1419 Graph Coloring 最大独立集(最大团)
最大独立集: 顶点集V中取 K个顶点,其两两间无连接. 最大团: 顶点集V中取 K个顶点,其两两间有边连接. 最大独立集=补图的最大团最大团=补图的最大独立集 #include<iostream ...
- Maven灵活构建(转载)
https://blog.csdn.net/sin90lzc/article/details/7552033
- 测试工具Telerik Test Studio发布R2 2019|支持VS 2019
Telerik Test Studio是一个用于功能性Web.桌面和移动测试的直观测试自动化工具,它能轻松地实现自动化测试.同时会为GUI.性能.加载和API测试提供完整的自动化测试解决方案. |更多 ...