python函数

思维导图

代码

1. 函数的初体验

name = "itheima"
length = len(name)
print(length)

运行结果:

 

不使用内置函数len(),完成字符串长度的计算。

str1 = "itheima"
str2 = "itcast"
str3 = "python"

count = 0
for i in str1:
    count += 1
print("字符串1的长度是:%d" % count)

count = 0
for i in str2:
    count += 1
print("字符串2的长度是:%d" % count)

count = 0
for i in str3:
    count += 1
print("字符串3的长度是:%d" % count)

运行结果:

 

简化版:使用函数优化

str1 = "itheima"
str2 = "itcast"
str3 = "python"

def my_len(data):
    count = 0
    for i in data:
        count += 1
    print("该字符串的长度是:%d" % count)

my_len(str1)
my_len(str2)
my_len(str3)

运行结果:

 

2. 函数的基础定义语法

def say_hi():
    print("Hi 我是黑马程序员,学python来黑马。")

say_hi()

运行结果:

 

3. 函数基础定义练习案例

 · 练习:自动查核酸

定义一个函数,函数名任意,要求调用函数后可以输出如下欢迎语:

欢迎来到黑马程序员!

请出示您的健康码以及72小时核酸证明!

def welcome():
    print("欢迎来到黑马程序员!")
    print("请出示您的健康码以及72小时核酸证明!")

welcome()

运行结果:

4. 函数的传入参数

def add():
    result = 1 + 2
    print("1+2的结果是:%d" % result)

运行结果:

 

缺点:功能局限,只能计算1+2

能否扩展成:实现两个数的加法运算?传参

def add(x, y):
    result = x + y
    print("%d+%d的结果是:%d" % (x,y,result))

add(4,8)

运行结果:

 

5. 函数的参数练习案例

· 练习:升级版自动查核酸

定义一个函数,名字任意,并接受一个参数传入(数字类型,表示体温)

在函数内进行体温判断(正常范围:小于等于37.5度),并输出如下内容:

欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!

体温测量中,您的体温是:37.3度,体温正常请进!

欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!

体温测量中,您的体温是:39.3度,需要隔离!

def check(tem):
    print("欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!")
    if tem <= 37.5:
        print("体温测量中,您的体温是:%.1f度,体温正常请进!" % tem)
    else:
        print("体温测量中,您的体温是:%.1f度,需要隔离!" % tem)

check(37.3)

运行结果:

def check(tem):
    print("欢迎来到黑马程序员!请出示您的健康码以及72小时核酸证明,并配合测量体温!")
    if tem <= 37.5:
        print("体温测量中,您的体温是:%.1f度,体温正常请进!" % tem)
    else:
        print("体温测量中,您的体温是:%.1f度,需要隔离!" % tem)

check(39.3)

运行结果:

6. 函数的返回值定义语法

def add(a, b):
    result = a + b
    return result

r = add(1, 2)
print("1+2的结果是:%d" % r)

运行结果: 

7. 函数返回值之None类型

def say_hello():
    print("Hello")

result = say_hello()
print(result)
print(type(result))

运行结果:

 

def say_hello():
    print("Hello")
    return None

result = say_hello()
print(result)
print(type(result))

运行结果:

 

def check_age(age):
    if age >= 18:
        return "success"
    return None

result = check_age(5)
if not result:
    print("未成年禁止入内!")

运行结果:

 

8. 函数的说明文档

def add(x, y):
    """
        :param x:参数x的说明
        :param y:参数y的说明
        :return:返回值的说明
    """
    result = x + y
    print("2数相加的结果是:%d" % result)
    return result

9. 函数的嵌套调用

def func_b():
    print("---2---")

def func_a():
    print("---1---")
    func_b()
    print("---3---")

func_a()

运行结果:

 

10. 变量在函数中的作用域

def testA():
    num = 100
    print(num)

testA()
# 报错,找不到num
# print(num)

运行结果:

 

num = 100
def testA():
    print(num)

def testB():
    print(num)

testA()
testB()

运行结果:

num = 100
def testA():
    print(num)

def testB():
    global num 
    num = 200
    print(num)

testA()
testB()
print(num)

结果:

 

11. 函数综合案例

· 练习:黑马ATM

· 主菜单效果:

· 查询余额效果:

· 存、取款效果:

要求如下:

· 定义一个全局变量:money,用来记录银行卡余额(默认5000000)

· 定义一个全局变量:name,用来记录客户姓名(启动程序时输入)

· 定义如下的函数:

        · 查询余额函数

        · 存款函数

        · 取款函数

        · 主菜单函数

· 程序启动后输入客户姓名

· 查询余额、存款、取款后都会返回主菜单

· 存款、取款后,都应显示一下当前余额

· 客户选择退出或输入错误,程序会退出,否则一直运行

money = 5000000
name = str(input("请输入您的姓名:"))
def menu():
    print("----------------------主菜单----------------------")
    print("%s,您好,欢迎来到黑马银行ATM。请选择操作:" % name)
    print("查询余额\t【输入1】")
    print("存款\t\t【输入2】")
    print("取款\t\t【输入3】")
    print("退出\t\t【输入4】")
    choice = int(input("请输入您的选择:"))
    if choice == 1:
        print()
        return rest()
    elif choice == 2:
        print()
        return save()
    elif choice == 3:
        print()
        return get()
    elif choice == 4:
        print("谢谢使用,再见!")
        print()
        return
    else:
        print("输入错误,请重新输入!")
        print()
        return menu()

def rest():
    print("----------------------查询余额----------------------")
    print("%s,您好,您的余额剩余:%d元" % (name,money))
    print()
    return menu()
    
def save():
    print("----------------------存款----------------------")
    save_money = int(input("请输入您要存入的金额:"))
    global money
    money += save_money
    print("%s,您好,您存款%d元成功" % (name,save_money))
    print("%s,您好,您的余额剩余:%d元" % (name,money))
    print()
    return menu()

def get():
    print("----------------------取款----------------------")
    get_money = int(input("请输入您要取出的金额:"))
    global money
    if get_money > money:
        print("%s,您好,您的余额不足,无法取款!" % name)
        print()
    else:
        money -= get_money
        print("%s,您好,您取款%d元成功" % (name,get_money))
        print("%s,您好,您的余额剩余:%d元" % (name,money))
        print()
    return menu()

menu()

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值