Python中除了数字(Numbers)(int,float,complex)之外,另外一种重要的类型就是字符串。
字符串是字符序列,可以由任何字符构成。
在Python语言中,字符串可以放在单引号('这是字符串内容')或双引号("这是字符串内容")中。
Python中提供了丰富的字符串操作函数以及灵活的运算方式。本站将在今后陆续推出相关内容。
1、Python字符串定义及输出¶
Python中字符串的定义与变量的定义方式相同。字符串内容放入单引号或双引号即可。
下面是在Python 3.8.2 IDLE中的执行情况:
>>>
"Hello"
'Hello'
>>>
'www.biye5u.com'
'www.biye5u.com'
>>>"'I Love You',She said and went out yesterday."
"'I Love You',She said and went out yesterday."
>>>
'biye5u.com的名称是"翔宇亭IT乐园"'
'biye5u.com的名称是"翔宇亭IT乐园"'
>>> s = "www.biye5u.com"
>>> s
'www.biye5u.com'
>>> s ='www.biye5u.com'
>>> s
'www.biye5u.com'
>>> s = "翔宇亭IT乐园"
>>> print(s)
翔宇亭IT乐园
从上面的执行可以看出,在Python IDLE中直接输出字符串的话 ,输出结果是含单引号的,并且在字符串中不包含双引号或单引号的话,Python输出的字符串一律使用单引号包裹起来,否则会原样输出。使用print()函数输出的字符串是不含单引号或双引号的。
2、字符串中引号的处理
有时字符串内容中包含单引号或双引号,这时,我们可以有2种处理方式:
(1)单引号中使用双引号或双引号中使用单引号
s1 = "他昨天跟我说:'我已经学会了Python的所有基础内容。'"
print(s1)
s2 = '她昨天拒绝了我的求爱,她是这样跟我说的:"我的孩子现在上小学了。"'
print(s2)
#下面这种定义方式存在问题
s3 = '轻轻的我走了,正如我轻轻的来。'你个小偷,往哪里走!'突然屋主人醒了。'
print(s3)
#下面这种定义方式也存在问题
s4="轻轻的我走了,正如我轻轻的来。"你个小偷,往哪里走!"突然屋主人醒了。"
print(s4)
上面例子中,后面两个由于字符串中的引号和包裹字符串内容的引号使用相同,会给出 SyntaxError: invalid syntax 的错误。而第1和第2个例子中,包裹字符串的引号和字符串中的引号使用不同的形式,可以避免发生问题
(2)使用转义字符
转义字符是指对字符串中一些特殊字符的处理方式,如换行、tab键字符、单引号、双引号等(本站将在今后专门来介绍)。转义字符使用 \ 来表示,即 \ 后的一个字符。
str ="He was my loved man,but he always said to me:\"You are doing right things. But I\'m not a GUY\""
print(str)
OutPut:
He was my loved man,but he always said to me:"You are doing right things. But I'm not a GUY"
上面的例子中字符串中包含了双引号和单引号的情况,而在字符串中出现引号的前面加一个 \ 就避免了出现语法错误的问题。
3、连接字符串
在Python中可以使用 + 把多个字符串连接成一个字符串。
>>>'Hello' + ' Kitty' #注意,我这里的Kitty前面加了一个空格
'Hello Kitty'
>>> s1 = "Hello,"
>>> s2 ="biye5u.com"
>>> s1 + s2
'Hello,biye5u.com'
>>> s3 = s1 + s2
>>>
print(s3)
Hello,biye5u.com
在Python中,并列定义的多个字符串,自动合并为一个字符串,如下例:
>>>
"翔宇亭IT乐园"
"网址是:"
"www.biye5u.com"
'翔宇亭IT乐园网址是:www.biye5u.com'>>> s = "I Love you since I\'m a child." "Sure,I\'m your father after all."
>>>
print(s)
I Love you since I'm a child.Sure,I'm your father after all.
上面的例子中,并列定义时,不允许换行。
这种语法在处理较长文本时是非常有用的:
s = ("昨天一个疯子跑过来,使劲拽着我的胳膊,我甩都甩不掉了。"
"当时我吓坏了,我一直在想着逃脱的方法。"
"这时一位警察走过来,把我摁倒在地。"
"警察说:\"我们盯你好久了,你竟然光天化日下抢夺别人的东西!\"")
print(s)
上面这个例子,将会把所有的字符串按一个字符串来处理。
这种语法结构只能用于字符串本身的情况,不可以使用变量,下面这个例子将会有语法错误:
s1 = "翔宇亭"
s2 = s1 "IT乐园" #语法错误
s3 = "www.biye5u.com"
s4 = s1 s3 #语法错误
s5 = "翔宇亭" s3 #语法错误
上面在定义s2、s4和s5时的写法都是错误的。这种情况下只能使用 + 来把多个字符串连接。
4、字符串的重复次数
在Python中可以使用 * 对某个字符串重复若干次。
>>>
"I Love You!" * 3
'I Love You!I Love You!I Love You!'
>>> 3 * 'abc'
'abcabcabc'
>>> s = "AB"
>>> s * 3
'ABABAB'
>>> 3 * s
'ABABAB'