Python 3.x 对中文字符支持较好,但 Python 2.x 则要求在源程序中增加“#coding:utf-8”才能支持中文字符。
字符串既可用单引号括起来,也可用双引号括起来,它们没有任何区别。例如如下程序:str1 = 'Charlie' str2 = "C语言中文网" print(str1) print(str2)但需要说明的是,Python 有时候没有我们期望的那么聪明。如果字符串内容本身包含了单引号或双引号,此时就需要进行特殊处理:
str3 = 'I'm a coder'
由于上面字符串中包含了单引号,此时 Python 会将字符串中的单引号与第一个单引号配对,这样就会把 'I' 当成字符串,而后面的 m a coder' 就变成了多余的内容,从而导致语法错误。str3 = "I'm a coder"
上面代码使用双引号将字符串括起来,此时 Python 就会把字符串中的单引号当成字符串内容,而不是和字符串开始的引号配对。str4 = '"Spring is here,let us jam!", said woodchuck.'
str5 = '"we are scared,Let\'s hide in the shade",says the bird'
s1 = "Hello,"'Charlie' print(s1)上面代码将会输出:
Hello,Charlie
上面这种写法只是书写字符串的一种特殊方法,并不能真正用于拼接字符串。Python 使用加号(+)作为字符串的拼接运算符,例如如下代码:s2 = "Python " s3 = "iS Funny" #使用+拼接字符串 s4 = s2 + s3 print(s4)
s1 = "这是数字: " p = 99.8 #字符串直接拼接数值,程序报错 print(s1 + p) #使用str()将数值转换成字符串 print(s1 + str(p)) #使用repr()将数值转换成字符串 print(s1 + repr(p))上面程序中直接拼接字符串和数值,程序会报错。
st = "I will play my fife" print (st) print(repr(st))上面代码中 st 本身就是一个字符串,但程序依然使用了 repr() 对字符串进行转换。运行上面程序,可以看到如下输出结果:
I will play my fife
'I will play my fife'
msg = input("请输入你的值:") print (type(msg)) print(msg)第一次运行该程序,我们输入一个整数,运行过程如下:
请输入你的值:2
<class 'str'>
2
请输入你的值: 1.2
<class 'str'>
1.2
请输入你的值:Hello
<class 'str'>
Hello
需要指出的是,Python 2.x 提供了一个 raw_input() 函数,该 raw_input() 函数就相当于 Python 3.x 中的 input() 函数。
而 Python 2.x 也提供了一个 input() 函数,该 input() 函数则比较怪异:要求用户输入的必须是符合 Python 语法的表达式。通常来说,用户只能输入整数、浮点数、复数、字符串等。重点是格式必须正确,比如输入字符串时必须使用双引号,否则 Python 就会报错。
请输入你的值:2
<class 'int'>
2
请输入你的值: 2+3j
<type 'complex'>
(2+3j)
请输入你的值:Hello
NameError : name 'Hello' is not defined
在 Python 2.x 中应该尽量使用 raw_input() 函数来获取用户输入;Python 2.x 中的 raw_input() 等同于 Python 3.x 中的 input()。
s = '''"Let's go fishing", said Mary. "OK, Let's go", said her brother. they walked to a lake''' print(s)上面程序使用三个引号定义了长字符串,该长字符串中既可包含单引号,也可包含双引号。
s2 = 'The quick brown fox jumps over the lazy dog' print(s2)上面 s2 字符串的内容较长,故程序使用了转义字符(\)对内容进行了转义,这样就可以把一个字符串写成两行。
num = 20 + 3 / 4 + 2 * 3 print(num)上面程序中有一个表达式,为了对该表达式换行,程序需要使用转义字符。
s1 = r'G:\publish\codes\02\2.4' print(s1)如果原始字符串中包含引号,程序同样需要对引号进行转义(否则 Python 同样无法对字符串的引号精确配对),但此时用于转义的反斜线会变成字符串的一部分。
# 原始字符串包含的引号,同样需要转义 s2 = r'"Let\'s go", said Charlie' print(s2)上面代码会生成如下输出结果:
"Let\'s go", said Charlie
由于原始字符串中的反斜线会对引号进行转义,因此原始字符串的结尾处不能是反斜线,否则字符串结尾处的引号就被转义了,这样就导致字符串不能正确结束。s3 = r'Good Morning' '\\' print(s3)上面代码开始写了一个原始字符串 r'Good Morning',紧接着程序使用 '\\' 写了一个包含反斜线的字符串,Python 会自动将这两个字符串拼接在一起。运行上面代码会生成如下输出结果:
Good Morning\
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有