函数
#常见内置函数
print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真
print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真
print(bin(10))#十进制转二进制
print(bool(None))#把一个对象转换成布尔类型
print(chr(69))#打印数字对应的ascii
print(ord('E'))#打印字符串对应的ascii码
s='nhy'
d={}
print(dir(d))#打印传入对象的可调用方法
exec('def a():print("我是a")')#执行python代码
a = eval('1+2') #也是用来执行python代码的,只能执行一些简单的代码,比如运算,[] {}
print(a)
print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))#把后面的迭代对象根据前面的方法筛选
print(map(lambda x:x>5,[1,2,3,4,5,6]))
print(max(111,12))#取最大值
print(min((1,2,3)))#取最小值
print(abs(-1))#取绝对值的
print(round(11.119999,3))#取几位小数
print(sorted([2,31,34,6,1,23,4]))#排序
#函数调用
def say(): #函数名
print('hello')#函数体
#函数不调用是不会被执行的
say() #调用函数
#函数的参数
def calc(a,b): #形参, 形式参数
#位置参数,必填参数
res = a * b
print('%s * %s = %s'%(a,b,res))
calc(7,8) #实参,实际参数
def op_file(file_name,conent=None):
#默认值参数,它是非必填的
f = open(file_name,'a+',encoding='utf-8')
f.seek(0)
if conent:#不为空代表写
f.write(conent)
f.flush()
else:
all_users = f.read()
return all_users #调用完函数之后,返回什么结果
f.close()
res = op_file('a.txt')
print(res)
def haha():
#函数里面遇到return函数就立即结束了
for i in range(5):
print(i)
if i==3:
return #只写一个return的话,就返回None
res = haha()
print(res)
#函数不固定参数
def syz(a,*args): #参数组
print(a)
username = args[0]
pwd = args[1]
age = args[2]
syz('niuhanyang','2423',23,23)
syz('1s','sdf') #会报错,因为函数参数组定义了3个参数,这里只传了一个
def syz2(time,**kwargs): #关键字参数
print(kwargs)
syz2('sdf') #关键字参数,传值多少个,就多少个,不会报错。不是必填
syz2(name='nhy',age=38,time='20180912')
syz2('2018',name='nhy',age=38,addr='回龙观',home='河南')
syz2(time='xx',xx='xxx')
#1、必填参数还是非必填的
#2、它有没有限制参数个数
#3、它是把传过来的参数放到哪里
全局变量
name = '谢红'
#全局变量
#如果要改全局变量的话,那你要先声明一下,你修改值是全局变量
def sayName():
global name
name = '刘伟'
print('name1',name)
def lw():
age = 28
return age
def setName():
global name
name = '摸手哥'
sayName() #刘伟
setName() #摸手哥
print('name2',name) #谢红