Python 基础知识
Posted 任重道远-HSY
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 基础知识相关的知识,希望对你有一定的参考价值。
2018.11.25 使用 list(列表) 和 tuple(元组) list(列表) 1、list 是一种有序的集合,可以随时添加和删除其中的元素。 2、classmates = [‘Michael‘, ‘Bob‘, ‘Tracy‘] 变量 classmates 就是一个 list。用 len()函数可以获得 list 元素的个数: len(classmates)为3 3、classmates[0]输出为:‘Michael‘。记得最后一个元素的索引是 len(classmates) - 1。 如果要取最后一个元素,可以用-1 做索引,直接获取最后一个元素:以此类推, 可以获取倒数第 2 个(-2)、倒数第3 个(-3):classmates[-1] 为 ‘Tracy‘,classmates[-2] 为‘Bob‘ 4、list末尾追加元素:classmates.append(‘Adam‘) ,classmates输出为[‘Michael‘, ‘Bob‘, ‘Tracy‘, ‘Adam‘] 5、插入到指定的位置,比如索引号为 1 的位置:classmates.insert(1,‘jack‘) classmates.insert(1, ‘Jack‘) 则classmates输出为[‘Michael‘, ‘Jack‘, ‘Bob‘, ‘Tracy‘, ‘Adam‘] 6、list 删除末尾的元素,用 pop():classmates.pop()输出为classmates最后一个元素‘Tracy‘,则classmates = [‘Michael‘, ‘Bob‘] 要删除指定位置的元素,用 pop(i)方法,其中 i 是索引位置:classmates.pop(1)为‘Bob‘ 7、把某个元素替换成别的元素,可以直接赋值给对应的索引位置: classmates[1]=‘你好‘。则classmates为 [‘Michael‘, ‘你好‘, ‘Tracy‘] (list 里面的元素的数据类型也可以不同) list 元素也可以是list,比如:s = [‘python‘, ‘java‘, [‘asp‘, ‘php‘], ‘scheme‘]等价于s=[‘python‘, ‘java‘, t, ‘scheme‘]。len(s)等于3; t=[‘asp‘, ‘php‘] 8、空列表:L = []→len(L)等于0; tuple(元组) 1、tuple 一旦初始化就不能修改 classmates = (‘Michael‘, ‘Bob‘, ‘Tracy‘) classmates 这个 tuple(元组) 不能变了,它也没有 append(),insert()这样的方法。 其他获取元素的方法和 list 是一样的,你可以正常地使用classmates[0], classmates[-1],但不能赋值成另外的元素。 因为 tuple 不可变,所以代码更安全。能用 tuple 代替 list 就尽量用 tuple。 tuple 的陷阱:当你定义一个 tuple 时,tuple 的元素就必须被确定下来 t=(1,2,3,5);t为(1,2,3,5) 2、如果要定义一个空的 tuple,可以写成t = () :t为() 3、t = (1) ,t为1,定义的不是 元组,是 1 这个数!这是因为括号()既可以表示 tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此, Python 规定,这种情况下,按小括号进行计算,计算结果自然是 1。 所以,只有 1 个元素的 tuple 定义时必须加一个逗号",",来消除歧义: 4、t=(1,),print(t)输出为(1,) t = (‘a‘, ‘b‘, [‘A‘, ‘B‘]),print(t[2][0])输出: ‘A‘ t[2][0] = ‘X‘,t[2][1] = ‘Y‘:print(t)输出:(‘a‘, ‘b‘, [‘X‘, ‘Y‘]) tuple 的元素确实变了,但其实变的不是 tuple 的元素, 而是list 的元素。tuple 一开始指向的 list 并没有改成别的 list,所以,tuple所谓的“不变”是说, tuple 的每个元素,指向永远不变。即指向‘a‘,就不能改成指向‘b‘,指向一个 list,就不能改成指向其他对象,但指向的这个 list 本身是可变的 input(输入) birth = input(‘birth: ‘) if birth < 2000: print(‘00 前‘) else: print(‘00 后‘) 如果输入 1982,结果报错 这是因为 input()返回的数据类型是 str,str 不能直接和整数比较,必须先把 str 转换成整数。 Python 提供了 int()函数来完成这件事情: s = input(‘birth: ‘) birth = int(s) if birth < 2000: print(‘00 前‘) else: print(‘00 后‘) 再次运行,就可以得到正确地结果。 for(循环) 1、Python 的循环有两种: 一种是 for...in 循环,依次把 list 或 tuple 中的每个元素迭代出来 第二种循环是 while 循环 2、d = [5,7,"你好"] for x in d: print(x) 执行这段代码,会依次打印d的每一个元素: 5 7 你好 3、num=[1,2,3,4,5,6,4,5,6,7,8,9,10] sum=0; for x in num: sum=sum+x print(sum) 输出为70 小记:num=list(range(5)) 生成的序列是从 0 开始小于 5 的整数: 4、第二种循环是 while 循环,只要条件满足,就不断循环,条件不满足时退出循环。 sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum) 输出:2550 在循环内部变量 n 不断自减2,直到变为-1 时,不再满足 while 条件,循环退出。 2018.11.26 dict(字典) d = {‘Michael‘: 95, ‘Bob‘: 75, ‘Tracy‘: 85} 1、print(d[‘Michael‘]) 输出:95 2、d[‘Michael‘]=100 print(d)输出: {‘Michael‘: 100, ‘Bob‘: 75, ‘Tracy‘: 85} 3、 末尾添加元素:d["henry"]=99 print(d)输出:{‘Michael‘: 100, ‘Bob‘: 75, ‘Tracy‘: 85,"henry":99} 4、删除元素:要删除一个 key,用 pop(key)方法,对应的 value 也会从 dict 中删除: d.pop(‘Bob‘) print(d)输出:{‘Michael‘: 95, ‘Tracy‘: 85} set 要创建一个要创建一个 set,需要提供一个 list 作为输入集合: s = set([1, 2, 3]) 1、print(s)输出为:{1, 2, 3} 传入的参数[1, 2, 3]是一个 list,而显示的{1, 2, 3}只是告诉你这个 set 内部有 1,2,3 这 3 个元素,显示的顺序也不表示 set 是有序的。 2、重复元素在 set 中自动被过滤:s = set([1, 3,3,4]) print(s)输出:{1, 3,4} 3、通过 add(key)方法可以添加元素到 set 中,可以重复添加,但不会有效果s.add(6) print(s)输出:{1, 3,4,6},s.add(6),print(s)输出:{1, 3,4,6} 4、通过 remove(key)方法可以删除元素:s.remove() s.remove(3) print(s) 输出为:{1, 4,6} 5、set 可以看成数学意义上的无序和无重复元素的集合,因此,两个 set 可以做数学意义上的交集、并集等操作: s = set([1, 2, 3,3,4]) q=set([1,2,6,9]) a=q&s//交集 print(a)//输出:{1,2} a=q|s//并集 print(a)//输出:{1,2,3,4,6,9} 函数 1、int()函数可以把其他数据类型转换为整数a=int(‘12‘):a=12 2、函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”: s = [1, 2, 3,3,4] a=max; a(s)等价于max(s); 3、定义函数:在 Python 中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回以上是关于Python 基础知识的主要内容,如果未能解决你的问题,请参考以下文章