注释
1、单行注释以 # 开头。
2、多行注释为 '''xxx'''。
字符串
1、单引号与双引号含义一样。
2、自然字符串, 通过在字符串前加r或R。 如 r"this is a line with \n" 则\n会显示,并不是换行。
print输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=" "(空格)。
输入
在python2.7里是raw_input(),3.0是input(),输入得到的均是字符串。
raw_input不管输入什么返回的都是字符串,input输入字符串时要加‘ ’
数字
1、complex为复数类型。2+5j或者complex(2,5)。
2、 type() 函数可以用来查询变量所指的对象类型。
3、isinstance()函数也可以用来判断一个对象是否是已知的类型。
4、type与isinstance的区别:type()不会认为子类是一种父类类型。isinstance()会认为子类是一种父类类型。
5、数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。
6、** 表示乘方运算。
字符串
1、索引值以 0 为开始值,-1 为从末尾的开始位置。
2、str[0:-1]表示第一个到倒数第二个的所有字符。
3、python字符串不能被改变,所以不可以向索引位置赋值。
4、+组合,*重复。
身份运算符
1、is 是判断两个标识符是不是引用自一个对象,is not 是判断两个标识符是不是引用自不同对象。(内存地址是否相同,id())
2、但是为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a=2,b=2时,由于2作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象。
3、is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
>>>a = [1, 2, 3]
>>> b = a
>>> b is a
True
>>> b == a
True
>>> b = a[:] #没弄明白这两个的区别在哪里
>>> b is a
False
>>> b == a
True
列表
1、创建一个列表,只要把逗号分隔的不同的数据项使用中括号括起来即可。数据项不需要是相同类型。
2、列表的方法:
(1)list.append(obj):在列表末尾添加新的对象
(2)list.count(obj):统计某个元素在列表中出现的次数
(3)list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
(4)list.index(obj):从列表中找出某个值第一个匹配项的索引位置
(5)list.insert(index, obj):将对象插入列表
(6)list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
(7)list.remove(obj):移除列表中某个值的第一个匹配项
(8)list.reverse():反向列表中元素
(9)list.sort([func]):对原列表进行排序
(10)list.clear():清空列表
(11)list.copy():复制列表
元祖
1、与列表的区别是小括号表示,元素不能改变。
2、元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。
3、元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组。
4、输入时没有括号但用逗号隔开的值也是元组。
字典
1、格式:d = {key1 : value1, key2 : value2 }。
2、键是唯一的,不可变的。
3、dict.clear()清空字典。del dict删除字典。
4、赋值、浅拷贝、深度拷贝的区别:Python 直接赋值、浅拷贝和深度拷贝解析 | 菜鸟教程 http://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html
5、fromkeys()方法:
用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print ("新的字典为 : %s" % str(dict))
dict = dict.fromkeys(seq, 10)
print ("新的字典为 : %s" % str(dict))
以上实例输出结果为:
新的字典为 : {'age': None, 'name': None, 'sex': None}
新的字典为 : {'age': 10, 'name': 10, 'sex': 10}
6、dict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值
dict.items():以列表返回可遍历的(键, 值) 元组数组
dict.keys():以列表返回一个字典所有的键
dict.setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.values():以列表返回字典中的所有值
pop(key[,default]):删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem():随机返回并删除字典中的一对键和值(一般删除末尾对)。
集合
1、可用{}创建,会自动删除重复元素,如果要创建一个空集合,你必须用 set() 而不是 {} ;后者创建一个空的字典。
迭代器与生成器
Python yield 使用浅析 | 菜鸟教程 http://www.runoob.com/w3cnote/python-yield-used-analysis.html
好厉害的样子,现在看不懂,以后再看吧
函数
1、在 python 中,类型属于对象,变量是没有类型的。
2、python 函数的参数传递:
不可变类型:类似 c++ 的值传递,如 整数、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
可变类型:类似 c++ 的引用传递,如 列表,字典。如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。
3、不定长参数:加了星号(*)的变量名会存放所有未命名的变量参数。如果在函数调用时没有指定参数,它就是一个空元组。两个**时,是创建了一个列表,保存不定长的键值对。
4、global将函数内部变量改为全局变量,nonlocal将嵌套作用域改为局部变量。