Python基础 : 函数&模块

注:参考骆昊的Python - 100天从新手到大师项目笔记

1. 函数

函数的概念

  • 在python中,自变量是函数的参数,因变量是函数的返回值 定义函数:关键字def 这里回忆变量命名规则

  • def那一行的最后面还有一个** : **(冒号别忘了)

如何定义函数(案例)

  • 计算组合数

    """
    将8个苹果分成四组且每组至少一个苹果有多少种方案,因此该问题还可以进一步等价于
    在分隔8个苹果的7个空隙之间插入三个隔板将苹果分成四组有多少种方案,
    也就是从7个空隙选出3个空隙放入隔板的组合数,所以答案是C(7,3)=35
    
    输入M和N计算C(M,N)
    
    Version: 0.1
    Author: 骆昊
    """
    m = int(input('m = '))
    n = int(input('n = '))
    # 计算m的阶乘
    fm = 1
    for num in range(1, m + 1):
        fm *= num
    # 计算n的阶乘
    fn = 1
    for num in range(1, n + 1):
        fn *= num
    # 计算m-n的阶乘
    fm_n = 1
    for num in range(1, m - n + 1):
        fm_n *= num
    # 计算C(M,N)的值
    print(fm // fn // fm_n)
    
    
  • 定义函数后

    """
    """
    输入M和N计算C(M,N)
    
    Version: 0.1
    Author: 骆昊
    """
    
    # 定义函数:def是定义函数的关键字、fac是函数名,num是参数(自变量)
    def fac(num):
        """求阶乘"""
        result = 1
        for n in range(1, num + 1):
            result *= n
        # 返回num的阶乘(因变量)
        return result
    
    
    m = int(input('m = '))
    n = int(input('n = '))
    # 当需要计算阶乘的时候不用再写重复的代码而是直接调用函数fac
    # 调用函数的语法是在函数名后面跟上圆括号并传入参数
    print(fac(m) // fac(n) // fac(m - n))
    
    

函数的参数

  • 函数的参数返回值 参数可以没有,但必须有(),允许参数默认值的存在

  • 若函数没有return语句,则默认返回None

  • 定义函数,若要确定默认值,则直接在定义函数中参数确定一个数值

  • 带默认值的参数必须放在不带默认值的参数之后,否则将产生SyntaxError错误(这应该是在定义函数时参数的顺序位置)

  • 可变参数:在参数前面加个*

    def add(a=0, b=0, c=0):
        """三个数相加求和"""
        return a + b + c
    
    
    # 调用add函数,没有传入参数,那么a、b、c都使用默认值0
    print(add())         # 0
    # 调用add函数,传入一个参数,那么该参数赋值给变量a, 变量b和c使用默认值0
    print(add(1))        # 1
    # 调用add函数,传入两个参数,1和2分别赋值给变量a和b,变量c使用默认值0
    print(add(1, 2))     # 3
    # 调用add函数,传入三个参数,分别赋值给a、b、c三个变量
    print(add(1, 2, 3))  # 6
    # 传递参数时可以不按照设定的顺序进行传递,但是要用“参数名=参数值”的形式
    print(add(c=50, a=100, b=200))    # 350
    
    
    
    # 用星号表达式来表示args可以接收0个或任意多个参数
    def add(*args):
        total = 0
        # 可变参数可以放在for循环中取出每个参数的值
        for val in args:
            total += val
        return total
    
    # 在调用add函数时可以传入0个或任意多个参数
    print(add())
    print(add(1))
    print(add(1, 2))
    print(add(1, 2, 3))
    

标准库中的内置函数

  • 熟悉Python语言的标准库中的内置函数,不光是下面这些
    在这里插入图片描述

2. 模块的使用

Python中每个文件就代表了一个模块(module),在不同模块允许重名
在使用函数时用import关键词导入指定的模块再调用

module1.py
def foo():
    print('hello, world!')
    
module2.py
def foo():
    print('goodbye, world!')
    
test.py
import module1
import module2

# 用“模块名.函数名”的方式(完全限定名)调用函数,
module1.foo()    # hello, world!
module2.foo()    # goodbye, world!
  • 函数别名的创建,使用关键词 as
# 方法一:
import module1 as m1
import module2 as m2

m1.foo()    # hello, world!
m2.foo()    # goodbye, world!


方法二:
from module1 import foo
foo()    # hello, world!

from module2 import foo
foo()    # goodbye, world!

# 若需要同时使用两个模块中的foo函数(※)
from module1 import foo as f1
from module2 import foo as f2

f1()    # hello, world!
f2()    # goodbye, world!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值