python---函数

函数的定义

函数:复用,谁用谁调用就行
格式:
def 函数名([参数]):#参数可有可无
代码
函数名的命名:一个单词全部小写,多个单词,下划线分割
代码:表示封装重复内容。

函数的调用

函数名()
单一个函数名,表示函数的地址,但是加了括号,则表示,指代地址。
遇到一个函数,先加载到内存,只有当调用了才能运行代码。
作业:定义一个登入函数login函数
admin 1234
输入用户名和密码,验证是否登入成功

def login() :
    while True:
        name = input("请输入你的用户名:")
        password = input("请输入你的密码:")
        if name == "admin" and password == "1234":
            print("登入成功!")
            break
        else:
            print("用户名或者密码错误,请重新输入:")
login()

函数的参数

无参数:
def 函数名()
pass
有参数:
def 函数名(【参数】)
pass

参数的作用

只能通过参数,向函数内部送值。
参数就是调用函数时,向函数传值。
作业1:将上次登入界面,添加可可控制最多登入次数;

def login(n) :
    i=0
    while i<n:
        name = input("请输入你的用户名:")
        password = input("请输入你的密码:")
        if name == "admin" and password == "1234":
            print("登入成功!")
            break
        else:
            print("用户名或者密码错误")
            i+=1

    if i==n:
        print("对不起,账号已被定")
login(3)

作业2:求1到n的累加和

def sum(n):
    s=0
    for i in range(1,n+1):
        s+=i
    print(s)
sum(50)
默认值参数

定义参数时,有一个或者多个参数已经赋值了,
def 参数名(【参数1,参数2,参数3=值】)
pass
没有赋值的参数,在调用的时候一定要输入参数,但是默认值参数在调用时,可以不传参。
但是在定义的时候,默认值参数一定要位于普通参数的后面。

关键字参数赋值

默认参数的顺序都是固定的,但是调用时使用关键字参数时,打乱传值的参数。

参数的类型可以是列表
可变参数
  • *arge
    参数的数量不固定
    def get_sum(*args)
    pass
    加星号默认加入到一个列表中。
  • ** kwargs
    只有给关键字参数的时候才能运行,kw表示关键字参数赋值
    相当于键值对,函数调用的时候必须加关键字参数,才能将其转换成key:value,才能装到字典中。
  • *arge和 ** kwargs同时存在一个函数的参数中
    一颗星的表示元组,两颗星表示一个字典
函数的返回值

参数:外面向里面传递值
返回值:里面向外面传递值【return 返回值】
有返回值需要将变量去接这个容器。
格式:
def 函数名(【参数】)
pass
return 返回值
只要有返回值,就必须外界有东西接受。
作业:创建一个函数,返回他的最大值和最小值。

def get_maxandmin (numbers):
    numbers.sort()
    min=numbers[0]
    max=numbers[-1]
    return min ,max
list1=[11,56,45,3,5,2,8,9,10]
result=get_maxandmin(list1)
print(result)

return后面的值,可以是一个值,也可以是多个值,如果是多个值,可以将多个值封装在一个元组中,然后再返回元组

函数间的调用

作业:验证是否登入成功
自定义一个函数,判断用户是否登入成功Islogin,
参数:username password
函数体
判断用户输入的用户名和密码是否正确,如果正确返回为True 否则返回为False
借书系统 borrow_book
参数是书名
函数体:
判断是否登入成功,如果登入成功,则可以借到书
如果登入失败,则提示:还未登入,不能借书。

 def islogin(username,password):
    if username=="admin" and password=="1234":
        return True
    else :
        return False
def borrow_book(bookname):
    username=input("请输入用户名:")
    password=input("请输入密码:")
    key=islogin(username,password)
    if key==True:
        print("成功借书")
    else :
        print("还未登入,不能借书")


print('欢迎来到借书系统')
bookname=input('请输入你要借书的书名:')
borrow_book(bookname)
函数的全局和局部变量
  • 函数自身的变量叫做局部变量
  • 函数之外的是全局变量
  • 局部变量的作用范围只在函数内部
  • 函数找变量的规律是:

首先找函数内部的变量,
如果函数内部包括该变量,则使用函数内部的变量,
如果函数内部没有该变量则使用全局变量。

  • global a 可以修改全局变量

只有不可变的类型才能加global,可变的类型不用加global
可变,不可变
改变变量的值时,地址发生改变,认为该类型不可变
里面的内容发生改变,但是地址没有发生改变,称为可变类型。
不可变类型:int str 浮点,元组
可变的类型:列表 字典,集合

  • 函数内部可以使用全局变量但是不能更改

作业:
停车计费系统:
进入停车场记录进入时间,出去记录出去时间,
停车时间等于:出去时间-进入时间
停车场数据结构:
【{”车牌“:【进入时间,出去时间】,{”车牌“:【进入时间,出去时间】…】
15分钟 1块钱
1个小时 4块钱
停车场变量为全局变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值