零基础学Python 学习笔记 | (5)模块与函数(下)

一 自定义包

前章讲过,文件夹必须包含_ _init_ _.py文件,才能被识别为包

1.定义:包中包含模块

右图中,Pack的结构如下:

(1)_ _init_ _.py:

    包的标识文件,在里面可以定义模块列表

_ _all_ _=['ModuleA','ModuleB']

    在没有定义模块列表时,导入ModuleA只能这样:

from Pack import ModuleA

    在定义了模块列表之后,还可以使用‘*’导入

from Pack import * 
# 会在Pack标识文件中寻找模块列表并导入

(2)ModuleA.py:  包含类/函数

(3)ModuleB.py:   包含类/函数

2.定义:包中有小包,小包中再包含模块


只需要,用上面1中的方法定义好小包(packageA 和 packageB),然后将小包放在大包(Package)中

调用模块:

from Package.packageA import ModuleA
from Package.packageB import ModuleC


二 .函数

1.函数的定义

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

    .......

    return 表达式/变量

函数名由字符,数字,下划线构成,但不能以数字开头,函数的类型即返回值的类型,参数可以一个或者多个,用逗号隔开

(1)

def func():
  pass
  
print(func())

#输出:None

pass相当于一个占位符,什么也不干

(2)

def func():
   return 

print(func())

#输出:None

不带return语句和return语句不带参数时,返回都是None

None是一个对象,不属于数字也不属于字符串

(3)排序函数:1.装入列表 2.使用列表排序 3.‘打包进元组’4.解压

def func(x,y,z):
  num=[x,y,z]
  num.reverse() #反转排序
  numbers=tuple(num)
  return numbers

x,y,z=func(1,2,3)
print(x,y,z)
# 输出:3 2 1

    (a)列表反转排序:list.reverse()  将列表元素位置颠倒

    (b)  tuple()使用方法

>>>tuple([1,2,3,4])
 
(1, 2, 3, 4)
 
>>> tuple({1:2,3:4})    #针对字典 会返回字典的key组成的tuple
 
(1, 3)
 
>>> tuple((1,2,3,4))    #元组会返回元组自身
 
(1, 2, 3, 4)

2.嵌套函数

(1).嵌套外部函数:

funcA()

funcB  ()

funcC()内部调用了funcA()和funcB()

(2).内部函数

funcC()内部定义了funcA和funcB()

两个子函数可以直接使用func()父函数的变量

3.lambda函数

格式:

lambda var1,var2:表达式
该函数用于创建一个匿名函数,只能使用表达式,用于返回表达式的结果。不能使用判断,循环等语句,


#lambda

def func():

    x=1

    y=2

    sum=lambda x,y:x+y   # 计算x+y结果 赋值给sum

    sub=lambda x,y:y-x   #计算y-x结果  赋值给sub

    return sum*sub

print(func())

4.函数的调用


(1)没有默认参数值的情况:

>>> def func(name,age):
    print('Hi ',name,'I hear you\'re',age)

>>> 
>>> func('TL',18)
Hi  TL I hear you're 18
>>> func(age=20,name='LC')
Hi  LC I hear you're 20
>>> 

(2)有默认值的情况

>>> def func(name='ZS',age=12):
    print('Hi ',name,'I hear you\'re',age)

>>> func()
Hi  ZS I hear you're 12
>>> func('TL',18)
Hi  TL I hear you're 18
>>> func(age=20,name='HY')
Hi  HY I hear you're 20
>>> 

5.全局与局部变量


(1)函数内读取全局变量的情况

>>> str='Hello world'
>>> def func():
    print(str)

>>> func()
Hello world
>>> 

(2)函数内屏蔽全局变量的情况

>>> str='Hello world'
>>> def func():
	str='Python'
	print(str)

>>> func()
Python
>>>


(3)函数内使用全局变量的情况

>>> str='Hello world'
>>> def func():
	global str
	print(str)
	str='Java'
	print(str)

>>> func()
Hello world
Java
>>> 







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值