Python笔记 【无序】 【二】

序列
list() ——把一个可迭代对象【可以是字符串,元组】转化为列表,可不带参数——生成空列表,或者带一个迭代器作为参数
tuple() ——可迭代对象转化为元组
str(obj) ——把obj对象转换为字符串,返回一个对象的string格式

 

len(x) ——返回x的长度
max() ——返回序列或参数集合中的最大值
min() ——最小值 【max与min中的类型必须一样
代码:                   

 

输出:

 

sum(iterable,n)   ——返回序列iterable和可选参数n的数值总和【非数字类型不可】
sorted()   ——排序
reversed()   ——返回迭代器对象
enumerate()   ——枚举 返回迭代器对象 通过list()后产生[(0,n),(1,x),(2,y)……]
zip(a,b)   ——返回参数的序列组成的元组
a = [1,2,3] b=[4,5,6]
list(zip(a,b)) = [(1,4),(2,5)...]   ——zip的返回值类型是对象
 
 
 
函数参数
关键字参数:
调用:
xx(a='ccc',b='ddd') 即可以无视参数前后位置的影响
定义:
def xx(a,b):
  ...
 
默认参数:定义 + 调用使用】 必须放在最后,否则会报错
def xxx(a,b='123'):
    ……
即如果没传入b参数,则b使用默认值123

调用的时候可以不写参数,也可以重新定义参数
 
 
收集参数(可变参数)
def xxx(*y):
    ……
可以传多个参数 xxx('...',1,2.3,5,6,7) 【这些参数被当作元组处理】

#如果需要收集参数 + 固定参数【用关键字参数 + 默认参数处理】
 

python 只有函数【有return 返回值就返回那个,没有就返回一个None对象】,没有过程
 
 
 
 类型属于对象,变量是没有类型的

 

 
 
 
 
迭代
是重复反馈过程的活动,接近并达到目标  每次迭代后的结果,作为下次迭代的初始
 
定义函数:
def xxx():
   xxx……
   xxx……
调用函数:
xxx() /  xxx(参数)

含参数函数:
def xx(a,b):
    …… 
xx(1,2) / xx('aaaa','bbbbb')
 
函数的返回值:
return ……
 不带参数值的return语句返回None
 
 
函数文档 
函数内部的注释,可用xx._doc_ 打印
#这里是注释
 
 
return 默认返回一个元组【可修改】
return 1,2,'haha' —— (1,2,'haha')
return [1,2,'haha'] —— [1,2,'haha']
 
 
全局变量的修改
在函数内部修改的话,python会自动创建一个一模一样的局部变量【屏蔽方法】,从而不会修改全局变量
若想修改---> global

输出:10 30

 
 
内部函数
【作用域【即定义和调用】在外部函数之内,出了外部函数就无法调用】

输出:

 
 
 
闭包
【函数式编程】
如果在一个内部函数里对外部作用域【即外部函数】【有引用但不是对全局变量【相对于内部函数而言,外部函数定义的数也是全局变量,所以,可引用但不可修改】的引用 + 修改】,内部函数即被认为是闭包

输出:10

 
引用且修改:

输出:

如果加上nonlocal x

输出:10

 

 
 

匿名函数
使用lambda关键字创建
lambda x : x + 1                       #  :左面是参数,右面是返回值

输出:5

 

 

 
filter() 过滤器
有两个参数(函数名【不需要+()】 or None,可迭代对象)
1.第一个是函数的话,把可迭代对象中的数值当作函数的参数使用,返回结果为true的值筛选出来,返回对象,可用list()变成一个list
2.为None时,把可迭代对象中true的值筛选出来
 
 
map() 映射
有两个参数(函数名【不需要+()】,可迭代对象),可迭代对象中的数值当作函数的参数使用,直到加工完毕,返回所有加工完毕的结构构成的新序列
 

递归:
函数调用自身的行为
设置递归的深度:
import sys
sys.setrecursionlimit(100)   #设置深度100层
 
 
 
print(' xx '.center(10,'*'))
输出:

 

输出:

** xxxx **

 

 

输出变量值:

>>> i = 256*256
>>> print('i 的值为:', i)
i 的值为: 65536

end 关键字

关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符


# Fibonacci series: 斐波纳契数列
# 两个元素的总和确定了下一个数
a, b = 0, 1
while b < 1000:
    print(b, end=',')
    a, b = b, a+b

执行以上程序,输出结果为:

1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,

 

 

print() sep 参数使用:

>>> a=10;b=388;c=98
>>> print(a,b,c,sep='@')
10@388@98


 



posted @ 2019-04-10 21:53  远征i  阅读(249)  评论(0编辑  收藏  举报