Python学习之路——函数部分

一、什么是函数

函数式组织好的,可重复使用,用来实现特定功能的代码段

二、为什么使用函数

使用函数是为了得到一个针对特定需求,可供重复利用的代码段,提高程序的复用性,减少重复性代码,提高开发效率

三、格式

def 函数名(参数(形参)):
    函数体
    return 返回值

# 调用
函数名(参数(实参))

(一)案例演示

现在开发出来一款游戏,天梯榜段位制:黑铁、青铜、白银,当你前往天梯榜的时候,需要和天梯榜的管理员NPC出示你的信息,信息包含你的游戏ID和你的天梯榜段位:

# 提前看一下列表是什么,怎么用,嘿嘿
m_list = ['欢迎来到天梯榜:你的信息为==》', '段位为:无双白银', ';游戏ID为:暴力大恐龙']


def presentation(data):
    print(data)


if __name__ == '__main__':
    for m_data in m_list:
        print(m_data, end="")

(二)案例升级

# 先将段位信息表示出来
dark_iron = 0
bronze = 1
silver = 2

# 随机生成段位和游戏ID
# 随机段位:
dan = random.randint(0, 2)


def m_dan():
    if dan == 0:
        return '初锻黑铁'
    elif dan == 1:
        return '再锻青铜'
    else:
        return '无双白银'


# 随机游戏ID:
m_dict = {0: '无', 1: '双', 2: '晓', 3: '昊', 4: '媚', 5: ' '}


def m_name():
    for temp01, temp02 in m_dict.items():
        name_word = random.randint(0, 5)
        if name_word == temp01:
            return temp02


def presentationPro(id, grade):
    if grade == dark_iron and grade == bronze:
        print(f'你的游戏ID为:{id},你的段位为:{grade},将传送你到初级天梯榜,初级天梯榜设有段位保护机制,对你来说大有裨益!')
    else:
        print(
            f'你的游戏ID为:{id},你的段位为:{grade},将传送你到高级天梯榜,高级天梯榜将不会设有段位保护机制,对你来说也是一种磨炼啊!')


if __name__ == '__main__':
    presentationPro(m_name(), m_dan())

(三)return返回值

在案例中,我添加了函数的返回值,所谓返回值,就是程序中函数完成事情后,最后给调用者的结果

注意:

函数体在遇到return后就结束了,所以写在return后的代码不会执行

None类型

Python中有一个特殊的字面量:None,其类型是:<class 'NoneType'>

无返回值的函数,实际上就是返回了:None这个字面量

1、什么是None

None是类型'NoneType'的字面量,用于表示:空的、无意义的

2、函数如何返回None
  • 不使用return语句即返回None
  • 主动return None
3、使用场景
  • 函数返回值
  • if判断
  • 变量定义

四、全局变量和局部变量

想要修改全局变量应该怎么操作:

global关键字:将函数内定义的变量申明为全局变量

# 正常我们定义一个全局变量在函数内部去修改变量的值的话,全局变量的值是不会被修改的,如下:
num = eval(input('请输入一个全局变量:'))


def func01(data):
    print(f'全局变量传入进来之后的值为:{data}')
    data = 20
    print(f'全局变量传入进来之后,进行修改后的值为:{data}')
    print(f'全局变量的值为:{num}')


# 那么将局部变量修改为全局变量之后,全局变量的值会不会被修改呢,如下:
def func02(data):
    print(f'全局变量传入进来之后的值为:{data}')
    global num
    num = 20
    print(f'全局变量传入进来之后,进行修改后的值为:{num}')
    print(f'全局变量的值为:{num}')


if __name__ == '__main__':
    func01(num)
    func02(num)

结果如下: 

五、函数部分综合练习案例:

定义一个全局变量:money,用来记录你的app余额(默认为:100000元)
定义一个密码:password,用来在你支付的时候进行验证
定义如下的函数:
        1、查询余额的函数
        2、退款到账的函数
        3、支付函数
        4、主菜单函数
要求:
        app启动后要求输入密码进行验证
        在执行完毕1、2、3之后都会返回4
        在选择退出或者执行不恰的时候,退出app,否则将一直运行

(一)代码框架

money = 100000
password = 123456


# 查询余额函数
def checkBalance():
    pass


# 退款到账函数
def refundToAccount():
    pass


