python系列笔记

1.注释:#和''' '''
2.缩进建议使用4个空格
3.与或非:and,or,not
4.空值:None
5.常量:
(1)在Python中,通常用全部大写的变量名表示常量:PI=3.1415926
(2)但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变, 大写的变量名表示常量只是一个习惯上的用法
6.两种除法:
(1)print(10/3)    #3.3333333333333335
(2)print(10//3)    #3
7.字符编码:
(1)ASCII->GB2312->Unicode->UTF-8
(2)# -*- coding: utf-8 -*-
8.list:
myList=['a','b','c']
len(myList)    #3
myList[0]    #a
myList.append('d')    #['a','b','c','d']
myList.insert(1,'ins')    #['a', 'ins', 'b', 'c', 'd']
myList.pop()    #['a', 'ins', 'b', 'c']
myList.pop(1)    #['a', 'b', 'c']
myList[1]='temp'    #['a', 'temp', 'c']
9.tuple:
(1)一旦初始化就不能修改
(2)只有1个元素的tuple定义时必须加一个逗号:t=(1,)
10.if:
if x:
    print('True')    #只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
11.dict:一个key只能对应一个value
d={'a':1,'b':2,'c':3}
d['d']=4    #{'a': 1, 'b': 2, 'c': 3, 'd': 4}
'e' in d    #False
d.pop('d')    #{'a':1,'b':2,'c':3}
12.list和dict:
dict:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多
list:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少
13.set:
和dict类似,也是一组key的集合,但不存储value
s=set([1,2,3])
s.add(4)    #{1, 2, 3, 4}
s.remove(4)    #{1,2,3}
14.函数参数
(1)默认参数:myPow(x,n=2)
默认参数必须指向不变对象
(2)可变参数:
def mySum(*nums):
    sum=0;
    for n in nums:
        sum=sum+n;
    return sum
ns=[1,2,3,4]
mySum(*ns)    #10
(3)关键字参数:函数除了必须参数外,还可以接受任意个数的关键字参数
def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra)    #name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}
(4)命名关键字参数:
15.切片:
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
 print(L[0:3])    #['Michael', 'Sarah', 'Tracy']
l = list(range(50))
print(l[::10])    #[0, 10, 20, 30, 40]
16.迭代:
dic默认迭代的是key
d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
    print(key)   
迭代value:for value in d.values()
键值一起迭代:for k,v in d.items()
对list的索引-值迭代:
for i,v in enumerate(['a','b','c']):
    print(i,v)
17.列表生成式:
l=[x*x for x in range(1,5)]    #[1, 4, 9, 16]
18.生成器(generator):#这点还不太了解
g = (x * x for x in range(10))
for n in g:
    print(n)


def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        yield b
        a, b = b, a + b
        n = n + 1
    return 'done'
for n in fib(6):
    print(n)
19.迭代器:可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator).

你可能感兴趣的:(python)