python函数及模块

函数

函数是对程序逻辑进行结构化或过程化的一种编程方法,就是将完成一定功能的代码段组合在一起。

函数定义

def functionName(par1,par2,...):
	语句块
	...
	return expression

函数调用

函数调用注意传入参数的正确性。

functionName(par1,par2,...)

函数参数

除了函数的必选参数外,还有默认参数、可选参数和关键字参数。

  1. 默认参数
    默认参数的位置在必选参数的后面;默认参数一定是不可变对象。
def power(x,n=2):
    s=1
    while n>0:
        n=n-1
        s=s*x
    return s

print(power(3))  #9
print(power(3,3)) #27
  1. 可变参数
    可变参数的含义就是传入的参数个数是可变的,可以是任意个,例如1个、2个或3个等。
def calc(*num):
    s=0
    for n in num:
        s=s+n
    return s
print(calc(1,2,3,4))  #10
print(calc(3,4))  #7

  1. 关键字参数
    关键字参数传入 0 个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个 dict(字典)
def student(name, age, **other):
    print('name:', name, 'age:', age, 'other:', other)
student('XiaoMing', 20)      #name: XiaoMing age: 20 other: {}
student('XiaoMing', 20, sex='M')  # name: XiaoMing age: 20 other: {'sex': 'M'}
student('XiaoMing', 20, sex='M', num='120153703') # name: XiaoMing age: 20 other: {'sex': 'M', 'num': '120153703'}
  1. 参数组合
    参数可以组合使用,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

函数的嵌套

在一个函数里边,再定义一个函数。定义在其他函数内的函数叫作内部函数,内部函数所在的函数叫作外部函数。

def A(a):
    print('this is a')
    def B(b):
        print('this is b')
        print('a+b=',a+b)
    B(3)
    print('over!')
A(2)

#this is a
#this is b
#a+b= 5
#over!

内部函数可以访问外部函数传入的参数。

函数的递归调用

递归分为两类:直接递归和间接递归。
直接递归就是在函数中直接调用函数自身;间接递归就是间接地调用一个函数,如第一个函数调用另一个函数,而该函数又调用了第一个函数。

def fac(n):
    if n<=1:
        return 1
    else:
        return n*fac(n-1)
print(fac(4)) #24

变量作用域

在函数中定义的变量称为局部变量。局部变量只在定义它的函数内部有效。
在函数体之外定义的变量称为全局变量,全局变量在定义之后的代码中都有效。

模块

一个.py文件就是一个模块。使用模块最大的好处就是大大提高了代码的可维护性。

导入和创建模块

  1. 导入模块
#导入整个模块
import module1[, module2[,… moduleN]
#导入模块中某一函数
from modname import name1[, name2[,… nameN]]
  1. 创建模块

创建一个test.py文件,在文件中定义函数:

def add(a,b):
	return a+b

在其他文件中,可以导入并使用该函数:

import test
print(test.add(2,4)) #6
---------------
from test import add
print(add(2,4)) #6

常见内建模块

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值