码迷,mamicode.com
首页 > 编程语言 > 详细

python--11 函数和过程

时间:2017-09-07 18:16:04      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:输入   局部变量   line   可见   back   float   hello   cal   --   

过程(procedure)是简单/特殊并且没有返回值的

函数 有返回值

python 严格来说只有函数没有过程

  >>> def hello():
    ... print(‘Hello Junjie!‘)
    ...
  >>> temp = hello()
  Hello Junjie!

  >>> temp
  >>> print(temp)
  None
  >>> type(temp)
  <class ‘NoneType‘>

python 动态确定类型  python没有变量,只有名字

返回多个值    用一个数据类型封装多个返回的值

  >>> def back():
    ... return [1,‘junjie‘,3.14]
    ...
  >>> back()
  [1, ‘junjie‘, 3.14]
  >>> def back():
    ... return 1,‘junjie‘,3.14
    ...
  >>> back()
  (1, ‘junjie‘, 3.14)

函数变量作用域  变量的可见性

局部变量(Local Variable)  函数中定义的变量,用栈进行存储  方法结束弹栈

全局变量(Grobal Variable) 作用域整个文件

  >>> def discounts(price,rate):
  ... final_price = price * rate
  ... old_price = 88 #这里试图修改全局变量
  ... print(‘修改后old_price的值是:‘, old_price)
  ... return final_price
  ...
  >>> old_price = float(input(‘请输入原价:‘))
  请输入原价:999
  >>> rate =float(input(‘请输入折扣‘))
  请输入折扣0.5
  >>> new_price = discounts(old_price,rate)
  修改后old_price的值是: 88
  >>> print(‘修改后old_price的值是‘,old_price) 
  修改后old_price的值是 999.0
  >>> print(‘打折后的价格是‘,new_price)
  打折后的价格是 499.5

 

  >>> print(‘试图打印局部变量的值‘,final_price)
  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  NameError: name ‘final_price‘ is not defined

全局变量  函数中修改全局变量

  >>> count = 5
  >>> def myFun():
  ... count = 10
  ... print(count)
  ...
  >>> myFun()
  10
  >>> print(count)
  5

old_price = 88 #这里试图修改全局变量

python会使用屏蔽(Shadowing)去保护 全局变量

试图去修改全局变量时,python会创建一个与全局变量名字一样的变量 局部变量和全局便利存储的位置不一样

global 关键字 函数中修改全局变量

 

  >>> print(count)
  5
  >>> count = 5
  >>> def myFun():
  ... global count
  ... count = 10
  ... print(count)
  ...
  >>> myFun()
  10
  >>> print(count)
  10

python--11 函数和过程

标签:输入   局部变量   line   可见   back   float   hello   cal   --   

原文地址:http://www.cnblogs.com/fengjunjie-w/p/7490709.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!