1.函数

1.1 函数概述

# 2个
for i in range(0, 2):
    for j in range(0, 2):
        print("*", end="")
    print()
# 3个
for i in range(0, 3):
    for j in range(0, 3):
        print("*", end="")
    print()
# 4个
for i in range(0, 4):
    for j in range(0, 4):
        print("*", end="")
    print()
  • 改写后:
# 定义函数,函数名称print_xx
def print_xx(x):
    for i in range(0, x):
        for j in range(0, x):
            print("*", end="")
        print("")
        
# 函数调用
print_xx(2)
print_xx(3)
print_xx(4)

1.2 函数定义调用

函数定义

image-20231204091412733

函数调用

作业1:改写

  1. 改写平均数def
  2. 改写闰年判断
# 改写平均数练习,要求是三个数字的平均数
# 定义平均数的函数
def avg_input(x, y, z):
    avg = (x + y + z) / 3
    print(f"平均数是:{avg}")


# 定义判断闰年的函数
def judge_rn(year):
    # 1.能被400整除
    if year % 400 == 0:
        print(f"{year}闰年")
    # 2.能被4整除但不能被100整除
    elif year % 4 == 0 and year % 100 != 0:
        print(f"{year}闰年")
    else:
        print(f"{year}不是闰年")


judge_rn(2008)
print("----------")
# 调用函数
avg_input(1, 2, 3)
print("----------")
# a = eval(input("a="))
# b = eval(input("b="))
# c = eval(input("c="))
# avg_input(a, b, c)

1.3 参数传递

位置参数传递

image-20231204094635629

关键字参数传递

image-20231204094714463

默认参数传递

image-20231204095023341

参数的打包解包

打包
解包
作业2:
# 平均数:计算n个参数的平均值
# 定义函数计算平均值
def avg_input(*args):
    sum = 0
    for i in args:
        sum += i
    avg = sum / len(args)
    print(f"和是{sum},有{len(args)}个数字,平均值是:{avg}")


avg_input(1)
avg_input(1, 2)
avg_input(1, 2, 3)
avg_input(1, 2, 3, 4)

作业3:
# 从键盘一直获取数字,当输入0000退出
# 计算之前获取的值的平均值

def avg_input(mylist):
    sum = 0
    for i in mylist:
        sum += i
    avg = sum / len(mylist)
    print(f"和是{sum},有{len(mylist)}个数字,平均值是:{avg}")


def gain_input():
    # 1. 从键盘一直获取数字,当输入0000退出
    while (True):
        # #int()转化为整数数字
        # x = int(input("请输入数字:"))
        x = eval(input("请输入数字:"))
        if x == 0000:
            break
        else:
            # list_nums.insert(0, x)
            list_nums.append(x)


list_nums = []
gain_input()
print(list_nums)
# 2. 计算之前获取的值的平均值
avg_input(list_nums)

混合传递

作业4:

image-20231204112313928

1.4 函数的返回值

作业1:

1.5 变量作用域

1.5.1 局部变量

1.5.1 全局变量

  • 定义位置:函数外面,单独定义
number = 10         			# 全局变量
def test_one():
    print(number)   			# 函数内部访问全局变量
test_one()
print(number)       			# 函数外部访问全局变量

# 定义全局变量
number = 10
def test_one():
    number
    print(number) 
    number += 1
test_one()
print(number)

1.5.1 关键字globalnonlocal

number = 10                    # 定义全局变量
def test_one():
    global number              # 使用global声明变量number为全局变量
    number += 1
    print(number)
test_one()
print(number)
def test():
    number = 10
    def test_in():
        nonlocal number
        number = 20
    test_in()
    print(number)
test()

作业2:

1.6 实训案例

# 全局变量
dict_goods = {"可口可乐": 2.5, "百事可乐": 3, "健力宝": 5}
# 展示功能


def show():
    print("饮品自动售货机")
    # 展示商品
    for key, value in dict_goods.items():
        print(f"{key}:{value}元")
    print("输入q完成购买")

# 购买功能


def buy():
    money = 0
    x = input("请输入购物商品:")
    # 省略步骤判断输入的商品不在货架上
    # 计算金额
    while (x != "q"):
        count = eval(input("请输入购物的数量:"))
        # 计算金钱
        money += dict_goods[x] * count
        # 下次的购物商品
        x = input("请输入购物商品:")
    print(f"需要支付金额{money}元")


# 函数调用
show()
buy()

1.7 特殊函数

1.7.1 递归函数

1.7.2 匿名函数

概念

示例sum = lambda a,b=100:a+b    #允许带默认参数
print("变量之和为:",sum(100,200))
print("变量之和为:",sum(100))

#下面是等价形式:
def sum_nums(a,b=100):
    return a+b
print("变量之和为:",sum_nums(100,200))
print("变量之和为:",sum_nums(100))

1.7.3 特殊函数

原文地址:https://blog.csdn.net/aj_shang/article/details/134807299

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_49952.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注