微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python函数

1、函数定义

def 函数名():

  函数

2.input函数和print函数

input()

接受一个标准输入数据,返回字符串类型

print("width =",w," height =",h," area =",area(w,h))

3.函数返回值

def 函数名():

  函数

  return 变量

print(函数名)

4.函数参数

def 函数名(参数1,参数2)

  return 变量

c=函数名(参数1,参数2)

print(c)

 5.不定长参数

一个函数能处理比当初声明时更多的参数,加了*的参数以元组的形式被导入,存放未命名变量参数.加了**的以字典形式被导入。

def printinfo( arg1,*vartuple ):

  "打印任何传入的参数"

  print ("输出: ")

  print (arg1)

  print (vartuple)

# 调用printinfo 函数

printinfo( 70,60,50 )

printinfo( 10 )

 

def printinfo( arg1,**vardict ):

  函数

printinfo(1,a=2,b=3)

 

如果单独出现星号 * 后的参数必须用关键字传入。

def f(a,b,*,c)

f(1,2,3) #错误

f(1,c=3)

 

6.匿名函数

  • lambda 只是一个表达式,函数体比 def 简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
  • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用函数时不占用栈内存从而增加运行效率。

a=lambda 变量1,变量2:函数

a(变量1,变量2)

 

7.作用域

global 变量名 #局部变量变全局变量

nonlocal 变量名 #使局部变量在上一层也能用

def outer():

  num = 10

  def inner():

    nonlocal num # nonlocal关键字声明

    num = 100

    print(num)

  inner()

  print(num)

outer()

输出

100

100

#错误示范,因为 test 函数中的 a 使用的是局部,未定义,无法修改

a = 10

def test():

  a = a + 1

  print(a)

test()

#正确示范

a = 10

def test(a):

  a = a + 1

  print(a)

test(a)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