python-函数

函数的相关博客:http://www.nnzhp.cn/archives/154 

1、函数  一个方法 一个功能

    函数不调用不被执行

    提高代码的复用性

2、函数的入参:

def hello(file_name,content):

  f=open(file_name,'a+')

  f.seek(0)

  f.write(content)

  f.close()

hello('a.txt','你好吗')

  形参:变量例如上边的file_name,

  实参:实际传入的参数,例如上述的a.txt

参数的类型:

位置参数:必填,即直接写的参数。例如上述的例子中 则为位置参数

默认值参数:在形参中直接指定,且默认值参数不必填,如果不传则使用默认值,传值则用传值

例如:

def hello(file_name,content=‘’):

  f=open(file_name,'a+')

  f.seek(0)

  f.write(content)

  f.close()

hello('a.txt','你好吗')   则内容为插入的值

hello('b.txt','')      则用默认值,为空

可变参数

# 可变参数,非必填,
#关键字参数

 

3、函数返回:  

如果想获取的到函数处理结果,必须带return 即带返回值

如果函数没有写return,则返回值为None,返回值return 非必须,需要获取函数的额返回结果在写即可

return 立即结束函数

def hello(file_name,content=‘’):

  f=open(file_name,'a+',encoding='utf-8')

  if content:

    f.write(content)

  else:

    f.seek(0)

    res=f.read()

    return res      #带return 则代表此函数带返回值

  f.close()

user=hello('a.txt')  即将返回值赋值为user

4、全局变量 和局部变量

修改全局变量需要 实现声明, 声明 global 

函数里边的变量都是局部变量

a=100

def test():

  a=5

  print(a)

test()

尽量不要用全局变量,不安全,且一直占内存。

5、函数return 返回多个值:

def hello(a,b,c,d):
  return a,b,c,d

返回值为多个时, 会把多个返回放在一个元组里边

 6、一个函数尽量只实现一个功能

7、内置函数: 参考博客http://www.nnzhp.cn/archives/152

input()\print()\type()\int()\str()\len()\      等函数

print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真       

print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真

print(bin(10))#十进制转二进制
print(chr(10))#打印数字对应的ascii
print(ord('b'))#打印字符串对应的ascii码
print(dir(1))#打印传入对象的可调用方法
print(eval('[]'))#执行python代码,只能执行简单的,定义数据类型和运算
print(exec('def a():pass'))#执行python代码, 例如那些 在线运行代码的网站中 实现
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]))
zip() : 同时将两个list 连一起,可迭代的都可以,例如以下:
ids=[1,2,3]
names=['xiaohei','xiaobai','xiaohuang','xiaolv']
for id,name in zip(ids,names):
print(id,name)              
返回:

sorted() #默认升序,reverse=True则为降序 , 字符串, list 都可以排序

d={'1','3','4','2'}
print(sorted(d,reverse=True))

map():
def func(a):
if a%2==0:
return a
else:
return False
nums=[x for x in range(11)]      #列表推导式
res=map(func,nums) #map 与以下四行 功能等效, 传参数2个,一个函数 一个list
# all_res=[]
# for num in nums:
# res=func(num)
# all_res.append(res)
print(nums)
print(list(res))
返回结果为: [0, False, 2, False, 4, False, 6, False, 8, False, 10]
 filter() 
def func(a):
if a%2==0:
return a
else:
return False
nums=[x for x in range(11)]
res=filter(func,nums) #filter循环调用函数,会将false 的过滤掉只保存真的
print(list(res))
返回结果为: [2, 4, 6, 8, 10]
 8、函数即变量
函数即变量:
def say(name):
print(name)
jyj=say
jyj('佳佳')


#练习01
def add():
print('添加商品')
def view():
print('查看商品')
def delete():
print('删除商品')
choice=input('请输入选择1、2、3')
menu={
'1':add, #建立映射,需要写函数名,不能写函数,函数即变量
'2':view,
'3':delete
}
if choice in menu:
menu[choice]() #menu[choice] 则取到对的字典中的变量,然后加上() 即调用函数,适合 函数无参数或者函数个数一样的情况
else:
print('输入错误')
posted @ 2018-01-14 09:46  jyjbeijing  阅读(152)  评论(0)    收藏  举报