python符号或非并列_练习 37 - 复习各种符号 - 笨办法学Python3

练习 37. 复习各种符号

现在该复习你学过的符号和 python 关键字了,而且在接下来的几节里你还会学到一些新的东西。我已经把所有需要重点掌握的 Python 符号和关键字列出来了。

在这节课中,看到一个关键字,回忆并写下它的作用,然后上网搜它真正的用处。这里可能对你来说有些困难,因为有些内容真的很难收到,但是不管怎么样,还是要试一试。

如果你发现你的记忆有误,就在索引卡片上写下正确的定义,试着将自己的记忆纠正过来。

最后,在一个小的 Python 程序里使用每一个符号和关键字,或者你也可以尽量多写一些程序来练习。我们的目标是要明白各个符号的作用,确认自己没搞错,如果搞错了就纠正过来,然后将其用在程序里,通过这样的方式来巩固自己的记忆。

关键词

关键词

描述

示例

and

逻辑上的“和”

True and False == False

as

with-as 语句的一部分

with X as Y: pass

assert

断言某个表达式为 true(如果为 false,则会触发异常)

assert False. "Error!"

break

立即停止循环

while True: break

continue

不运行循环的剩余部分,重新开始循环

while True: continue

def

定义一个函数

def X(): pass

del

从字典中删除

del X[Y]

elif

else if 条件

if: X; elif: Y; else: J

else

else 条件

if: X; elif: Y; else: J

except

如果例外发生,就执行该语句

except ValueError, e: print(e)

exec

把字符串作为 python 运行

exec 'print("Hello")'

finally

不管是否发生例外,都执行该语句

finally: pass

for

遍历循环集合中的元素

for X in Y: pass

from

从模块中导入特定部分。

from X import Y

global

声明一个全局变量

global X

if

if 条件

if: X; elif: Y; else: J

import

导入一个模块来使用

import os

in

for 循环的一部分。也用于测试 X 是否 在 Y 中.

for X in Y: pass 或 1 in [1] == True

is

相当于 ==,测试相等性

1 is 1 == True

lambda

创建一个短的匿名函数

s = lambda y: y ** y; s(3) 注1

not

逻辑上的“非”

not True == False

or

逻辑上的“或”

True or False == True

pass

该代码块为空

def empty(): pass

print

打印这个字符串

print("this string")

raise

当程序出错,抛出一个指定异常信息

raise ValueError("No")

return

返回一个值同时退出函数

def X(): return Y

try

尝试执行这个代码块,如果遇到例外,执行 except 语句

try: pass

while

while 循环

while X: pass

with

把表达式作为一个变量来用

with X as Y: pass 注2

yield

Pause here and return to caller.

def X(): yield Y; X().next()

ai酱注:

注1:输入匿名短函数:s = lambda y: y ** y,执行该函数 s(3),输出结果为 27,** 为平方运算。lambda 简化了函数定义的书写形式,使代码更为简洁。

注2:with X as Y,X 是一个要被执行的表达式,Y 是变量,它存储的是表达式执行返回的结果。一般用于文件的读写和存储。

数据类型

针对每一种数据类型,都举出一些例子来,例如对于 string,写下你如何创建一个字符串,对于 number,写出一些不同类型的数字。

类型

描述

示例

True

True 布尔值

True or False == True

False

False 布尔值

False and True == False

None

代表“无”或者“没有”值

x = None

bytes

存储字节,可以是文本、PNG、文件等

x = b"hello"

strings

存储文本信息

x = "hello"

numbers

存储整数

i = 100

floats

存储小数

i = 10.389

lists

存储一列元素

j = [1,2,3,4]

dicts

存储一系列“键=值”的元素

e = {'x': 1, 'y': 2}

字符串转义序列(Escape Sequences)

对于字符串转义序列,你需要在字符串中应用它们,确保自己清楚地知道它们的功能。

转义字符

描述

\

反斜杠

'

单引号

"

双引号

\a

响铃

\b

退格

\f

换页符

\n

换行符

\r

回车符

\t

Tab 制表符

\v

垂直制表符

老式字符串格式化

一样的,在字符串中使用它们,确认它们的功能。

转义字符

描述

示例

%d

十进制整数(不含浮点数)

"%d" % 45 == '45'

%i

同 %d

"%i" % 45 == '45'

%o

八进制数

"%o" % 1000 == '1750'

%u

无符号十进制整数

"%u" % -1000 == '-1000'

%x

十六进制数小写

"%x" % 1000 == '3e8'

%X

十六进制数大写

"%X" % 1000 == '3E8'

%e

指数计数法,小写 'e'

"%e" % 1000 == '1.000000e+03'

