python字符串

字符串是若干字符的序列。

字符串是不可变的。

创建一个字符串:

>>> water = 'water water EveryWhere'
>>> water
'water water EveryWhere'

本文目录

  • 1 索引 切片
  • 2 遍历字符串
  • 3 in
  • 4 """
  • 5 操作字符串的一些函数

索引 切片

类似于列表,可以对字符串进行索引和切片(截取)。

字符串中,第1个字母的索引是0,第2个字母的索引是1……

也可以使用负索引,最后1个字母的索引是-1,倒数2个字母的索引时-2……

>>> water
'water water EveryWhere'
>>> water[0]
'w'
>>> water[-1]
'e'
>>> water[4:]
'r water EveryWhere'
>>> water[:9]
'water wat'
>>> water[4:9]
'r wat'

对于切片操作,包含第一个字母,而不包含最后一个字母。

字符串是不可变的,虽然我们可以对变量重新赋值,但不可以修改字符串:

>>> water
'water water EveryWhere'
>>> water[2] = 'b' # 修改字符串
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> water = 'abc' # 对变量water重新赋值
>>> water
'abc'

遍历字符串

可以使用while循环遍历字符串:

>>> index = 0
>>> while index < len(water):
...     print ('%2d: %s' % (index, water[index]) )
...     index = index + 1
... 
 0: w
 1: a
 2: t
 3: e
 4: r
 5:  
 6: w
 7: a
 8: t
 9: e
10: r
11:  
12: E
13: v
14: e
15: r
16: y
17: W
18: h
19: e
20: r
21: e

其中,print()函数中%2d表示占两个字符宽度的整数。len()函数返回字符串中字符的个数。

这里例子中通过变量index的自增,通过string[index]的形式遍历字符串。

也可以使用for循环遍历字符串:

>>> water
'water water EveryWhere'
>>> for letter in water:
...     print (letter)
... 
w
a
t
e
r

w
a
t
e
r

E
v
e
r
y
W
h
e
r
e

in

使用in判断字符串是否在某个字符串中:

>>> water
'water water EveryWhere'
>>> 'ate' in water
True

"""

有的时候需要输入多行字符串,这个时候就需要使用"""了:

>>> water = """
... water
... water
... EveryWhere
... """
>>> water
'\nwater\nwater\nEveryWhere\n'
>>> print (water)

water
water
EveryWhere

>>> 

操作字符串的一些函数

使用S.lower()将字符串S中的所有字母转换为小写字母,并且作为新字符串返回。

>>> water
'water water EveryWhere'
>>> water_lower = water.lower()
>>> water_lower
'water water everywhere'
>>> water
'water water EveryWhere'

使用S.upper()将字符串S中所有字母转换为大写字母,并且作为新字符串返回。

>>> water
'water water EveryWhere'
>>> water.upper()
'WATER WATER EVERYWHERE'

S.count(sub, start, end)返回字符串S的切片(起于start,终于end(不包括),且这两个参数可选)中字符串sub的个数。

>>> water
'water water EveryWhere'
>>> water.count ('er')
4
>>> water.count ('er', 5)
3
>>> water.count ('er', 5, 8)
0

S.count(sub, start, end)返回字符串S的切片(其余start,终于end(不包括),且这两个参数可选)中第一次出现字符串sub的正索引。如果没有,返回-1.

>>> water
'water water EveryWhere'
>>> water.find('er')
3
>>> water.find('er', 4)
9
>>> water.find('er', 4, 7)
-1

S.replace (old, new, count),将字符串S中的字符串old替换为字符串new,并作为新字符串返回。参数count可选,如果它被指定,则替换不会超过count次。

>>> water
'water water EveryWhere'
>>> water.replace ('wat', 'taw')
'tawer tawer EveryWhere'

S.lstrip(chars)删除字符串S左侧的字符串chars或者空白字符(chars未指定),并作为新字符串返回。

S.rstrip(chars)删除字符串S右侧的字符串chars或者空白字符(chars未指定),并作为新字符串返回。

S.strip(chars)在字符串S上执行S.lstrip(chars)S.rstrip(chars)

>>> monkey
' diu diu diu diu '
>>> monkey.lstrip()
'diu diu diu diu '
>>> monkey.rstrip()
' diu diu diu diu'
>>> monkey.strip()
'diu diu diu diu'

原文发布于微信公众号 - mwangblog(mwangblog)

原文发表时间:2018-02-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏柠檬先生

Python 基础 变量和数据类型

  python 数据类型       一,整数,可以出来任意大小的整数。 如 1, 100, -8080,0 等等。       二,浮点数,浮点数也可以被成...

22360
来自专栏java学习

Java基础第四天学习笔记

for循环示例: /* * A:循环结构的分类 * for,while,do...while * B:循环结构for语句的格式: * for(初始化表达...

35370
来自专栏猿人谷

sizeof和strlen的区别

第一个例子:  char *ss="0123456789";    sizeof(ss)=4, ss是指向字符串常量的字符指针。    sizeof(*s...

21780
来自专栏黑泽君的专栏

正则表达式的规则

8930
来自专栏老马说编程

(88) 正则表达式 (上) / 计算机程序的思维逻辑

上节我们提到了正则表达式,它提升了文本处理的表达能力,本节就来讨论正则表达式,它是什么?有什么用?各种特殊字符都是什么含义?如何用Java借助正则表达式处理文本...

20680
来自专栏数据结构与算法

08:字符替换

08:字符替换 总时间限制: 1000ms 内存限制: 65536kB描述 把一个字符串中特定的字符全部用给定的字符替换,得到一个新的字符串。 输入只有一...

39050
来自专栏Albert陈凯

函数–函数字面量的一些简化写法及报错解析

scala 下划线解析报错: missing parameter type for expanded function 本文首先介绍下eta-expansion...

35650
来自专栏Bingo的深度学习杂货店

Python3 内置函数

str1 = 'I love you' print(str1[:6]) # I love str2 = str1[:2] + 'very ' + str1...

28460
来自专栏柠檬先生

Java 流程控制

Java 主要的流程控制语句有3钟,选择语句,循环语句,跳转语句。 Java 中的作用域,是一对用花括号括起来的,块定义了变量使用的范围,   各个块之间可以嵌...

21570
来自专栏开源优测

[快学Python3]List(列表)

概述 List(列表)是Python最常用的数据类型,它使用方括号[]来标识,下面我们看一个基本的列表创建示例: list1 = [1, 2, 3, u"Dee...

306110

扫码关注云+社区

领取腾讯云代金券