文档章节

Python-字符串

漂泊尘埃
 漂泊尘埃
发布于 2016/10/27 22:35
字数 683
阅读 5
收藏 0
  • 字符串不可变

引号

单双引号都一样:

s = "hello"
s = 'hello'

单双引号互相嵌套

s = 'hello "world" !'
s = "hello 'world' !"

多行文本(常用于包含像HTML或XML这样的内容):

>>> s = """aaaaa
... bbbbb'a'a'a
... ccccc"""
>>> s
"aaaaa\nbbbbb'a'a'a\nccccc"

长度和下标访问

>>> s = "hello"
>>> len(s)
5
>>> s[0]
'h'
>>> s[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range

不适用于中文字符串:

>>> s = "你好"
>>> s[0]
'\xe4'
>>> s[1]
'\xbd'
>>> len(s)
6

反向索引

>>> s = "hello"
>>> s[-1]
'o'
>>> s[-2]
'l'
>>> s[len(s)-1]
'o'

分片

>>> s = "abcdefg"
>>> s[1:3]
'bc'

包括左边界1但不包括右边界3.

默认值:左边界默认为0,右边界默认为字符串长度。

还可以有第三个参数,表示步进,步进的默认值为1:

>>> s = 'abcdefg'
>>> s[1:len(s):2]
'bdf'

步进还可以是负值:

>>> s[len(s):0:-2]
'gec'

字符串连接

>>> s1 = "abc"
>>> s2 = "def"
>>> s1 + s2
'abcdef'
>>> s1 * 3
'abcabcabc'
>>> title = "Meaning " 'of' " Life"
>>> title
'Meaning of Life'

字符串查找

s.find("")  # 返回下标,如果找不到,返回-1
s.index("")  # 返回下标,如果找不到,报错

不转义

使用原始(raw)字符串常量,去掉反斜线转义机制。

>>> path = r'C:\new\text.data'
>>> path
'C:\\new\\text.data'

转换

>>> int("42"), str(42)
(42, '42')
>>> float("1.5"), str(3.14)
(1.5, '3.14')

ASCII码转换:

>>> ord('s')
115
>>> chr(115)
's'

格式化

>>> 'That is %d %s bird!' % (1, 'dead')
'That is 1 dead bird!'

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

typecode取值如下:

代码意义
s字符串或任意对象
rs, 但使用repr而不是str
c字符
d十进制整数
i整数
u无符号(整数)
o八进制整数
x十六进制整数
Xx,但打印大写
e浮点指数
Ee,大写
f浮点数
F浮点数
ge或f
GE或f
%常量%

flags取值:

  • 左对齐 '%-6d' % 1234 => '1234 '
  • 正负号 '%+6d' % 1234 => ' +1234'
  • 0 补零 '%06d' % 1234 => '001234'

浮点数:

>>> x = 1.23
>>> '%-6.2f | %05.2f | %+06.1f' % (x, x, x)
'1.23   | 01.23 | +001.2'

使用 * 指定从参数列表中获取width和precision:

>>> '%f, %.2f, %.*f' % (1/3.0, 1/3.0, 4, 1/3.0)
'0.333333, 0.33, 0.3333'

使用字典填充:

>>> '%(n)d %(x)s' % {"n":1, "x":"spam"}
'1 spam'

字符串help

>>> dir(s)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__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']

具体某个属性的作用:

>>> help(s.find)

Help on built-in function find:

find(...)
    S.find(sub [,start [,end]]) -> int

    Return the lowest index in S where substring sub is found,
    such that sub is contained within S[start:end].  Optional
    arguments start and end are interpreted as in slice notation.

    Return -1 on failure.

模式匹配

import re

match = re.match("Hello[ \t]*(.*)world", "Hello python world")

print(match.groups())  # ('python ',)

print(match.group(1))  # python 0是整个字符串

© 著作权归作者所有

漂泊尘埃

漂泊尘埃

粉丝 6
博文 38
码字总数 76552
作品 0
朝阳
私信 提问
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转...

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

木雨山
2012/09/13
0
0
巧用 python 脚本控制你的C程序(首发在我的博客园)

http://www.cnblogs.com/haippy/archive/2011/09/17/2179902.html python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要...

大卷卷
2011/09/22
0
0
【Python】Python2与Python3的不同

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/roguesir/article/details/76736474 前言 Python作为一种了解各种语言的胶水语言,以其自身优势在系统开发、w...

roguesir
2017/08/05
0
0
示例解读 Python 2 和 Python 3 之间的主要差异

每门编程语言在发布更新之后,主要版本之间都会发生很大的变化。 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化。 本教程主要介绍...

达尔文
2018/08/23
3.1K
5
Python内置的字符串处理函数整理

Python内置的字符串处理函数整理 27 May 2011 16:30 Friday by 小屋标签: 函数 字符串 Python 字符串处理 收集常用的Python 内置的各种字符串处理 函数的使用方法 str='python String funct...

行者深蓝
2014/02/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

偶遇 JDK 1.8 还未修复的 SecureRandom.getInstance("SHA1PRNG") 之 bug

楼主今天兴高采烈的在部署环境,下载 JDK,打包项目,上传至服务器。 配置 JDK ,打包上传项目楼主就不在这里重复了,读者自行解决哈! 1. 启动项目 java -jar xxxx.jar 令楼主没有想到的是:...

Ryan-瑞恩
16分钟前
7
0
【更新】Stimulsoft Reports v2019.3.1发布,新增对OData v4的支持功能

下载Stimulsoft Report.Ultimate v2019.3.1试用版 集所有报表解决方案于一体的综合性平台 Stimulsoft Reports.Ultimate是集所有报表解决方案于一体的综合性平台,拥有在JavaScript、ASP.NET...

xiaochuachua
16分钟前
1
0
JVM源码分析之javaagent原理完全解读

JVM源码分析之javaagent原理完全解读 概述 本文重点讲述javaagent的具体实现,因为它面向的是我们Java程序员,而且agent都是用Java编写的,不需要太多的C/C++编程基础,不过这篇文章里也会讲...

BryceLoski
22分钟前
1
0
git记住密码

git取消记住密码 git config --system --unset credential.helper git记住密码 git config --global credential.helper store...

大灰狼wow
24分钟前
2
0
java 面试知识点笔记(十四)异常体系

问:Error和Exception的区别? ps:Throwable上层是Object Error:程序无法处理的系统错误,编译器不做检查 Exception:程序可以处理的异常,捕获后可能恢复 RuntimeException:不可预知的,...

断风格男丶
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部