Python笔记

作者: 饮骅娜娜 | 来源:发表于2018-05-10 11:32 被阅读0次

要点1 :list和tuple

list例如:classmates=['michael','kangkang','heima'],索引从0开始,取最后元素可以直接使用classmates[-1],类退classmates[-2],list是可变数组

classmates.append('daanna')

classmates.insert(1,'kangkai')原来1位置元素后移

classmates.pop()删除末尾元素classmates.pop(1)删除指定位置元素

list元素类型可以不同,可以循环嵌套,即list里面可以套list,替换直接classmates[1]='michael';

tuple元组类似数组,但是tuple一旦初始化就不能改变,这个相对于list更为安全,不可变;

如果想要提前定义元组的个数,可以定义t=(2),但是定义元组个数为1时候,会出现歧义,所以t=(1,)

要点2 :条件函数

if a > 2 :

print('a大于2!')

elif :

print('a等于2!')

else :

print('a小于2!')

循环函数

sum=0;

for x in [1,2,3,4] :

sum =sum+x

sum = 0

for x in range(101):

sum = sum+x

要点3 :dict字典 set

dict{'1':'kangkang','2':'heima'}删除key方法dict.pop('1')

dict.get('kangkang'),返回none则不存在这个key,也可通过dict.get('kangkang',-1)返回-1表示不存在这个key

'kangkang' in dict返回false则不存在该key

set([1,2,3]),set中是不可以重复的,会自动去重,并且里面顺序是无序的;可以set.add(),set.remove()

要点4 : 自定义函数使用def函数

例如:def my_abc():

if x > 0 :

return x

else :

return x-100

内置函数会检查参数类型,上面定义函数不会检查,如果需要检查,需要 添加

def my_abc():

if not isinstance(x, (int, float)):

      raise TypeError('bad operand type,参数错误!')

if x > 0 :

return x

else :

return x-100

要点5 :自定义函数设置默认函数

def add_end(L=[]):

    L.append('END')

    return L

例如:def add_end(L = None) :

if L is None :

L = []

L.append('end')

return L;

Python函数在定义的时候,默认参数L的值就被计算出来了,即[],因为默认参数L也是一个变量,它指向对象[],每次调用该函数,如果改变了L的内容,则下次调用时,默认参数的内容就变了,不再是函数定义时的[]了。

要点6 :自定义函数设置可变参数

def print1(a,b,c):

print('a'a,'b',b,'c',c)

简写:

def print1(*numbers):

sum = 0

for i in numbers :

sum = i+sum

print(sum)

要点7 :自定义函数关键字参数

def person(**kw) :

print('name',name,'age',age,'other',kw)

命名关键字参数

def person(name,age,*,city,job)

print(name,age,city,job)

可知,可变参数就是一个list,关键字参数算是dict

list[1,2,3],tuple(1,2,[1,2]),dict{'michle':4,'kangkang':5},set{1,2,3,4}结果不能重复;

要点8 : 递归函数

def xpow(n) :

sum = 1

if n > 1 :

sum = n * xpow(n-1)

return sum;

要点9 :切片

list[0:10]-----0到9 可以简单或list[:10]

list[1:10]-----1到9切片还可以反向来list[-1:]最后一个list[-10:-1]-10,-9,-8.....

要点10 : 迭代

for x in list :

pass

for x in "abc" :

print(x)      ##结果为a,b,c

可以利用函数isinstance('abc',Iterable)判断是否可以迭代true or false

利用迭代求一个list的最小值和最大值

min = None

max = None

for item in L:

    if min == None or item < min:

        min = item

    if max == None or item > max:

        max = item

return (min, max)

要点11 : 列表生成式

如果需要生成list中元素的乘积可以使用列表生成式

[x*x for x in range(0,10) if x % 2 ==0]结果显示为 0 1 4 9......

双层循环

[ x + y for x in range(1,5) for y in range(6,9)]

迭代字典

d = {'x':1,'y':2,'z':4,'t':5}

for k,v in d.items() :

print(k,'=',v)

字符串小写

L = ['HELLO','WORLD','IBM','APPLE']

[s.lower() for s in L]

要点12 :生成器

为解决大数据量的问题,列表生成式会面临一个内存溢出的问题,所以我们使用生成器

只需要在列表生成式[]改为()即可;然后调用迭代其即可;

正常形式

def fib(max):

    n, a, b = 0, 0, 1

    while n < max:

        print(b)

        a, b = b, a + b

        n = n + 1

    return 'done'

generate形式只需要添加yield就可以了

def fib(max):

    n, a, b = 0, 0, 1

    while n < max:

        yield b

        a, b = b, a + b

        n = n + 1

    return 'done'

    然后f = fib(6)

    迭代f就好了  for x in f: print(x)

相关文章

网友评论

    本文标题:Python笔记

    本文链接:https://www.haomeiwen.com/subject/fkdzrftx.html