首页
学习
活动
专区
工具
TVP
发布

玩转TensorFlow与深度学习模型系列教程(五)Python 基本语法及使用(下)

"玩转TensorFlow与深度学习模型”系列文字教程,本周带来Python 基本语法及使用(下)

大家在学习和实操过程中,有任何疑问都可以通过学院微信交流群进行提问,有导师和助教、大牛等为您解惑答疑哦。(入群方式在文末

第五篇的教程继续对Python进行介绍,主要内容:

函数

基本I/O

错误处理

函数

1.定义函数

在Python之中定义函数要遵循以下几点:

python中定义函数使用def关键字,后面接着函数名称和括号(),最后跟着冒号

函数的参数应当写在括号之中,也可以在括号中定义参数

函数中的 docstring 是可选的,可写可不写,建议写上

函数中的代码块要进行缩进

return 可以用于返回函数返回值或者表达式,return后面什么都不写与 return None 或者不写return 等价

2.调用函数

对函数进行定义了以后,只要通过函数名称对函数进行调用即可

输出:

3.传值(pass by value)与传引用(pass by reference)

在Python当中,所有的参数都是传引用,也就是说如果你在函数中对参数所指向的对象进行了更改,这个操作将会反应在你的参数上。

输出:

还有另外一种常见的情况就是在函数的内部,传进来的引用被覆盖了,如:

输出:

4.函数的参数

调用函数的时候可以使用以下几种参数:

必要(required)参数

关键(keyword)字参数

默认(default)参数

变长(variable-length)参数

必要参数是指必须按照函数定义的参数列表的定义,按照顺序传入,如函数就必须传入参数,如果没有按照要求进行传递参数,将会报错:

输出:

当使用关键字参数对函数进行调用的时候,要按照函数定义的参数名进行赋值,这样允许不按照函数定义的参数顺序进行赋值,因为Python解释器这是可以将参数与传入变量进行对应。

输出:

以上例子指的是在函数在调用时候使用关键字参数,在函数定义的时候也有关键字参数的概念,指的是在定义函数的时候不对函数名进行定义,完全通过函数的输入获得:

输出:

默认参数指的是当参数的值没有在调用时指定的话,函数将为参数赋值一个预先定义好的值,默认参数的位置应当位于参数列表的最后:

输出:

当函数需要处理的变量的数目不确定的时候可以使用变长参数,变长参数在函数定义的时候名字没有预先确定,在定义函数的时候在变量前面增加一个星号(*)表示这是一个变长变量:

输出:

将函数定义过程中的变长参数以及关键词参数结合起来:

输出:

5.匿名函数

匿名函数的定义方法与前面讲的传统的使用的方法是不同,使用关键词定义匿名函数。

匿名函数可以接收任意数目的参数,但是返回值只能是一个值或者表达式,他们不能包含命令或者多个表达式。

lambda 函数具有自己的命名空间,他们除了参数列表中的变量以及全局变量之外无法访问其他的变量。

lambda 函数无法直接被用来打印变量,lambda 函数需要一个表达式

输出:

6.全局变量与局部变量

在函数体中定义的变量具有局部作用域,他们只能在定义他们的函数之内被访问;全局变量可以在程序内被所有的函数访问。

输出:

基本 I/O

这一部分将对基本的I/O操作进行讲解,以Python 2.7举例,Python 3.X 中有部分语法会有所区别

1.在屏幕上进行输出

最简单的方法是使用,print内部可以放0或多个表达式子

输出:

2.从键盘读取输入

从键盘读取输入有两种方式:

raw_input

input

将读取一行,并且返回值为string

使用时python默认输入为一个有效的表达式,返回值为表达式的值

输出:

Python 3.x 中去除了函数,仅仅保留了,input将接受到的任何输入都当作字符串处理

3.文件读写

open函数

open函数被用来打开或者创建文件,它将会返回一个对象。

有几种常见的模式:

r 表示以只读方式打开 (默认模式)

rb 表示以二进制只读打开

r+ 以读写方式打开

rb+ 以二进制读写方式打开

w 以只写方式打开(如果已有文件,将会覆盖,如果没有将会创建)

wb 以二进制只写打开(如果已有文件,将会覆盖,如果没有将会创建)

w+ 以读和写的方式打开一个文件(如果已有文件,将会覆盖,如果没有将会创建)

wb+ 以二进制方式读和写的方式打开一个文件(如果已有文件,将会覆盖,如果没有将会创建)

a 表示 append,追加模式,如果文件存在的话,指针将位于文件的末尾,如果没有文件的话将会创建一个

ab 以二进制格式追加模式打开一个文件

a+ 以追加和读的方式打开一个文件

ab+ 以追加和读的方式打开二进制格式文件

buffer有可以选三种值: 0 表示不适用buffer,1 表示 buffer 文件中的一行,其余正整数表示buffer的字节数

4.file对象的属性

file.close

返回文件是否关闭

file.mode

返回打开文件的模式

file.name

返回文件的名字

输出:

5.close() 方法

file对象的close()方法用于将没有写入文件的信息写入文件以后关闭文件,在打开文件以后要记得关闭文件。

6.read() 和 write()

file 对象可以使用 read() 对文件的内容进行读取,在使用read()对文件进行读取的时候会一次性的读取文件的全部内容。还可以使用readline(),每次读取文件的一行,readlines()则可以一次读取文件中的全部行,并且返回一个列表。

write() 文件可以用于将内容写入文件,在写完文件之后一定要记得使用close()方法保证对于文件的更改已经写入了硬盘。

输出:

在对文件进行读写操作的时候,常用的一种方式是使用,这样Python在对文件读写完成后会自动调用方法:

输出:

错误处理

在Python之中常用的用于处理异常错误的方法有两种:

异常处理

使用assert

1.异常处理

在python中对异常进行处理时经常使用以下结构:

后面跟着需要执行的代码块,后面标注异常的类型,在出现对应的异常的时候执行对应代码块,无论程序是否正确执行后面接着的代码块都会在最后执行。Python 中内置的异常类型,参考这个连接。

输出:

以上代码尝试以模式打开一个文件,如果出现IO错误的话就输出没有此文件,最后输出finished。

2.Assert 语句

使用方法:

assert 将会判断后面跟的表达式是否为真,如果为false的话将会抛出异常,经常可以用于对变量类型,或者程序逻辑进行检查,比如我们写一个计算两个向量内积的程序:

输出:

输出:

参考资料

Tutorial Point

Python Wiki

下周一同一时间"玩转TensorFlow与深度学习模型"系列教程(六):tf.data 使用方法介绍

,请大家保持关注!

TensorFlow与深度学习模型系列教程

加入社群

天学网人工智能学院

培养符合企业需求的实战型AI人才

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171212B0OE6200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券