### 1.

Python 2.7 中

print "..." 没有问题

但在 3.5 中报错 因为没有 ()

 

Python 3.5 中

print ("...") 没有问题

print "..." 报错

 

### 2.

Python 中 "" 和 ' ' 一样但是 ' ' 常用来创建简短的字符串

 

 

print end1 + end2 + end3 + end4 + end5 + end6,end7 + end8 + end9 + end10 + end11 + end12

# 这样亦可以,但是这样该行的长度超过 80 个字符串,不是好的Python代码风格

 

# 可以写成这种 #在Python 2.7 中

print end1 + end2 + end3 + end4 + end5 + end6,

print end7 + end8 + end9 + end10 + end11 + end12

 

### 3.

在为变量赋值时 会忘记打 =

在输入时会忽略中英文符号问题

 

### 4.

你应该使用 %s,只有在想要获取某些东西的 debug 信息时才能用到 %r。 %r 给你的是变量的

"程序员原始版本",又被称作"representation"。

 

Python 会用最有效的方式打印出字符串,而不是完全按照你写的方式来打印。这样做对于 %r 来

说是可以接受的,因为它是用作 debug 和排错,没必要非打印出多好看的格式。

 

%r 就是这个样子,它打印出的是你写出来的方式(或者近似方式)。它是用来 debug 的原始格

式。

 

