集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 4857|回复: 11

简谈 python day03

[复制链接]
晓灰灰 发表于 2018-9-13 11:37:16 | 显示全部楼层 |阅读模式
函数

一般来说,我们总是希望避免复制代码,因为如果一旦决定要更新代码(比如说,发现了一个缺陷要修复),就必须记住要修改所有复制的代码。随着你获得更多的编程经验,常常会发现自己在为代码“消除重复”,即去除一些重复或复制的代码。消除重复能够使程序更短、更易读、更容易更新。

def语句和参数
如果调用print()或len()函数,你会传入一些值,放在括号之间,在这里称为“参数”。也可以自己定义接收参数的函数。例:
def hello(name):
    print('Hello' + name)
hello('Alice')
在这个程序的hello()函数定义中,有一个名为name的变元。“变元”是一个变量,当函数被调用时,参数就存放在其中。关于变元有一件特殊的事情值得注意:保存在变元中的值,在函数返回后就丢失了。

返回值和return语句
一般来说,函数调用求值的结果,称为函数的“返回值”。用def语句创建函数时,可以用return语句指定应该返回什么值。return语句包含以下部分:#return关键字;#函数应该返回的值或表达式。如果在return语句中使用了表达式,返回值就是该表达式求值的结果。

None值
在Python中有一个值称为None,它表达没有值。None是NoneType数据类型的唯一值(其他编程语言可能称这个值为null、nil或undefined)。就像布尔值True和False一样,None必须大写首字母N。如果你希望变量中存储的东西不会与一个真正的值混淆,这个没有值的值就可能有用。有一个使用None的地方就是print()函数的返回值。既然所有函数调用都需要求值为一个返回值,那么print()就返回None。在幕后,对于所有没有return语句的函数定义,Python都会在末尾加上return None。而且,如果使用不带值的return语句(也就是只有return关键字本身),那么就返回None。

print函数中有两个关键字参数(由函数调用时加在它们前面的关键字来识别的,关键字参数通常用于可选变元)为end和sep,分别指定在参数末尾打印什么,以及在参数之间打印什么来隔开它们。

局部和全局作用域
    在被调用函数内赋值的变元和变量,处于该函数的“局部作用域”。在所有函数之外赋值的变量,属于“全局作用域”。处于局部作用域的变量,称为“局部变量”。处于全局作用域的变量,称为“全局变量”。一个变量必是其中一种,不能即是局部的又是全局的。作用域很重要,理由如下:
#全局作用域中的代码不能使用任何局部变量;
#但是,局部作用域可以访问全局变量;
#一个函数的局部作用域中的代码,不能使用其他局部作用域中的变量。
#如果在不同的作用域中,你可以用相同的名字命名不同的变量。也就是说,可以有一个名为spam的局部变量,和一个名为spam的全局变量。
当特定函数调用中的代码修改变量时,该函数与程序其他部分的交互,只能通过它的参数和返回值,这缩小了可能导致缺陷的代码作用域。

global语句
如果需要在一个函数内修改全局变量,就使用global语句。如果在函数的顶部有global eggs这样的代码,它就告诉Python,“在这个函数中,eggs指的是全局变量,所以不要用这个名字创建一个局部变量。”有4条法则,来区分一个变量是处于局部作用域还是全局作用域;1、如果变量在全局作用域中使用(即在所有函数之外),它就总是全局变量。2、如果在一个函数中,有针对该变量的global语句,它就是全局变量。3、否则,如果该变量用于函数中的赋值语句,它就是局部变量。但是,如果该变量没有用在赋 值语句中,它就是全局变量。

异常处理
错误可以由try和except语句来处理。那些可能出错的语句被放在try子句中。如果错误发生,程序执行就转到接下来的except子句开始处。请注意,在函数调用中的try语句块中,发生的所有错误都会被捕捉。一旦执行跳到expect子句的代码,就不会回到try子句。它会继续照常向下执行。例:
def spam(divideBy):
    try:
        return 42 / divideBy
    except ZeroDivisionError:
        print('Error: Invalid argument.')

print(spam(2))
print(spam(12))
print(spam(0))
print(spam(1))

<第三章结束>
zhangyukun 发表于 2018-9-14 09:19:32 | 显示全部楼层
简谈 python day03
 楼主| 晓灰灰 发表于 2018-9-14 10:26:50 | 显示全部楼层
简谈 python day03
 楼主| 晓灰灰 发表于 2018-9-14 10:29:28 | 显示全部楼层
简谈 python day03
 楼主| 晓灰灰 发表于 2018-9-17 10:20:44 | 显示全部楼层
简谈 python day03
 楼主| 晓灰灰 发表于 2018-9-18 09:49:08 | 显示全部楼层
简谈 python day03
 楼主| 晓灰灰 发表于 2018-9-18 11:15:39 | 显示全部楼层
简谈 python day03
 楼主| 晓灰灰 发表于 2018-9-19 10:16:00 | 显示全部楼层
简谈 python day03
 楼主| 晓灰灰 发表于 2018-9-20 11:34:09 | 显示全部楼层
简谈 python day03
 楼主| 晓灰灰 发表于 2018-9-21 12:45:08 | 显示全部楼层
简谈 python day03
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-9 18:41 , Processed in 0.062317 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表