%E

指数计数法,大写 'E'

"%E" % 1000 == '1.000000E+03'

%f

浮点数

"%f" % 10.34 == '10.340000'

%F

同 %f

"%F" % 10.34 == '10.340000'

%g

%f 或 %e 更短者

"%g" % 10.34 == '10.34'

%G

同 %g 但是大写

"%G" % 10.34 == '10.34'

%c

符号格式化

"%c" % 34 == ' " ' 注1

%r

Repr 格式化(调试格式化)

"%r" % int == '' 注2

%s

字符串格式化

"%s there" % 'hi' == 'hi there'

%%

百分号

"%g%%" % 10.34 == '10.34%'

ai酱注:

注1:%c 是把 34 转换为 ASCII 码,其对应的 ASCII 码为 "。

注2:%r 打印时能够重现它所代表的对象。

Python 2 的代码使用这些格式化字符来实现 Python 3 中 f 的功能,你也可以试试这些替代方法。

运算符

有些操作符号你可能还不熟悉,不过还是逐一看过去,研究一下它们的功能,如果你研究不出来也没关系,记录下来日后再去解决。

运算符

描述

示例

+

2 + 4 == 6

-

2 - 4 == -2

*

2 * 4 == 8

**

乘方

2 ** 4 == 16

/

2 / 4 == 0.5

//

地板除法(商向下取整)

2 // 4 = 0

%

字符串插入符;取模

2 % 4 == 2

<

小于

4 < 4 == False

>

大于

4 > 4 == False

<=

小于等于

4 <= 4 == True

>=

大于等于

4 >= 4 == True

==

等于

4 == 5 == False

!=

不等于

4 != 5 == True

( )

括号

len('hi') == 2

[ ]

列表中括号

[1,3,4]

{ }

字典大括号

{'x': 5, 'y': 10}

@

At (修饰符)

@classmethod

,

逗号

range(0, 10)

:

冒号

def X():

.

self.x = 10

=

赋值等号

x = 10

;

分号

print("hi"); print("there")

+=

加赋值

x = 1; x += 2

-=

减赋值

x = 1; x -= 2

*=

乘赋值

x = 1; x *= 2

/=

除赋值

x = 1; x /= 2

//=

地板除赋值

x = 1; x //= 2

%=

取模赋值

x = 1; x %= 2

**=

乘方赋值

x = 1; x **= 2

ai酱注:x += 2 相当于 x = x + 2,其他同类运算同理。

花一个星期来学习这些东西,如果你能提前完成的话更好。我们的目的是覆盖到所有的符号类型,确认你已经牢牢记住它们。另外很重要的一点是这样可以帮助你发现还没掌握的内容,以便日后学习巩固。

阅读代码

现在去找一些 Python 代码阅读一下。你需要尽可能地阅读你能找到的任何代码,然后从中学习一些东西。目前为止你学到的东西已经足够让你看懂一些代码了,但你可能还无法理解这些代码的功能。这节课我要教给你的是:如何运用你学到的东西去理解别人的代码。

首先把你想要理解的代码打印到纸上。没错,你需要打印出来,因为和屏幕相比,你的眼睛和大脑更习惯于纸质内容。一次最多打印几页就可以了。

然后通读你打印出来的代码并做好标记,标记的内容包括以下几个方面:

函数以及函数的功能。

每个变量的初始赋值。

每个在程序中多次出现的变量。它们以后可能会给你带来麻烦。

任何不包含 else 的 if 语句。它们是正确的吗?

任何可能没有结束的 while 循环。

代码中任何你看不懂的部分。

第三步,你需要用注释向自己解释代码的含义。解释各个函数的使用方法,各个变量的用途,以及任何其它方面的内容,只要能帮助你理解代码即可。

最后,对于代码中比较难的部分,逐行或者逐个函数地去跟踪变量值。你可以再打印一份出来,在空白处写出你要“追踪”的每个变量的值。

一旦你基本理解了代码的功能,回到电脑面前,在屏幕再重读一次,看看能不能找到新的问题点。然后继续找新的代码,用上述方法去阅读和理解,直到你不再需要纸质打印为止。

附加练习

研究一下什么是“流程图”(flow chart),并试着画一画。

如果你在读代码的时候发现了错误,试着把它们改对,然后把修改内容发给作者。

如果不使用纸质打印,你可以使用注解符号 # 在程序中加入笔记。这些笔记会对后来的读代码的人有很大的帮助。

常见问题

我如何在网上搜索这些东西? 只要在任何你要搜的内容前面加上 “python3.6” 就行了。比如你要搜 yield,就输入 python3.6 yield。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值