Python学习笔记(5)--函数

传送门==>B站黑马python入门教程


目录


1.函数


函数: 是指组织好的,可重复使用的,用来实现特定功能的代码块;

例如:之前用过的统计字符串长度的函数len()

python 复制代码
name = "itpythonjava"
length = len(name)
print(length)

那么,为什么可以随时随地使用len()函数呢?

因为len()是python内置的函数,可直接调用;

之前使用的print() str() int() input() ... 都是内置函数

案例demo,自定义实现一个统计字符串长度的函数;

python 复制代码
#自定义实现一个可以统计字符串长度的函数;
def get_length(str):
    count = 0
    if str != "":
        for i in str:
            count += 1
    print(f"该字符串长度为{count}")

str1 = "infotrans"
str2 = "itpython"
str3 = "awes"

get_length(str1)
get_length(str2)
get_length(str3)

2.函数基础语法练习


bash 复制代码
def 函数名(入参)			
	函数体
	return 返回值(可以省略)

示例

python 复制代码
# 示例函数
def helloworld():
    print("hello world")

# 调用;
helloworld()

3.函数入参


传入的参数: 函数计算时,需要接收的外部提供数据;

示例:如下代码是数字相加的功能

bash 复制代码
def add():
	 res = 1+2
	 print(f"1+2={res}")

但是该函数无入参,就只能支持其中定制的计算1+2

可以尝试给函数加上入参,即可支持其他的两数之和计算;

python 复制代码
def add(num1,num2):
    return num1+num2

num1 = 10
num2 = 20
print( f"num1+num2={add(num1,num2)}")

定义函数:进行体温判断是否发烧

正常范围为小于等于37.5°

python 复制代码
def check_temperature(temperature):
    if temperature <= 37.5:
        print("正常")
       
    else:
        print("发烧") 

4.函数返回值None类型


若函数没有使用return 语句返回数据时:

python中有特殊的字面量:None, 类型为<class 'NoneType'>

无返回值的函数,实际就是返回了None:即无意义内容

python 复制代码
# 示例:无return的函数
def hello():
    print("hello")

demo = hello()
print(type(demo))

虽然是默认返回的None 实际使用时也可以直接return None

python 复制代码
# 可以直接return None
# 示例;
def check_num(num):
    if num > 0:
        return "正数"
    else:
        return None

data = check_num(-1)
print(data)

None 也可以用于赋值给无意义的变量

python 复制代码
# 示例
diff = None

5.函数的说明文档


与其他语言一样,我们可以给自定义的函数加上注释,便于调用者阅读

python 复制代码
def add(num1,num2):
    """
    用于计算两数之和
    :param num1: 数字1
    :param num2: 数字2
    :return: 两数之和
    """
    return num1+num2

add(1,2)

6.函数嵌套


python 复制代码
# 函数嵌套

#定义函数a:
def funa():
    print("funa")
    # 其中调用函数b;
    funb()

# 定义函数b;
def funb():
        print("funb")

# 调用函数a
funa()

7.变量作用域


变量的作用域: 变量的作用范围-变量在何处可用

主要分为局部变量 .全局变量

局部变量:

定义在函数体内部的变量,即只在函数体内部生效

作用:在函数体的内部,临时保存数据,在函数执行完毕后,会自动销毁

python 复制代码
def testA():
    num = 100
    print(num)

testA()#调用testA()函数
print(num) #此处调用会报编码错误,外部无法访问到内部定义的变量

全局变量:

在函数体内外都可以生效的变量

若一个数据:在函数A,函数B中都要使用:如何定义?

可以将数据存入到全局变量

python 复制代码
# 定义全局变量
num = 100

def testA():
    print(num)

def testB():
    print(num)

testA()
testB()

global 可在函数内部修改全局变量

若在testB函数中需要将修改变量的值时,如何修改

若直接修改时,发现只是改变了内部值,无法

python 复制代码
data = 100

def testA():
    print(data)
def testB():
    global data
    data = 200
    print(data)

testA()
test2B()

8.函数案例练习


python 复制代码
# 金额
money = 5000000
# 用户名
name = None

name = input("请输入用户名:")

# 查询余额;
def query(flag):
    if flag == True:
        print("---查询余额:---")

    print(f"{name}的余额为{money}")
    print("返回菜单")
    main()

#存款;
def save(num):
    print("---存款操作:---")
    global money
    money += num
    print(f"{name}存入{num}成功")
    query(False)
    print("返回菜单")
    main()
#取款
def draw(num):
    global money
    print("---取款操作:---")
    if num > money :
        print("余额不足")
    else :
        money -= num
        print("返回菜单")
    query(False)
    main()

#菜单:
def menu():
    print("---主菜单:---")
    print("1.查询余额")
    print("2.存款")
    print("3.取款")

# 主方法;
def main():
    menu()
    return  input("请输入操作编号:")

while True:
    choice = main()
    if choice == "1":
        query(True)
    elif choice == "2":
        num = int(input("请输入存款金额:"))
        save(num)
    elif choice == "3":
        num = int(input("请输入取款金额:"))
        draw(num)
    else:
        print("输入错误")
        break
相关推荐
DN202015 小时前
AI销售机器人的隐私痛点与破解之道
人工智能·python·机器学习·机器人·节日
dulu~dulu15 小时前
大英赛改错真题记录
笔记·英语·自用·英语改错
恬淡如雪15 小时前
Excel接口测试自动化实战
爬虫·python·excel
云草桑15 小时前
15分钟快速了解 Odoo
数据库·python·docker·postgresql·.net·odoo
m0_7066532315 小时前
Python入门:从零到一的第一个程序
jvm·数据库·python
reasonsummer15 小时前
【办公类-53-09】20260131Python模仿制作2025学年第二学期校历(excel+pdf)
python·pdf
许泽宇的技术分享15 小时前
Claude Code 完整学习计划
学习
2301_7657031415 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
Stuomasi_xiaoxin15 小时前
Windows 安装 OpenCode 完全指南:从 npm 踩坑到 Chocolatey 完美部署
python·ai编程·opencode
香芋Yu15 小时前
【机器学习教程】第03章:SVD与矩阵分解
笔记·机器学习·矩阵