PYTHON知识梳理

——《PYTHON核心编程》
变量和赋值


Python 也支持增量赋值,也就是运算符和等号合并在一起, 看下面的例子:
n = n * 10
将上面的例子改成增量赋值方式就是:
n *= 10
Python 不支持 C 语言中的自增 1 和自减 1 运算符, 这是因为 + 和 - 也是单目运算符,
Python 会将 --n 解释为-(-n) 从而得到 n , 同样 ++n 的结果也是 n


字符串
Python 中字符串被定义为引号之间的字符集合。Python 支持使用成对的单引号或双引号,
三引号(三个连续的单引号或者双引号)可以用来包含特殊字符。使用索引运算符( [ ] )和切
片运算符( [ : ] )可以得到子字符串。字符串有其特有的索引规则:第一个字符的索引是 0,
最后一个字符的索引是 -1
加号( + )用于字符串连接运算,星号( * )则用于字符串重复。下面是几个例子:
>>> pystr = 'Python'
>>> iscool = 'is cool!'
>>> pystr[0]
'P'
Edit By Vheavens                                                            
Edit By Vheavens
>>> pystr[2:5]
'tho'
>>> iscool[:2]
'is'
>>> iscool[3:]
'cool!'
>>> iscool[-1]
'!'
>>> pystr + iscool
'Pythonis cool!'
>>> pystr + ' ' + iscool
'Python is cool!'
>>> pystr * 2
'PythonPython'
>>> '-' * 20
'--------------------'
>>> pystr = '''python
... is cool'''
>>> pystr
'python\nis cool'
>>> print pystr
python
is cool

列表和元组
可以将列表和元组当成普通的“数组”,它能保存任意数量任意类型的 Python 对象。和数
组一样,通过从 0 开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象。
列表和元组有几处重要的区别。列表元素用中括号( [ ])包裹,元素的个数及元素的值可
以改变。元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以)。元组可以看成是
只读的列表。通过切片运算( [ ] 和 [ : ] )可以得到子集,这一点与字符串的使用方法一样。


>>> aList=[1,2,3,4]
>>> aList
[1, 2, 3, 4]
>>> aList[0]
1
>>> alist[2:]

Traceback (most recent call last):
  File "<pyshell#42>", line 1, in <module>
    alist[2:]
NameError: name 'alist' is not defined
>>> aList[2:]
[3, 4]
>>> aList[:3]
[1, 2, 3]
>>> aList[1]
2
>>> aList[1]=5
>>> aList
[1, 5, 3, 4]
元组也可以进行切片运算,得到的结果也是元组(不能被修改):
>>> aTuple=('robots',77,93,'try')
>>> aTuple
('robots', 77, 93, 'try')
>>> aTuple[:3]
('robots', 77, 93)
>>> aTuple[1]=5

Traceback (most recent call last):
  File "<pyshell#51>", line 1, in <module>
    aTuple[1]=5
TypeError: 'tuple' object does not support item assignment


字典
字典是 Python 中的映射数据类型,工作原理类似 Perl 中的关联数组或者哈希表,由键-
值(key-value)对构成。几乎所有类型的 Python 对象都可以用作键,不过一般还是以数字或者
字符串最为常用。
值可以是任意类型的 Python 对象,字典元素用大括号({ })包裹。
>>> aDict={'host':'earth'}
>>> aDict['port']=80
>>> aDict
{'host': 'earth', 'port': 80}
>>> aDict.keys()
['host', 'port']
>>> aDict['host']
'earth'
>>> for key in aDict:
    print key,aDict[key]

   
host earth
port 80


range()函数经常和 len()函数一起用于字符串索引。 在这里我们要显示每一个元素及其
索引值:
>>> for i in range(len(foo)):
    print foo[i],'(%d)'%i

   
a (0)
b (1)
c (2)


不过, 这些循环有一个约束, 你要么循环索引, 要么循环元素。这导致了 enumerate()
函数的推出(Python2.3 新增)。 它同时做到了这两点


>>> for i,ch in enumerate(foo):
    print ch, '(%d)' %i

a (0)
b (1)
c (2)


Python 是通过引用调用的。 这意味着函数内对参数的改变会影响到原始对象。不过事实
上只有可变对象会受此影响, 对不可变对象来说, 它的行为类似按值调用。

默认参数
函数的参数可以有一个默认值, 如果提供有默认值,在函数定义中, 参数以赋值语句的
形式提供。
事实上这仅仅是提供默认参数的语法,
它表示函数调用时如果没有提供这个参数, 它就取这个值做为默认值


>>> def foo(debug=True):
    'determie is in debug mode with default argument'
    if debug:
        print 'in debug mode'
        print 'done'

   
>>> foo()
in debug mode
done
>>> foo(False)


对新 Python 程序员有用的内建函数
函数
dir([obj])
描述
显示对象的属性,如果没有提供参数, 则显示全局变量的名字
help([obj])
以一种整齐美观的形式 显示对象的文档字符串, 如果没有提供任何参
数, 则会进入交互式帮助。
int(obj)
将一个对象转换为整数
len(obj)
返回对象的长度
open(fn, mode) 以 mode('r' = 读, 'w'= 写)方式打开一个文件名为 fn 的文件
range([[start,]stop[,step])
返回一个整数列表。起始值为 start, 结束值为 stop - 1; start
默认值为 0, step默认值为1。
raw_input(str) 等待用户输入一个字符串, 可以提供一个可选的参数 str 用作提示信
息。
str(obj)
将一个对象转换为字符串
type(obj)
返回对象的类型(返回值本身是一个 type 对象!)


你可能感兴趣的:(PYTHON知识梳理)