字符串的意思是“一串字符”,比如“Hello world”就是一个字符串,Python要求字符串必须使用引号括起来。
1、字符串和转义字符
字符串的内容可以是任何字符,中文字符/英文字符都可以。
注意:Python3.x对中文字符的支持比较好,但Python2.x则要求在源程序中添加"# coding:utf-8"才能支持中文。
字符串既可以使用单引号括起来,也可以使用双引号括起来,没有任何区别。
demo1.py
my_name = "vip"
my_flag = "好好学习,天天向上"
print(my_name)
print(my_flag)
但Python有时候并不是那么聪明,如果字符串本身就包含了单/双引号,此时就需要特殊处理:
> 使用不同的引号将字符串括起来
> 对引号进行转义
案例:使用不同的引号将字符串括起来
str3 = 'I' love code'
上面的字符串中包含了单引号,此时Python会将字符串中的单引号与第一个单引号配对,这样就把'I'当成字符串,而后面的 love code'就成了多余的内容,从而导致语法错误。
为了避免这种问题,可修改为:
str3 = "I' love code"
使用双引号将字符串括起来,此时Python就会把字符串中的单引号当成字符串内容,而不是和字符串开始的引号配对。
案例:对引号进行转义
使用反斜线(\)将字符串中的特殊字符进行转义,假如字符串中既包含单引号,又包含双引号,就必须使用转义字符。
str4 = '"I love code,let\'s hide in the shade",says the bird'
2、拼接字符串
如果将两个字符串紧挨在一起,Python就会自动拼接它们
demo2.py
s1 = “hello,”'vip'
print(s1)
# 输出结果
hello,vip
以上只是书写字符串的一种特殊方法,并不是真正的用于拼接字符串;Python使用加号(+)作为字符串的拼接运算符:
demo3.py
s2 = "i"
s3 = "love code"
# 使用+拼接字符串
s4 = s2 + s3
print(s4)
3、repr和字符串
有时候需要将字符和数值进行拼接,而Python不允许直接拼接数值和字符串,必须先将数值转为字符串。
为了将数值转为字符串,可以使用str()或者repr()函数:
demo4.py
strs1 = "今天的气温是:"
win = 21.5
# 字符串直接拼接数值,会报错
print(strs1 + win)
# 使用str()将数值转为字符串
print(strs1 + str(win))
# 使用repr()将数值转为字符串
print(strs1 + repr(win)
str()和repr()函数都可以将数值转为字符串,其中str本身是Python内置的类型,而repr()则是一个函数,此外repr还有一个功能,它会以Python表达式的方式来表示值。
demo5.py
st = "i love code and love life"
print(st)
print(repr(st))
# 输出结果
i love code and love life
"i love code and love life"
如果直接使用print()函数输出字符串,将只能看到字符串的内容,没有引号;但如果使用repr()函数对字符串进行处理,然后再使用print()执行输出,将可以看到带引号的字符串 -- 这就是字符串的Python的表达式形式。
如果在交互式解释器中输入一个变量或表达式时,Python会自动使用repr()函数处理该变量或表达式。