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
相关推荐
John_ToDebug4 小时前
判断力无法被 AI 替代,但它正在被你亲手扔掉
经验分享·笔记
2601_962078195 小时前
Python中calendar.weekday用法
python·编程技巧·calendar·日期处理·weekday
sunshine22 girl5 小时前
Java学习二 基本语法2, 算术运算符
java·学习
2601_962218615 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
2601_966949655 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
2601_962885725 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
李高钢6 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
柳鲲鹏6 小时前
运气学概论:提纲草案
笔记
ocean21036 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
Warson_L7 小时前
Python的OrderedDict
python