1、字符串不能直接和数字相加,要用 str() 转一下;但是可以和数字相乘,用于表示多个字符串复制;字符串不能和浮点数直接结合,字符串可以和字符串直接相加;
2、输入函数用 input(),默认是字符串 计算字符串长度用 len()
3、注释用#
4、类型转换,int()整型,str()字符串类型,float()浮点类型
5、** 是求指数值 // 是整除 / 是除法
6、判断变量类型,type(变量)
1、not 非 and 与 or 或
2、range(开始,结束,步长) 注意:循环不包括'结束'
3、import 函数 导入函数 from import 是另一种导入形式,举例 from random import * 可以在使用 random 函数时不用加 random. 前缀
4、sys.exit() 提前结束程序,需要 import sys
1、def 函数名 (入参):
2、关键字 print('hello',end='') 连接字符 print('cats','dogs','mice',sep=',') 用','代替' '
3、要想在函数中修改全局变量,需要在全局变量前加上 global 关键字
4、异常处理 try 和 except
常用的异常类型
View Code
- 1 1、NameError:尝试访问一个未申明的变量
- 2 >>> v
- 3 NameError: name 'v' is not defined
- 4
- 5 2、ZeroDivisionError:除数为0
- 6 >>> v = 1/0
- 7 ZeroDivisionError: int division or modulo by zero
- 8
- 9 3、SyntaxError:语法错误
- 10 >>> int int
- 11 SyntaxError: invalid syntax (#14>, line 1)
- 12
- 13 4、IndexError:索引超出范围
- 14 >>> List = [2]
- 15 >>> List[3]
- 16 Traceback (most recent call last):
- 17 File "<pyshell#18>", line 1, in
- 18 List[3]
- 19 IndexError: list index out of range
- 20
- 21 5、KeyError:字典关键字不存在
- 22 >>> Dic = {'1':'yes', '2':'no'}
- 23 >>> Dic['3']
- 24 Traceback (most recent call last):
- 25 File "<pyshell#20>", line 1, in
- 26 Dic['3']
- 27 KeyError: '3'
- 28
- 29 6、IOError:输入输出错误
- 30 >>> f = open('abc')
- 31 IOError: [Errno 2] No such file or directory: 'abc'
- 32
- 33 7、AttributeError:访问未知对象属性
- 34 >>> class Worker:
- 35 def Work():
- 36 print("I am working")
- 37 >>> w = Worker()
- 38 >>> w.a
- 39 Traceback (most recent call last):
- 40 File "<pyshell#51>", line 1, in
- 41 w.a
- 42 AttributeError: 'Worker' object has no attribute 'a'
- 43
- 44 8、ValueError:数值错误
- 45 >>> int('d')
- 46 Traceback (most recent call last):
- 47 File "<pyshell#54>", line 1, in
- 48 int('d')
- 49 ValueError: invalid literal for int() with base 10: 'd'
- 50
- 51 9、TypeError:类型错误
- 52 >>> iStr = '22'
- 53 >>> iVal = 22
- 54 >>> obj = iStr + iVal;
- 55 Traceback (most recent call last):
- 56 File "<pyshell#68>", line 1, in
- 57 obj = iStr + iVal;
- 58 TypeError: Can't convert 'int' object to str implicitly
- 59
- 60 10、AssertionError:断言错误
- 61 >>> assert 1 != 1
- 62 Traceback (most recent call last):
- 63 File "<pyshell#70>", line 1, in
- 64 assert 1 != 1
- 65 AssertionError
1、负数下标
整数 - 1 下标指的是列表的最后一个下标,-2 指的是列表的倒数第二个下标
2、利用切片取得子列表
spam[1:4] 表示取得 spam[1] 到 spam[3] 的区间值作为一个新的切片,可以使用省略方法
spam[:4] 表示取得 spam[0] 到 spam[3] 的区间值作为一个新的切片,省略的值取得是 0
spam[1:] 表示取得 spam[1] 到 spam 最后一个元素的区间值作为一个新的切片,省略的值取得是列表的长度
3、列表的长度
使用 len(spam)
4、列表可以向数组那样进行赋值
5、列表的连接和复制
使用 + 可以连接两个连接为一个列表
使用 ['a','b','c']*n 可以复制 n 个列表为一个列表
6、列表元素的删除
del spam[3]
7、列表的判断
- 1 in 'howdy' in ['hello','howdy']
- 2 >> True
- 3 not in
- 4 >> False
8、多重赋值
- 1 cat = ['fat', 'black', 'loud'] 2 size,
- color,
- disposition = cat
等号左侧的变量数目和列表长度必须严格相等,否则会报 ValueError
9、增强赋值
类似于 C 中 +=,*=,/=,-=,%=
增强赋值同样可以用于列表中,作用等于于对以元素为单位的操作
10、方法
类似于 C++ 中类的成员方法
- 1 spam.index('hello') 取出'hello'在列表中的下标索引,重复值返回第一次出现的下标索引
- 2
- 3 spam.append('yes') 在列表尾部追加一个元素
- 4
- 5 spam.insert(1,'no') 在指定spam[1]之前插入一个元素
- 6
- 7 spam.remove('hello') 删除指定元素,如果有多个重复元素存在,删除第一个元素,后面的元素不删除。
- 8
- 9 spam.sort() 对数字按照由小到大排列,对字符串按照ASCII字符顺序排列
- 10
- 11 spam.sort(reverse=True) 对字符串按照ASCII字符顺序逆序排列,对数字按照由大到小排列
- 12
- 13 spam.sort(key=str.lower) 对表项全部按照小写字母进行排列
- 14
- 15 spam.sort(1,2,3,'hello','no') -----WRONG,不能对既有数字又有字符串的列表进行排序,因为不知道按照那个原则进行排序
11、续行字符'\',在行末使用
12、可变对象和不可变对对象
可变即内存空间可变,不可变即内存空间不可变。可变的对象的变量在传递时,传递的是引用地址(可以理解为指针),所以拷贝的时候不是真正拷贝内存空间,仅仅是多了个变量指向相同的内存空间而已。对新的变量进行增删都会影响到原始变量,即浅拷贝。不可变对象,拷贝或通过新变量传递时,一旦发生修改,会新生成一个跟原来对象属于不同内存空间的新对象值。元组(tuple)、数值型(number)、字符串(string)均属于不可变对象,而字典型(dictionary)和列表型(list)的对象是可变对象。
13、引用
在变量必须保存可变数据类型的值时,例如列表或字典,Python 就使用引用。对于不可变的数据类型的值,例如字符串、整型或元组,Python 变量就保存值本身。
14、传递引用
当函数被调用时,参数的值被复制给变元。对于列表和字典,这意味着变元得到的是引用的拷贝。
15、copy 模块的 copy() 和 deepcopy() 函数
使用 copy.copy() 来避免引用传递带来的麻烦,如果被复制的列表或字典中包含列表或字典,使用 copy.deepcopy()
- 1 import copy
- 2 samp = ['A', 'B', 'C', 'D']
- 3 cheese = copy.copy(samp)
- 4 cheese[1] = 42
- 5 print(samp)
16、列表和字符串的共同点
列表和字符串都可以传入 len(),都有下标和切片,用于 for 循环,连接或复制,并与 in 和 not in 操作符一起使用。
1、元组使用 () 进行区别,以逗号','作为最后一个截止,否则只有一个元素时有可能会不被认为是元组类型
2、列表和元组之间的类型转换 使用 list() tuple() 进行类型转换
3、列表和元组的区别
列表是可以修改的,他们可以添加值、删除值和修改值。元组是不可以修改的,他们根本不能改变。而且元组使用的是括号,而列表使用的方括号。
1、字典是许多值的结合,但不像列表的下标,字典的索引可以使用许多不同的数据类型,不只是整数。字典的索引被称为 "键",键及其关联的值称为 "键 - 值" 对,字典使用花括号 {} 包裹。
2、字典与列表
字典也可以使用数字作为键;不像列表,字典中的表项时不排序的。相同的两个列表其顺序也必须是一样的,而字典则未必;因为字典是不排序的,所以不能进行列表那样的切片操作。
3、字典的查找和添加
查找键值是否位于字典中,可是使用 in 操作,字典键值对的添加可是使用普通的赋值操作进行。
检查该键是否存在于字典中,也可使用 get() 方法,其有两个参数,第一个是取得其键的值,第二个是如果查找键失败,返回的默认值
4、字典方法
keys() 方法 ------ 取出字典键
values() 方法 ---- 取出字典值
items() 方法 ----- 取出字典键值对
Python dictionary
- 1 spam = {'color': 'red', 'age': '42'}
- 2 for i in spam.keys():
- 3 print(i)
- 4 for i in spam.values():
- 5 print(i)
- 6 for i in spam.items():
- 7 print(i)
- 8
- 9
- 10 age
- 11 color
- 12 42
- 13 red
- 14 ('age', '42')
- 15 ('color', 'red')
可以将 keys() 和 values() 返回的值存储为列表,例如 list(spam.keys())
也可以使用多重赋值的技巧,在 for 循环中将 key 和 value 对号入座
- 1
- for k,
- v in spam.items() : 2 print('key:' + k + 'value:' + str(v))
setdefault() 方法 --- 设置字典键对应的默认值
如果没有默认值,将方法设置的值设置成功,如果已有默认值,则保持原状。
spam.setdefault('color', 'black')
5、漂亮打印
使用 import pprint 可以按照字典的样式打印出来,例如 pprint.pprint(myDict) ,如果想将打印的结果转为字符串而不是直接输出在屏幕上可以使用 print(pprint.pformat(myDict))
来源: http://www.cnblogs.com/jingliming/p/6416083.html