python~函数1&模块与包

python~函数1&模块与包

1. 函数

1.函数的定义和调用

1.1 定义

语法:

def 函数名():

____函数中的代码

  1. 在def缩进中的代码都属于这个函数
  2. 函数名要满足标识符规则,结尾需要冒号
  3. 函数定义不会执行 函数中的代码,想要执行需要调用

1.2 调用

函数调用就是使用定义的函数中多行代码的过程,语法:函数名()

2.函数的文档注释

  1. 本质就是注释,对函数的作用和使用方法进行说明
  2. 书写位置:在def的下方,用三对双引号引起来
  3. 快捷键:在函数名上:Ctrl q 查看文档注释,Ctrl B 查看函数定义,按住Ctrl 点击函数名可以跳转到函数定义
python 复制代码
def say_hello():
    """打招呼函数"""
    print('hello1')
    print('hello2')
    print('hello3')

3.参数

  1. 在函数定义的时候,在括号中写入变量,这个变量就是函数的参数
  2. 在函数调用时,可以给定义时候的形参传递具体的数值使用
python 复制代码
def sum_2_num(num1,num2):#num1,num2 是形参
    """两个数字求和"""
    print(num1+num2)

sum_2_num(10,20)

4. 函数的嵌套调用

就是在一个函数中调用另一个函数

函数中的代码执行结束,会回到调用的地方继续向下执行

python 复制代码
def test01():
    print(1)
    print('func01')
    print(2)
def test02():
    print(3)
    print('func02')
    test01()
    print(4)
print(5)
test02()
print(6)

#运行结果依次为5 3 1 2 4 6

5.函数的返回值

函数执行的结果

print() ---> None

input() ---> 键盘输⼊的内容, 类型 字符串

type() ---> 变量的数据类型

len() ---> 容器⻓度

  1. 在一个函数中想要返回一个数据需要使用return关键字
  2. 函数执行完成后可以返回一个值,调用函数时可以接收这个值
  3. 遇到return会结束函数的执行
  4. return只能用在函数中,如果一个函数中没有用return,可以认为返回值是None
python 复制代码
def get_max(a,b):
    """获取两个数字中的较大值"""
    if a > b:
        return a
    else:
        return b

num = get_max(10,20)
print(num)

小案例:

python 复制代码
def input_username():
    return input("请输入用户名:")

def input_password():
    return input("请输入密码:")

def login():
    if input_username() =='admin' and input_password() =='123456':
        print("登录成功")
    else:
        print("登录失败")
        
login()

2. 模块与包

2.1 模块

  1. 在Python 中,每个代码⽂件都可以称为是⼀个模块
  2. 在模块中别⼈书写好的功能(变量, 函数, 类),我们可以拿来直接使⽤
  3. 我们⾃⼰写的代码⽂件,想要作为模块让别⼈使⽤,你的代码⽂件名(模块名) 满⾜标识符的规则
  4. 想要使⽤别⼈模块中写好的功能,需要**先导⼊**别⼈写好的功能
  5. as 关键字,可以给模块或者功能起别名

2.1.1 模块导入的方法

方式一:多用于系统的模块导入

python 复制代码
import random
num = random.randint(1,10)
print(num)

方法二:多用于自己写的或者第三方模块,可使用快捷键 alt+enter 导入

python 复制代码
from random import randint

num = randint(1,10)
print(num)

练习:

  1. 定义⼀个模块 tools.py , 在模块中定义⼀个函数 sum_2_num(), 可以对两个数字求和
  2. 新定义⼀个代码⽂件, 调⽤ tools.py ⽂件中的 sum_2_num() 函数, 对 10 和 20 求和

tools.py

python 复制代码
def sum_2_num(a,b):
    return a+b

调用

python 复制代码
from tools import sum_2_num as sum2    #as:将sum_2_num函数重命名为sum2

print((sum2(10, 20)))

2.2 __name__变量

导入模块时,会执行模块中的代码,如果模块中的部分代码不想被执行,就可以用_ _ name _ _解决

在模块中运行代码, _ _ name _ _ 的值为 _ _ main _ _

如果是在导入模块的代码中, _ _ name _ _的值为模块名

语法:

python 复制代码
if __name__ == '__main__'

输入时可以输入main直接回车即可

2.2 包

包的导入

#⽅式⼀:

import 包名.模块名

#使⽤

包名.模块名.⼯具名

#⽅式⼆:

from 包名 import 模块名

#使⽤

模块名.⼯具名

#⽅式三:使⽤快捷键导包

from 包名.模块名 import ⼯具名

#直接使⽤⼯具名

⼯具名

3.小案例

1.模拟开发人员实现登录功能,定义一个函数能够接收用户输入的用户名、密码、验证码根据不同的测试数据返回不同的验证结果

2.已知正确的登录信息(用户名:admin、密码:123456、验证码:8888)

3.要求1:创建login_service.py模块开发登录功能代码,并存放到service包中

4.要求2:创建test_login.py模块开发测试代码,并存放到script包中

5.要求3:至少测试3种测试场景

login_service.py

python 复制代码
def login(name,pwd,code):
    if name=='admin' and pwd=='123456' and code=='8888':
        return '登录成功'
    else:
        return '登录失败'

test_login.py

python 复制代码
from fun_import.service.login_service import login

print(login('admin','123456','8888')); # 登录成功
print(login('admin','12345','8888')); # 登录失败
print(login('good','123456','8888')); # 登录失败
print(login('admin','123456','88888')); # 登录失败
相关推荐
ZHOUPUYU3 小时前
PHP 8.3网关优化:我用JIT将QPS提升300%的真实踩坑录
开发语言·php
寻寻觅觅☆7 小时前
东华OJ-基础题-106-大整数相加(C++)
开发语言·c++·算法
YJlio7 小时前
1.7 通过 Sysinternals Live 在线运行工具:不下载也能用的“云端工具箱”
c语言·网络·python·数码相机·ios·django·iphone
l1t8 小时前
在wsl的python 3.14.3容器中使用databend包
开发语言·数据库·python·databend
今天只学一颗糖8 小时前
1、《深入理解计算机系统》--计算机系统介绍
linux·笔记·学习·系统架构
赶路人儿8 小时前
Jsoniter(java版本)使用介绍
java·开发语言
testpassportcn8 小时前
AWS DOP-C02 認證完整解析|AWS DevOps Engineer Professional 考試
网络·学习·改行学it
ceclar1239 小时前
C++使用format
开发语言·c++·算法
山塘小鱼儿9 小时前
本地Ollama+Agent+LangGraph+LangSmith运行
python·langchain·ollama·langgraph·langsimth