# 支付函数
def payment():
    pass


# 登录函数
def loginOfApp():
    pass


# 主菜单函数
def mainMenu():
    pass

if __name__ == '__main__':
    pass

(二)具体函数实现

1、查询余额的函数

# 查询余额函数
def checkBalance():
    print(f'\n账户余额为:{money}元\n\n')
    input('输入任意键继续')


2、退款到账的函数

# 退款到账函数
def refundToAccount():
    refund = eval(input('输入你想要得到的退款金额(想退多少就有多少[手动狗头]):'))
    global money
    money += refund
    print(f'退款金额:{refund}元24小时内可到账,注意查看\n\n账户余额为:{money}')
    input('输入任意键继续')


3、支付函数

# 支付函数
def payment():
    global money
    commodity = input('买了什么东西:')
    money_for_this = eval(input('花了多少钱:'))
    money -= money_for_this
    if money_for_this > money:
        print('您当前还没有消费这件商品的能力,继续加油哦')
    else:
        print(f'您购买了{commodity},花了{money_for_this}元\n\n当前账户余额为{money}')
        input('输入任意键继续')

4、登录函数

# 登录函数
def loginOfApp():
    print('----------欢迎使用xxAPP----------')
    m_password = eval(input('--------请输入您的账户密码:--------\n'))
    if m_password == password:
        print('----------欢迎使用xxAPP----------')
        print('-----------密码输入正确:----------')
        print('-----------成功进入APP-----------')
        input('输入任意键继续')
    else:
        print('----------欢迎使用xxAPP----------')
        print('-----------密码输入错误:----------')
        print('-----------进入APP失败-----------\n')
        loginOfApp()


5、主菜单函数

# 主菜单函数
def mainMenu():
    print('\n\n\n----------欢迎使用xxAPP----------')
    print('---输入对应数字进行对应的功能操作:---')
    print('-----------1、查询余额-----------')
    print('-----------2、退款到账-----------')
    print('-----------3、支   付-----------')
    print('-----------4、退出APP-----------')
    print('--------祝您愉快开心每一天---------')

6、整体代码

money = 100000
password = 123456


# 查询余额函数
def checkBalance():
    print(f'\n账户余额为:{money}元\n\n')
    input('输入任意键继续')


# 退款到账函数
def refundToAccount():
    refund = eval(input('输入你想要得到的退款金额(想退多少就有多少[手动狗头]):'))
    global money
    money += refund
    print(f'退款金额:{refund}元24小时内可到账,注意查看\n\n账户余额为:{money}')
    input('输入任意键继续')


# 支付函数
def payment():
    global money
    commodity = input('买了什么东西:')
    money_for_this = eval(input('花了多少钱:'))
    money -= money_for_this
    if money_for_this > money:
        print('您当前还没有消费这件商品的能力,继续加油哦')
    else:
        print(f'您购买了{commodity},花了{money_for_this}元\n\n当前账户余额为{money}')
        input('输入任意键继续')


# 登录函数
def loginOfApp():
    print('----------欢迎使用xxAPP----------')
    m_password = eval(input('--------请输入您的账户密码:--------\n'))
    if m_password == password:
        print('----------欢迎使用xxAPP----------')
        print('-----------密码输入正确:----------')
        print('-----------成功进入APP-----------')
        input('输入任意键继续')
    else:
        print('----------欢迎使用xxAPP----------')
        print('-----------密码输入错误:----------')
        print('-----------进入APP失败-----------\n')
        loginOfApp()


# 主菜单函数
def mainMenu():
    print('\n\n\n----------欢迎使用xxAPP----------')
    print('---输入对应数字进行对应的功能操作:---')
    print('-----------1、查询余额-----------')
    print('-----------2、退款到账-----------')
    print('-----------3、支   付-----------')
    print('-----------4、退出APP-----------')
    print('--------祝您愉快开心每一天---------')


if __name__ == '__main__':
    loginOfApp()
    while True:
        mainMenu()
        operate = eval(input('请输入你的操作:'))
        if operate == 1:
            os.system('cls')
            checkBalance()
        elif operate == 2:
            refundToAccount()
        elif operate == 3:
            payment()
        else:
            print('成功退出APP,期待您的下次使用')
            break

满满干货分享,还不点赞关注up~~

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值