zoukankan      html  css  js  c++  java
  • 第六章 函数[DDT书本学习 小甲鱼]【2】

    6.3 我的地盘听我的
    6.3.1 函数和过程 Python严格来说只有函数,没有过程。
    函数是干完事必须写报告的“苦逼”
    过程是干完事拍拍屁股一走了之的“小混蛋”
    代码研究如下:
    def myfun():
    print("Hello~")
    print(myfun())
    ----------------- 执行结果 -----------------
    Hello~
    None
    ==============================================
    函数没有return 但是仍旧返回了一个None
    结论:所有的函数都有返回值。
    6.3.2 再谈谈返回值
    Python可以动态确定函数的类型,能返回不同类型的值。
    Python没有变量,只有名字。Python能同时返回多个值。
    def test():
    return [1,"小甲鱼",3.14]
    print(test())
    ----------------------------------------------
    上面用列表方式打包多种类型的值一次性返回,也可以
    直接用元组的形式返回多个值,如下代码:
    def myfun():
    return 1,'小甲鱼',3.14
    print(myfun())
    ---------------------------------------------
    (1, '小甲鱼', 3.14)
    6.3.3 函数变量的作用域(局部变量 和 全局变量)
    代码如下:
    def suanzhang(jiage,rate):
    zuizhongjiage=jiage*rate
    return zuizhongjiage
    jiujiage=float(input("请输入原价:"))
    rate=float(input("请输入折扣率:"))
    xinjiage=suanzhang(jiujiage,rage)
    print("打折后的价格是:",xinjiage)
    ----------------------------------
    请输入原价:100
    请输入折扣率:0.8
    打折后的价格是: 80.0
    =====================================================
    函数内的称为局部变量 如 jiage rate zuizhongjiage
    函数外的成为全局变量 如 jiujiage rate xinjiage
    ========================================================
    修改代码
    def suanzhang(jiage,rate):
    zuizhongjiage=jiage*rate
    print("这里试图打印全局变量jiujiage的值:",jiujiage)
    return zuizhongjiage
    jiujiage=float(input("请输入原价:"))
    rate=float(input("请输入折扣率:"))
    xinjiage=suanzhang(jiujiage,rage)
    print("打折后的价格是:",xinjiage)
    -------------------------------------------------------------
    请输入原价:100
    请输入折扣率:0.85
    这里试图打印全局变量jiujiage的值: 100.0
    打折后的价格是: 85.0
    ===============================================================
    总结:你可以在函数肆无忌惮的访问一个全局变量,但是如果试图修改它,
    就会出现奇怪的现象!!!!!!!!!!
    def suanzhang(jiage,rate):
    zuizhongjiage=jiage*rate
    jiujiage=10 #修改全局变量
    print("在局部变量中修改后的jiujiage的值:", jiujiage)
    return zuizhongjiage
    jiujiage=float(input("请输入原价:"))
    rate=float(input("请输入折扣率:"))
    xinjiage=suanzhang(jiujiage,rate)
    print("打折后的价格是:",xinjiage)
    -------------------------------------------------------------
    请输入原价:100
    请输入折扣率:0.8
    在局部变量中修改后的jiujiage的值: 10
    打折后的价格是: 80.0
    ================================================================
    结论:如果在函数内部试图修改全局变量,那么会创建新的局部变量替代,
    名字和全局变量相同。但是真正的全局变量纹丝不动,所以与预期不同。
    拓展:1.如果想在函数里去修改全局变量的值,有办法实现么?yes
    2.如果想在函数里嵌套定义一个新的函数,可以么?yes
    以上问题的答案都是肯定的,将在下一节学习这些内容。

    Daodantou:“不积跬步,无以至千里.”
  • 相关阅读:
    centos 7.0.1406 临时环境jenkins安装
    jenkins 登录提示无效
    ubuntu 16.04 安装完QQ后,更新或apt-get报错
    Web服务网站故障分析常用的命令
    在CentOS7中给docker加权限
    aliyun阿里云Maven仓库地址和其他地址
    python 安装 docker-copmose
    mysql 1055错误
    linux 添加用户
    firewall 开启服务
  • 原文地址:https://www.cnblogs.com/daodantou/p/10316156.html
Copyright © 2011-2022 走看看