• python中全局变量和局部变量


    1、

    python中定义在函数内部的变量称为局部变量,局部变量只能在局部函数内部生效,它不能在函数外部被引用。

    def discount(price,rate):
        price_discounted = price * rate
        return price_discounted
    sale_price = float(input("please input the sale_price:"))
    discount_rate = float(input("please input the discount_rate:"))
    sell_price = discount(sale_price,discount_rate)
    print("sell_price is: %.3f" % sell_price)
    ## 在以上脚本中, 定义函数discount(),两个形参price和rate。 局部变量为 price、rate 和 price_discounted. 全局变量为 sale_price、discount_rate和 sell_price。

    运行效果如下:

    please input the sale_price:800
    please input the discount_rate:0.5
    sell_price is: 400.000

    a、尝试在函数外部访问全局变量和局部变量,全局变量可以访问,局部变量不可以访问

    >>> sale_price            ## 全局变量
    800.0
    >>> discount_rate          ## 全局变量
    0.5
    >>> sell_price             ## 全局变量
    400.0
    >>> price                  ## 局部变量
    Traceback (most recent call last):
      File "<pyshell#45>", line 1, in <module>
        price
    NameError: name 'price' is not defined
    >>> rate                   ## 局部变量
    Traceback (most recent call last):
      File "<pyshell#46>", line 1, in <module>
        rate
    NameError: name 'rate' is not defined
    >>> price_discounted        ## 局部变量
    Traceback (most recent call last):
      File "<pyshell#47>", line 1, in <module>
        price_discounted
    NameError: name 'price_discounted' is not defined

    b、尝试在函数内部访问全局变量

    def discount(price,rate):
        price_discounted = price * rate
        print("output globle varable sale_price:",sale_price)
        return price_discounted
    sale_price = float(input("please input the sale_price:"))
    discount_rate = float(input("please input the discount_rate:"))
    sell_price = discount(sale_price,discount_rate)
    print("sell_price is: %.3f" % sell_price)
    please input the sale_price:800
    please input the discount_rate:0.5
    output globle varable sale_price: 800.0             ##在函数内部可以访问全局变量
    sell_price is: 400.000

    c、尝试在函数内部修改全局变量

    def discount(price,rate):
        price_discounted = price * rate
        sale_price = 5000            ## 在函数内部修改全局变量
        print("new_sale_price:",sale_price)       ## 在函数内部输出修改后的变量
        return price_discounted
    sale_price = float(input("please input the sale_price:"))
    discount_rate = float(input("please input the discount_rate:"))
    sell_price = discount(sale_price,discount_rate)
    print("sell_price is: %.3f" % sell_price)
    print("output the varable sale_price:",sale_price)    ## 在函数外输出修改后的变量,验证是否改变
    please input the sale_price:800
    please input the discount_rate:0.5
    new_sale_price: 5000       ## 在函数内部返回修改后的变量
    sell_price is: 400.000
    output the varable sale_price: 800.0    ## 在函数外部返回原始变量
    ## 在函数内部可以访问全局变量,但是不可以修改全局变量

     局部变量只能在函数内调用,不能够在函数外调用; 全局变量可以在函数内访问,全局变量不可以在函数内修改。

    全局变量的作用域在整个模块,局部变量的作用域在函数内。

  • 相关阅读:
    Vue总结
    Android适配总结
    Java为什么需要四种引用?
    回溯递归:八皇后
    eclipse中的maven build 、maven clean 、 maven install作用
    JS时间格式CST转GMT
    什么是ECMAScript、什么又是ECMA?
    maven打包工程出现错误 Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test
    Vue三步完成跨域请求
    Eclipse导入别人项目爆红叉
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14485629.html
Copyright © 2020-2023  润新知