Python的一些内容整理, part 1
2012-02-19 07:00
423 查看
http://sebug.net/paper/python/ch04s03.html
字符串
字符串是 字符的序列 。字符串基本上就是一组单词。我几乎可以保证你在每个Python程序中都要用到字符串,所以请特别留心下面这部分的内容。下面告诉你如何在Python中使用字符串。
使用单引号(')
你可以用单引号指示字符串,就如同
'Quote me on this'这样。所有的空白,即空格和制表符都照原样保留。
使用双引号(")
在双引号中的字符串与单引号中的字符串的使用完全相同,例如
"What's your name?"。
使用三引号('''或""")
利用三引号,你可以指示一个多行的字符串。你可以在三引号中自由的使用单引号和双引号。例如:
'''This is a multi-line string. This is the first line. This is the second line. "What's your name?," I asked. He said "Bond,James Bond." '''
转义符
假设你想要在一个字符串中包含一个单引号('),那么你该怎么指示这个字符串?例如,这个字符串是
What's your name?。你肯定不会用
'What's your name?'来指示它,因为Python会弄不明白这个字符串从何处开始,何处结束。所以,你需要指明单引号而不是字符串的结尾。可以通过 转义符 来完成这个任务。你用
\'来指示单引号——注意这个反斜杠。现在你可以把字符串表示为
'What\'s your name?'。
另一个表示这个特别的字符串的方法是
"What's your name?",即用双引号。类似地,要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。另外,你可以用转义符
\\来指示反斜杠本身。
值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。例如:
"This is the first sentence.\ This is the second sentence."
等价于
"This is the first sentence. This is the second sentence."
自然字符串
如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀
r或
R来指定。例如
r"Newlines are indicated by \n"。
Unicode字符串
Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文本——你只需要在字符串前加上前缀
u或
U。例如,
u"This is a Unicode string."。
记住,在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。
字符串是不可变的
这意味着一旦你创造了一个字符串,你就不能再改变它了。虽然这看起来像是一件坏事,但实际上它不是。我们将会在后面的程序中看到为什么我们说它不是一个缺点。
按字面意义级连字符串
如果你把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,
'What\'s' 'your name?'会被自动转为
"What's your name?"。
给C/C++程序员的注释
在Python中没有专门的
char数据类型。确实没有需要有这个类型,我相信你不会为此而烦恼。
给Perl/PHP程序员的注释
记住,单引号和双引号字符串是完全相同的——它们没有在任何方面有不同。
给正则表达式用户的注释
一定要用自然字符串处理正则表达式。否则会需要使用很多的反斜杠。例如,后向引用符可以写成
'\\1'或
r'\1'。
使用if语句
例6.1 使用if语句#!/usr/bin/python # Filename: if.py
number =
23
guess =
int
(
raw_input
(
'Enter an integer : '
))
if
guess == number:
'Congratulations,you guessed it.'
# New block starts here
"(but you do not winany prizes!)"
# New block ends here
elif
guess < number:
'No,it is a little higher than that'
# Another block
# You can do whatever you want ina block ...
else
:
'No,it is a little lower than that'
# you must have guess > number to reach here
'Done'
# This last statement is always executed,after the ifstatement is executed
使用while语句
例6.2 使用while语句#!/usr/bin/python # Filename: while.py
number =
23
running =
True
while
running:
guess =
int
(
raw_input
(
'Enter an integer : '
))
if
guess == number:
'Congratulations,you guessed it.'
running =
False
#
this causes the whileloop to stop
elif
guess < number:
'No,it is a little higher than that'
else
:
'No,it is a little lower than that'
else
:
'The whileloop is over.'
# Do anything else you want to do here
'Done'
使用for语句
例6.3 使用for语句#!/usr/bin/python # Filename: for.py
for
i
in
range
(
1
,
5
):
i
else
:
'The forloop is over'
使用函数形参
例7.2 使用函数形参#!/usr/bin/python # Filename: func_param.py
def
printMax
(a, b):
if
a > b:
a,
'is maximum'
else
:
b,
'is maximum'
printMax(
3
,
4
)
# directly give literal values
使用global语句
如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。没有
global语句,是不可能为定义在函数外的变量赋值的。
你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用
global语句可以清楚地表明变量是在外面的块定义的。
例7.4 使用global语句
#!/usr/bin/python # Filename: func_global.py
def
func
():
global
x
'x is'
, x
x =
2
'Changed local x to'
, x
x =
50
func()
'Value of x is'
, x
默认参数值
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的——这会在后面的章节中做详细解释。从现在开始,请记住这一点。
使用默认参数值
例7.5 使用默认参数值#!/usr/bin/python # Filename: func_default.py
def
say
(message, times =
1
):
message * times
say(
'Hello'
)
say(
'World'
,
5
)
(源文件:code/func_default.py)
输出
$ python func_default.py Hello WorldWorldWorldWorldWorld
它如何工作
名为say的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参
times指定默认参数值
1来实现这一功能。
在第一次使用
say的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用
say的时候,我们提供了字符串和参数
5,表明我们想要 说 这个字符串消息5遍。
重要
只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。
这是因为赋给形参的值是根据位置而赋值的。例如,
deffunc(a,b=5)是有效的,但是
deffunc(a=5,b)是 无效 的。
关键参数
如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值——这被称作 关键参数 ——我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参。这样做有两个 优势 ——一,由于我们不必担心参数的顺序,使用函数变得更加简单了。二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。
使用关键参数
例7.6 使用关键参数#!/usr/bin/python # Filename: func_key.py
def
func
(a, b=
5
,c=
10
):
'a is'
,
a,
'and b is'
,b,
'and c is'
,c
func(
3
,
7
)
func(
25
,c=
24
)
func(c=
50
,a=
100
)
(源文件:code/func_key.py)
输出
$ python func_key.py a is 3 and b is 7 and c is 10 a is 25 and b is 5 and c is 24 a is 100 and b is 5 and c is 50
相关文章推荐
- Python的一些内容整理, part 2
- Python学习笔记整理(六)Python中的字典(含字典嵌套内容)
- 笨方法学python 习题22、23 整理所学内容
- Perl 与 Python 之间的一些异同整理
- python爬虫正则匹配td标签中的内容,以及一些常用的正则
- 开发使用mysql的一些必备知识点整理(四)与python交互
- python 类型转换及一些内容编辑
- 一些有用的内容与链接整理【持续更新】
- python内容整理三
- python下的一些问题整理
- Python的一些搜集内容
- Python内容整理一
- python一些基础且常用的脚本整理(持续补充)
- 夏令营讲课内容整理 Day 6 Part 3.
- Python内容整理二
- shark-未整理的一些内容1
- 整理一些Python—matplotlib和numpy会常用到的网站
- 【python】整理一些实用的函数
- Python的Django框架中URLconf相关的一些技巧整理
- 收藏整理的一些Python常用方法和技巧