python函数

函数

定义函数

def hello():

print ‘hello’

print  ‘world’

定义好一个函数后函数不会自动执行函数体里面的内容

需要使用时,要调用函数

Hello()

 

 

 

函数里面嵌套函数

 函数里面嵌套函数

 def fentiao():

     print("is fentiao......")

     def westos():

         print("westos")

 fentiao()

 

 

函数参数的使用

在函数名后的小括号内填写 参数

多个参数之间用,分隔

定义函数时的变量,叫形参 形参可以任意起名字

def sum_2_sum(num1,num2):

    """

 

    :param num1:

    :param num2:

    :return:

 

    """

    result = num1 + num2

    print '%d + %d = %d' %(num1,num2,result)

 

# 在调用函数的时候

# 在调用函数时传递得参数称为实参(真实的数据信息)

sum_2_sum(5,20)

 

 

 

函数动态添加成员

 def fun():

     print(fun.x)

 # fun()

 

 # 动态添加

 fun.x = 3

 fun()

 

 # 动态删除

 del fun.x

 fun()

 

 

 

 

函数的参数

参数: 形参,实参

形参:位置参数,默认参数,可变参数,关键字参数

 

位置参数:形参和实参必须保持一致

 def getInfo(name,age):

     print name,age

 getInfo(age=12,name='westos')

 

 # 默认参数:形参和实参的个数可以不一致

 def mypow(x,y=2):

     """

     求x的y次方,y的值默认为2

     :param x:

     :param y:

     :return:

     """

     print x**y

 mypow(4)

# 默认形参可以改变

 mypow(4,3)

 

 # 可变参数

 def mysum(*agrs):

     """

     *args:是可变参数

      args:是元组类型数据

      args:名字可变(因为是形参 名字可变)

     :param agrs:

     :return:

     """

     print agrs

     sum = 0

     for item in agrs:

         sum += item

     print sum

 

 # 对list tuple set 解包时,只需要在变量前加 *

 nums = [1,2,3,4,66,78]

 nums1 =(1,2,3,4,5)

 nums2 = {1,2,3}

 # *nums:解包

 mysum(*nums2)

 #mysum(1,2,3,4,5)

 

 

 

# 4.关键字参数

def getStuInfo(name,age,**kwargs):

    """

    **kwargs:是一个字典;可以传递任意多的key-value对

    :param name:

    :param age:

    :param kwargs:

    :return:

    """

    print name,age

    print kwargs

getStuInfo('westos',18,hobbies=['code','running'],gender ='female')

 

# 如果要对字典解包, 一个星号,获取所有的key值;

d = dict(a=1, b=2)

print(*d)

getStuInfo("westos", 12, **d)

 

 

 

 

 

 

 

函数的返回值

返回值:函数运算的结果,还需要进一步操作时,给一个返回值;

Return用来返回函数执行结果的,如果没有返回,默认为None(null,none);

Python可以间接返回多个值;原理:返回的是一个元组,将来对元组进行解包.

一旦遇到return,函数执行结束,后面的代码不会执行,(yield)

def mypow(x, y=2):

    """

    求x的y次方, y默认值为2

    :param x:

    :param y:

    """

    return  x**y, x+y

 

# print(mypow(4))

# a = mypow(4,3)

# print(a+100)

 

对元组进行解包

a, b = mypow(3)

print(a,b)

 

 

 

 

变量的作用域:

局部变量:在函数内部定义的普通变量,只在函数内部起作用,函数执行结束,变量会自动删除。

-可变:函数内部改变会影响外部变量的值

-不可变:函数内部改变不会影响外部变量的值

全局变量:

global

a = 1

print("outside:", id(a))

 

def fun():

    global  a  # 声明a为全局变量

    a = 5

    print("inside", id(a))

 

fun()

print(a)

print(id(a))

 

 

# a = [1,2,3,4]

# print("outside:", id(a))

# def fun():

#     a.append(5)

#     print("inside", id(a))

# fun()

# print(a)

 

 

 

 

函数参数数据类型的判断

isinstance(1, int)

Out[4]: True

isinstance(1.0, int)

Out[5]: False

isinstance(1, (int, float))

Out[6]: True

isinstance(True, (int, float))

Out[7]: True

isinstance([1,2,3], (int, float))

Out[8]: False

 

 

 

 

 

 

匿名函数

匿名函数定规则:lambda 形参:返回值

 

 

def fun(*args,**kwargs):

return args,kwargs

 

Pri nt lambda *args

 

 

# 问题描述: 有一个整数列表(10个元素), 要求调整元素顺序,

#           把所有的奇数放在前面, 偶数放在后面,

#

import random

 

li = [random.randint(1, 10) for i in range(10)]

print(li)

 

print(sorted(li, key=lambda x: 1 if x % 2 == 0 else 0))

print(sorted(li, key=lambda x:  x%2==0))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值