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
相关推荐
神龙天舞200129 分钟前
CMake构建学习笔记-通用的CMake构建脚本
笔记·学习
AOwhisky1 小时前
Linux(CentOS)系统管理入门笔记(第二十一期)——防火墙管理(Firewalld)——zone、服务端口、富规则与端口转发
linux·运维·笔记·安全·centos·防火墙
老白干1 小时前
jjwt 0.9.1 在 JDK 11+ 上的两个“坑”与完整解决方案
java·python·log4j
腾飞开源1 小时前
01_K8s干货笔记之认识K8s
运维·笔记·云原生·容器·kubernetes·k8s·容器化部署
疯狂打码的少年2 小时前
【面向对象】UML结构图:类图(类的关系:依赖/关联/聚合/组合/泛化/实现)
笔记
aaaameliaaa7 小时前
字符函数和字符串函数
c语言·笔记·算法
笨鸟先飞,勤能补拙8 小时前
AI 赋能网络安全:技术全景、成熟度评估与实战案例
人工智能·python·安全·web安全·网络安全·sqlite·github
似的8358 小时前
一步一步学习使用FireMonkey动画() 使用TAnimator类创建动画
linux·学习·nginx
长和信泰光伏储能9 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
tq10869 小时前
开放与封闭:类型系统的安全哲学
笔记