Python

字符串

字符串的定义

Python无需专门定义数据类型,直接给变量赋值一个字符串
字符串可以包含在单引号或双引号之间

>>> str1='abcd'
>>> str1
'abcd'
>>> 
>>> str2="abcdefg"
>>> str2
'abcdefg'

单双引号都可以用来定义字符串好处在于字符串种还可以包含单双引号,只要最外层的引号和内层的引号不相同即可

>>> str3="She's a girl!"
>>> print(str3)
She's a girl!

索引

索引运算符** [ i ],i为下标 **有正序和负序的索引方式

python字符串里的点号 python字符串[::-1]_python字符串里的点号


注意,正序第一个的索引为0,倒序第一个索引为-1

代码示例:

>>> str2="abcdefg"
>>> str2
'abcdefg'
>>> str2[1]
'b'
>>> str2[-1]
'g'
>>>

切片运算

切片就是将一个字符串中的某一部分切取出来,切片运算符[i:j:k] 。 i、j为字符串片段的起始下标,k为步长

>>> test = "Hello World"
>>> test[1:7]
'ello W'
>>> test[1:7:2]
'el '
>>> test[0:]
'Hello World'
>>> test[:5]
'Hello'
>>> test[::-1]
'dlroW olleH'
>>> test[5:1:1]
''
>>> test[5:1:-1]
' oll'

注意切片的区间为左闭右开,例如test[1:7]是从索引为1的取到索引为6的,而test[5:1:-1]是索引为5的倒着输出到索引为2的。
特别注意test[::-1] 和test[:5]切片。

常用转移字符

python字符串里的点号 python字符串[::-1]_python_02

字符串运算

加号运算 字符串连接

加号运算符就是将几个不同的字符串连接成一个字符串

>>> 'aaa'+'bbb'
'aaabbb'
>>> str1="Hello "
>>> str2="World!"
>>> str1 + str2
'Hello World!'
>>> str3="Again"
>>> str1 + str2 + str3
'Hello World!Again'
>>>

星号* 字符串复制

字符串*n就是将一个字符串复制n次,并合成一个字符串

>>> "aaa "*3
'aaa aaa aaa '
>>> str1='aaa'
>>> str1*3
'aaaaaaaaa'
>>>

in 运算符

in运算符用来判断某个字符是否字符串里,返回为bool值

>>> 'a' in "aaa"
True
>>> test = "Hello World"
>>> if 'H' in test :
	print(" 'H' in test ")

 'H' in test

not in运算符

not in运算符用来判断某个字符是否不在字符串里,返回为bool值

>>> test = "Hello World"
>>> if 'A' not in test:
	print("'A' not in test")

'A' not in test

常用字符串长度

len()函数

len()函数用来计算一个字符串的长度

>>> test = "Hello World"
>>> len(test)
11

ord()函数 chr()函数

ord()函数用来显示字符对应的ASCII整数
chr()函数用来将给定的ASCII整数转换为对应的字符

>>> a = 'a'
>>> ord(a)
97
>>> chr(97)
'a'

str()函数

str()函数将其他数据类型转换成字符串类型

>>> str(66666666666)
'66666666666'
>>> str(6666.66666666666666)
'6666.666666666667'
>>> str(6666.6666666666666666666666)
'6666.666666666667'

字符串常用方法

注意在Python中函数与方法的区别,函数是直接使用的,如len(“aaaa”),方法是变量 . 方法名()

upper() lower()

upper()方法将小写转换成大写。
lower()方法将大写转换成小写。

>>> test='hello world'
>>> test.upper()
'HELLO WORLD'
>>> upp='HELLO WORLD'
>>> upp.lower()
'hello world'

find()

find()方法用来在字符串内部定位一个字串,即查找,返回值为下标索引

>>> test='hello world'
>>> test.find('o')
4

replace()

replace()方法用第二个子串替代第一个子串,这个方法是针对某一个字符串进行操作,将该字符串中的一个子串进行替代。

>>> test='hello world'
>>> test.replace('wor','o')
'hello old'
>>> test
'hello world'

由代码可知这个方法并不改变原字符串,而仅仅是改变输出结果。

>>> test='hello world lll'
>>> test.replace('l','x')
'hexxo worxd xxx'

由代码示例可知replace()方法会对字符串中所有符合要求的子串进行替代。

strip()

strip()方法用来消除字符串两端的空格和符合

>>> test='    hello world    '
>>> test.strip()
'hello world'

format()格式化输出

看代码:

>>> "{0}的年龄是{1}".format("张三",20)
'张三的年龄是20'
>>> "{name}的年龄是{age}".format(age=38,name="李四")
'李四的年龄是38'

代码中{0},{1}为占位符,就是为格式化输出预留的位置。 format()中的数据根据前面的占位符自动匹配相应位置输出。这种方式必须按顺序摆放要格式化输出的各值。
第二种方法直接传递变量名,可以不按顺序摆放。

isalpha()

isalpha()方法在字符串非空且只有字母时为真。

>>> test="hello"
>>> test.isalpha()
True
>>> test="hello "
>>> test.isalpha()
False
>>> test="hello1"
>>> test.isalpha()
False

isdigit()

isalpha()方法在字符串非空且只有数字时为真。

>>> test="123"
>>> test.isdigit()
True
>>> test="123 "
>>> test.isdigit()
False
>>> test="123a"
>>> test.isdigit()
False

split()

split()方法将一个字符串根据空格切分成若干的子串。 简单的说就是分成一个一个的单词。所有由多少个就要用多少个变量来存放这些子串,也可以用列表来存放。

>>> test="This is my first Python"
>>> field1,field2,field3,field4,field5=test.split()
>>> field1
'This'
>>> field2
'is'
>>> field3
'my'
>>> field4
'first'
>>> field5
'Python'
>>> test
'This is my first Python'

当单词数大于或小于所定义的变量数时,会报错

python字符串里的点号 python字符串[::-1]_字符串_03

join()

join()方法有点意思,看代码体会:

>>> str1="Hello"
>>> str2="World"
>>> str1.join(str2)
'WHellooHellorHellolHellod'
>>> str1="aa"
>>> str2="bb"
>>> str1.join(str2)
'baab'
>>> str2.join(str1)
'abba'
>>> str1="aa"
>>> str2="bcdefg"
>>> str1.join(str2)
'baacaadaaeaafaag'

这个就是先将str2拆开,再将str1插入到str2的每一个字符之间