Python-------函数

本文详细介绍了Python中的函数,包括内置数据结构、函数定义与理解、动态添加成员、形参类型(位置参数、默认参数、可变参数、关键字参数)、返回值、变量作用域、参数数据类型判断以及参数组合。通过示例展示了函数的多种用法,如计算圆面积、列表生成等,并强调了默认参数必须为不可变数据类型,以及参数定义的顺序规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.内置数据结构小结

【1】可变数据类型or不可变数据类型

可变数据类型:list   set   dict (是否可以增删该查)

【2】有序数据类型和无序数据类型

有序:str  , list  ,tuple

无序:数值,bool , set

注意:python2   dict无序;python3  dict有序

一般情况下,有序数据类型可以索引,切片,连接,重复,但是字典除外 

2.函数的定义与理解

部分需要缩进的:

if    ,elif   ,else   ,for    ,while   ,def

例; 圆面积

import   math

s1=math.pi*(2**2)

s2=math.pi*(pow(3,2))

print(s1,s2)

如何定义一个函数

例;   def   print(self   ,*arge,   sep '', end='\n', file=None )

def  函数名():

        函数体

函数里嵌套函数

def    fentiao():

       print("is fentiao,,,,,,'')

       def   westos():

               print("westos'')

fentiao()

name:定义函数的变量,叫做形参,形参可以任意起名

调用函数时传递的参数称为实参

例:编写一个名为collatz()的函数,他有一个名为number的参数

如果参数是偶数,collatz()打印出number//2

如果参数是奇数,collatz()打印出3*number+1

def collatz(number):

     if  num    %2==0:

              print(number//2)

     else:

            print(3*number+1)

        print(number//2   if  number%2==0   else   3*number+1 )

collatz(2)

3.函数动态添加成员

def   fun ():

    print(fun.x)

动态添加

fun.x=3

fun()

动态删除

del   fun.x

fun()

4.函数形参之参数类型

参数:形参,实参

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

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

                  del   getInfo(name,age)  ##按照位置传参数

                            print(name,age)

getInfo = (12 , "name")

getInfo=(age=18,  name="westos")

getInfo("westos")

默认参数:

    def   mypow(x,y=2):

        print(x**y)                          ##求x的y次方,y默认值为2

mypow(4)

mypow(4,3)

def  mySum(*args)     ##用户可以传递任一个数,*args是可变参数,args是元组数据类型

 sum=0

for   item  in  args;

        sum  +=  item

      print(sum)

mySum(1,2,3,4,5,6,76) 

关键字参数

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

       print(name  ,   age)

      print(kwargs)

getStuInfo(“westos”,19  ,hobbies=["code",  "runing"], gender='female')

参数解包:   *变量名    **变量名

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

nums=[1,2,3,4,5,23,56]

nums=(1,2,3,4,5,23,56)

nums={1,2,3,4,5,23,56}

mySum(*nums)

如果要对字典解包,一个*获取所有key值

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

print(*d)

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

res1 =print(“hello")

    print("返回值:",res1)

res1 =min([2,4,6])

print("返回值:",res2)

5.函数返回值

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

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

默认参数,形参和实参可以不一致

python可以间接返回多个值

一旦遇到return,函数执行结束,后米阿曼的代码不会执行

def   mypow(x,  y=2)

return  x**y   ,x+y

print(mypow(4))

a =print( mypow(4,3))

print(a+100)

a,b=mypow(2,2)

print(a,b)

6.变量的作用域

局部便量

在函数内部定义的普通变量,只在函数内部起作用

可变,函数内部改变影响外部变量值

不可变,函数内部改变不会影响外部变量值

全剧变量

a  =1

def   fun();

       a=5

fun()

print(a)

全局变量

a =1

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

def  fun ():

   a=5

print("inside",id(a))

a = [1,2,3,4]

print("0utside;",id(a))

def fun():

a.append(5)

print("inside",id(a))

print(a)

7.参数数据类型判断

if   isinstance(x,int)   and   isinstance(y,   int):

      return x+y

else:

    print('error')

print(add(1.0,2.3))

参数检测

isinstance(1,int)

True

isinstance(1.0, int)

False

isinstance(1,(int,float))

True

isinstance(True,(int,float))

True

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

False

8.函数补充

cmp函数在python和python3中的区别:

python2.7.5(default,Aug  2  2016,04:20:16)

>>>cmp(1,2)

-1

>>>cmp(1,1)

0

>>>cmp(2,1)

1

python3:直接报错,不支持

默认参数在制定时,必须是不可变数据类型

def  fun(li=[]):

     li.append("END")

     return li

print(fun([1,2,3]))

print(fun())

print(fun())

9.参数组合

参数组合是指可以必选参数,默认参数,可变参数和关键字参数一起使用

参数定义的顺序必须是;必选参数,默认参数,可变参数和关键字

10.列表生成

接收k,a,b

s='51    5000   10000'

存储整形的k,a,b

li=[]

for  item  in  s.split():

   li.append(int(item))

k,a,b=[int(item)  for  item  in  s.split()]

print(k,a,b)

li=[]

for  i  in  range(1,8):

   li.append(i**i)

print(li)

print([i**i  for  i  in  range(1,8)])

例3*3矩阵转换成一维数组

{

        [1,2,3],

        [4,5,6]

        [7,8,9]

}

li={

        [1,2,3],

        [4,5,6]

        [7,8,9]

}

resLi=[]

for item1  in li:

  for  item2  in item1:

          resLi.append(item2)

print(resLi)

print([item2  for  item1  in  li  for  item2  in  item1  if  item2  %2==0])

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值