标签:最小 负数 根据 pytho 处理 sort 列表排序 大写 import
## 定义函数
def test(x):
# 说明函数功能
x += 1
return x
## 调用函数
print(test(4))
def test():
pass
print(test) ### 输出函数名 内存地址:<function test at 0x00D91108>
—过程:没有返回值(return)的函数
— python 中 没有return,默认返回 None
— 返回值>1 ,返回一个tuple(元祖)
— 形参 实参
— 一个参数不能传两遍值
— 位置参数一一对应,不多不少
—关键字参数,无需一一对应,不多不少
def test(x,y,z):
print(x)
print(y)
print(z)
test(z=1,y=4,x=4)
— 位置参数必须在关键字参数的左边
— 默认参数
def test(x,y=‘gogo‘):
print(x,y)
test(1) ### y为默认参数 1 gogo
test(4,‘not‘) ### 传参覆盖y的默认值, 4 not
— 参数组
*列表
def text(x,*args):
print(x,args,args[4])
text(3,4,656,76,43,5,4) ## 3 (4, 656, 76, 43, 5, 4) 5
text(3,*[‘d‘,2,‘f‘]) ## 3 (‘d‘, 2, ‘f‘)
**字典
def test(x,**kwargs):
print(x,kwargs)
test(4,y=‘fd‘,z=‘ew‘) ### 4 {‘y‘: ‘fd‘, ‘z‘: ‘ew‘}
def test(x,*args,**kwargs):
print(x,args,kwargs)
test(4,‘sdad‘,4,5,6,y=‘fd‘,z=‘ew‘) ### 4 (‘sdad‘, 4, 5, 6) {‘y‘: ‘fd‘, ‘z‘: ‘ew‘}
— 全局变量名大写
— 局部变量名小写
name = ‘全局‘
def change_name():
name = ‘局部‘
print(‘change_name‘, name)
change_name() ### change_name 局部
print(name) ### 全局
name = ‘全局‘
def change_name():
global name
name = ‘局部‘
print(‘change_name‘, name)
change_name() ## change_name 局部
print(name) ### 局部
name = [‘全局‘,‘变量‘]
def change_name():
name.append(‘可操作‘)
print(‘change_name‘, name)
change_name() ### change_name [‘全局‘, ‘变量‘, ‘可操作‘]
print(name) ### [‘全局‘, ‘变量‘, ‘可操作‘]
### 函数可嵌套,函数若不调用,不执行
def first():
name = ‘第一层‘
print (name)
def second():
name = ‘第二层‘
print(name)
second()
print(name)
first() ### 第一层
### 第二层
name = ‘全局‘
def first():
name = ‘局部‘
def second():
global name
name = ‘改变‘
second()
print(name)
print(name)
first()
print(name)
### 全局
### 局部
### 改变
— 函数内部调用自身
— 有明确结束条件(死循环会报错)
import time
def calc(n):
print(n)
time.sleep(1) ## 停顿1s
calc(n)
calc(10)
def cal(n):
print(n)
if int(n/2) == 0:
return n
return cal(int(n/2))
cal(10) ### 10 5 2 1
def test1():
print(‘test1‘)
def test():
print(‘test‘)
return test1 ## return可以返回任何值
res = test() ### 执行test(),返回函数名 test1
print(res) ### 打印函数名(即函数的内存地址)<function test1 at 0x00A31108>
print(res()) ### 执行test1() ,并将返回值打印,默认为None
name = ‘全局‘
def first():
name = ‘第一层‘
def second():
name = ‘第二层‘
def third():
print(name)
return third
return second
first()()() #### 第二层
def calc(x):
return x+1
print(calc(12))
### 可以表示为匿名函数的形式
### x是形参 : 操作并return出来
lambda x:x+1 ### 类似于函数名,是内存地址
### 运行匿名函数
func = lambda x:x+1
print(func(10)) ### 11
(1)函数接收的参数是一个函数名
(2)返回资中包含函数
map(func(函数功能),array(可迭代对象)):处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素的个数及位置与原来相同
num = [1, 2, 3, 4, 5, 6]
def map_test(func, array):
ret = []
for i in num:
res = func(i)
ret.append(res)
return ret
print (map_test(lambda x: x + 1,num)) ###[2, 3, 4, 5, 6, 7]
### 用map 函数实现
s = map(lambda x:x**2,num)
print(list(s)) ### [1, 4, 9, 16, 25, 36]
filter(func(函数功能),array(可迭代对象)):遍历序列中每一个元素,判断元素是否满足条件得到布尔值,如果是True则保留
member = [‘gogo‘,‘baba‘,‘kaka‘]
def filter_test(func,array):
ret = []
for p in member:
if not func(p):
ret.append(p)
return ret
res = filter_test(lambda n:str(n).endswith(‘a‘),member)
print(res) ### [‘gogo‘]
### 用filter 函数实现
print(list(filter(lambda n:not str(n).endswith(‘a‘),member)))
filter(func(函数功能),array(可迭代对象),initial(初始值)):处理一个序列,对序列进行合并操作
### 列表元素相乘,设置初始值init
num = [1,2,3,4,5]
def reduce_test(func,array,init=None):
if init is None:
res = array.pop(0)
else:
res = init
for num in array:
res = func(res,num)
return res
print (reduce_test(lambda x,y:x*y,num,10))
### reduce函数
from functools import reduce
print(reduce(lambda x,y:x*y,num,10))
### 内置函数
## 1、abs() 取负数
print(abs(-3)) ## 3
## 2、all() 取所有元素做布尔运算
## False: 0 ‘ ‘ None []
## 可迭代对象为空,返回True
print(all([1,2,‘re‘,0]))
## 3、any() 任意为真则为真
print(any([1,0,‘‘]))
## 4、bin() 十进制转二进制
## hex() 十进制转十六进制
## oct() 十进制转八进制
print(bin(3))
## 5、bool() 布尔运算 False:空,None,0
print(bool(1))
## 6、bytes() 字节
name = ‘好‘
print(bytes(name,encoding=‘utf-8‘)) ## b‘\xe5\xa5\xbd‘ 3字节一个汉字
print(bytes(name,encoding=‘utf-8‘).decode(‘utf-8‘))
print(bytes(name,encoding=‘gbk‘)) ## b‘\xba\xc3‘ 2字节一个汉字
print(bytes(name,encoding=‘gbk‘).decode(‘gbk‘))
#print(bytes(name,encoding=‘ascii‘)) ## ascii码不能编码汉字
## 7、divmod() 商,余数
print(divmod(10,3)) ## (3, 1)
## 8、eval()
## 把字符串中的数据结构提取出来
## 把字符串中的数学运算进行运算
print(eval(‘2+3+4‘))
## 9、hash()
## 可hash的数据类型,即不可变数据类型
## 判断是否被修改
name = ‘hh‘
print(‘before‘,hash(name)) ## before -1094276877
name = ‘kk‘
print(‘after‘,hash(name)) ## after 210196591
## 10、isinstance()
print(isinstance(4,int)) ## 判断类型
## 11、globals() 打印全局变量
print(globals())
## locals() 打印局部变量
print(locals())
## 12、 zip() 拉链 传序列 一一对应,多余舍去
## 序列:列表、元祖、字符串
print(list(zip((‘a‘,‘s‘,‘d‘),(1,2,3)))) ##[(‘a‘, 1), (‘s‘, 2), (‘d‘, 3)]
dic = {‘name‘:‘Amy‘,‘age‘:19,‘gender‘:‘female‘}
print(list(zip(dic.keys(),dic.values())))
## [(‘name‘, ‘Amy‘), (‘age‘, 19), (‘gender‘, ‘female‘)]
print(list(zip(‘hello‘,‘123‘)))
## [(‘h‘, ‘1‘), (‘e‘, ‘2‘), (‘l‘, ‘3‘)]
min() max()
— 处理对象是可迭代类型,相当于循环每一个元素进行比较
— 不同类型元素无法比较
— 每个元素进行比较,是从元素第一个位置开始比较,如果这个位置比较出大小,后面位置可不用比较,直接得出大小
## 13、 max() min() 最大最小值
## 不同类型不能进行比较
li = [1,2,3,45,6]
print(max(li))
### 字典中的最值
age_dic = {‘age1‘:12,‘age4‘:13,‘age3‘:16}
print(max(age_dic)) ### 默认比较key age4
print(max(age_dic.values())) ### 比较value 16
zip(age_dic.values(),age_dic.keys()) ## key 和 value 调换
print(max(zip(age_dic.values(),age_dic.keys()))) ## (16, ‘age3‘)
people = [
{‘name‘:‘Amy‘,‘age‘:45},
{‘name‘: ‘Bob‘, ‘age‘: 34},
{‘name‘: ‘Lisa‘, ‘age‘: 23},
{‘name‘: ‘Lucy‘, ‘age‘: 26},
]
print(max(people,key=lambda dic:dic[‘age‘])) ## {‘name‘: ‘Amy‘, ‘age‘: 45}
## 14、 chr() 打印ASCII码表中位置 ## ord() 与上面相反 ## 15、pow() print(pow(3,3)) ## 3**3 print(pow(3,3,2)) ## 3**3%2 ## 16、reversed() 反转 print(list(reversed([1,2,3,4]))) ### [4, 3, 2, 1] ## 17、round() 四舍五入 print(round(8.7)) ## 9 ## 18、slice() 切片 s = ‘hello‘ s1 = slice(3,5) print(s[s1]) ## lo
## 19、sorted() 排序
li = [3,5,1,4,1,3]
print (sorted((li))) ## [1, 1, 3, 3, 4, 5]
## 列表排序
people = [
{‘name‘:‘Amy‘,‘age‘:45},
{‘name‘: ‘Bob‘, ‘age‘: 34},
{‘name‘: ‘Lisa‘, ‘age‘: 23},
{‘name‘: ‘Lucy‘, ‘age‘: 26},
]
print(sorted(people,key=lambda dic:dic[‘age‘]))
## 字典排序
name_dic = {
‘Amy‘:99,
‘Haha‘:78,
‘Kaka‘:90
}
print(sorted(name_dic)) ### 默认根据key排序
print(sorted(name_dic,key=lambda key:name_dic[key])) ### [‘Haha‘, ‘Kaka‘, ‘Amy‘]
print(sorted(zip(name_dic.values(),name_dic.keys()))) ## [(78, ‘Haha‘), (90, ‘Kaka‘), (99, ‘Amy‘)]
## 20、sum() 求和
print(sum(range(5))) ## 10
## 21、 type() 数据类型
print(type(‘we‘)) ## <class ‘str‘>
## 22、 vars()
def test():
## 打印 {‘msg‘: ‘hello hello hi‘}
msg = ‘hello hello hi‘
print(locals())
print(vars())
test()
## 23、import 不能导入字符串模块名
## __import__() 导入字符串模块名
标签:最小 负数 根据 pytho 处理 sort 列表排序 大写 import
原文地址:https://www.cnblogs.com/motoharu/p/10241918.html