你必须写成 """ 而不是 " " ",引号之间不能有空格。

 

print 里的逗号其实是分隔参数的一种方式。

print 里的 + 是将两个字符串拼接起来

 

### 5.有趣的小代码

 

while True:

for i in ["/","-","|","\\","|"]:

print "%s\r" % i,

 

 

### 6.

在输入中把 , 和 . 按错

 

 

### 7,

``%r`` 用作 debug,``%s`` 用作显示。

 

### 8.

一般软件做的事情主要就是下面几条:

1. 接受人的输入。

2. 改变输入。

3. 打印出改变了的输入。

 

input() 和 raw_input() 有何不同?

input() 函数会把你输入的东西当做 Python 代码进行处理,这么做会有安全问题,你应该避开

这个函数。

打印出来后我的字符串前面有个 u ,像 u'35' 这样。

它表示 Python 告诉你你的字符串是 unicode。使用 %s 就一切正常了

 

print u"请输入您的姓名:"

# Python 2.7 是以ASCII码的形式进行输出输入,所以,这种方式可以以 UTF-8的形式输出中文,不会乱码

 

### 9.

argv 和 raw_input() 有什么不同?

不同点在于用户输入的时机。如果参数是在用户执行命令时就要输入,那就是 argv,如果是在

脚本运行过程中需要用户输入,那就使用 raw_input()。

 

### 10.

Python 不会限制你打开文件的次数,事实上有时候多次打开同一个文件是一件必须的事情。

 

### 11.

函数可以做三样事情:

1. 它们给代码片段命名,就跟"变量"给字符串和数字命名一样。

2. 它们可以接受参数,就跟你的脚本接受 argv 一样。

3. 通过使用 #1 和 #2,它们可以让你创建"微型脚本"或者"小命令"。

 

### 12.

*args 的 * 是什么意思?

它的功能是告诉 python 让它把函数的所有参数都接受进来,然后放到名字叫 args 的列表中去。

和你一直在用的 argv 差不多,只不过前者是用在函数上面

 

### 13.

函数里边的变量和脚本里边的变量之间是没有接的。

 

函数定义后忘记 :

变量名的拼写首字母打成大小写打错

 

### 14.

Python 会把函数或公式"自内而外"而不是"自下而上"。

 

### 15.

这是函数的工作原理。记住函数内部的变量都是临时的,当你的函数返回以后,返回值可以被赋予

一个变量。我这里是创建了一个新变量,用来存放函数的返回值。

 

### 16.

!= 和 <> 有何不同?

Python 中 <> 将被逐渐弃用, != 才是主流,除此以为没什么不同。

 

### 17.

可以用多个 if/else 来取代 elif 吗?

有时候可以,不过这也取决于额 if/else 是怎样写的,而且这样一来 python 就需要去

检查每一处 if/else,而不是像 if/elif/else 一样,只要检查到第一个 True 就可以停下来了。

 

### 19.

怎样判断一个数字处于某个值域中?

两个办法:经典语法是使用 1 < x < 10,或者用 x in range(1, 10) 也可以。

 

### 20.

开始使用 for 循环之前,你需要在某个位置存放循环的结果。最好的方法是使用列表(list),

顾名思义,它就是一个按顺序存放东西的容器

 

### 21.

如何创建二维列表?

就是在列表中包含列表,例如这样: [[1,2,3],[4,5,6]]

 

### 22.

"序数(ordinal number)",因为它们表示的是事物的顺序。

"index(索引)",而最好的方式是使用以 0 开头的索引。

 

### 23.

为什么 raw_input() 有时写成 raw_input('> ')?

raw_input 的参数是一个会被打印出来的字符串,这个字符串一般用来提示用户输入。

 

### 24.

If 语句的规则

1. 每一个"if 语句"必须包含一个 else.

2. 如果这个 else 永远都不应该被执行到,因为它本身没有任何意义,那你必须在 else 语句后面使用一个叫做 die 的函数,让它打印出错误信息并且死给你看,这和上一节的习题类似,这样你可以找到很多的错误。

3. "if 语句"的嵌套不要超过 2 层,最好尽量保持只有 1 层。 这意味着如果你在 if 里边又有了一个 if,那你就需要把第二个 if 移到另一个函数里面。

4. 将"if 语句"当做段落来对待,其中的每一个 if, elif, else 组合就跟一个段落的句子组合一样。在这种组合的最前面和最后面留一个空行以作区分。

5.你的布尔测试应该很简单,如果它们很复杂的话,你需要将它们的运算事先放到一个变量里,并且为变量取一个好名字。

 

### 25.

在你写代码之前,你应该设计出游戏的地图,创建出玩家会碰到的房间、怪物、以及陷阱等环节。一旦搞定了地图,你就可以写代码了。如果你发现地图有问题,就调整一下地图,让代码和地图互相符合。

每一个程序员在开始一个新的大项目时,都会被非理性的恐惧影响到。为了避免这种恐惧,他们会拖延时间,到最后一事无成。我有时会这样,每个人都会有这样的经历,避免这种情况的最好的方法是把自己要做的事情列出来,一次完成一样。

 

 

### 26.

如何运用你学到的东西理解别人的代码。

 

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

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

1. 函数以及函数的功能。

2. 每个变量的初始赋值。

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

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

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

6. 最后一条,代码中任何你看不懂的部分都记下来。

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

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

一旦你基本理解了代码的功能,回到电脑面前,在屏幕上重读一次,看看能不能找到新的问题点。然后继续找新的代码,

用上述的方法去阅读理解,直到你不再需要纸质打印为止

 

### 27.

%d 和 %i 有何不同?

没有什么不同,只不过由于历史原因,用 %d 的人更多一些而已。

 

### 28.

stuff[3:5] 实现了什么功能?

这是一个列表切片动作,它会从 stuff 列表的第 3 个元素开始取值,直到第 5 个元素。

注意,这里并不包含第 5 个元素,这跟 range(3,5) 的情况是一样的。

 

### 29.

列表和字典有何不同?

列表是有序排列的一些物件,而字典是将一些物件(keys)对应到另外一些物件(values)的数据结构。

 

字典能用在哪里?

各种你需要通过某个值去查看另一个值的场合。其实你可以把字典当做一个"查询表"。

列表能用在哪里?

列表是专供有序排列的数据使用的。你只要知道索引就能查到对应的值了。

 

 

### 30.

三种读代码的方法,它们适用于几乎所有的编程语言:

1. 从前向后。

2. 从后向前。

3. 逆时针方向。

posted on 2019-06-06 11:18  黑箱  阅读(128)  评论(0编辑  收藏  举报