习题31:做出决定
1.if语句内部在放一个if,可以用来创建一个嵌套(nested)的决定。其中一个的分支将领向另一个分支的子分支。
习题32:循环和列表
1.range函数
class range(object)
range (stop) ----> range object
range(start,stop,[, step]) ---->range object
Return an object that produces a sequence of integers from start(inclusive) to stop(exclusive) by step.
range(i,j) produces i,i+1,i+2,...,j-1.start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3.
These are exactly the valid indices for a list of 4 elements.When step is given, it specifies the increment(or decrement)
2.在Pyrthon文档中找到列表的内容。除了append外,还支持哪些操作?
(1)append(...)
L.aapend(object) -->None -- append object to end
(2)clear(...)
L.clear() -->None -- remove all items from L
(3) copy(...)
L.copy() --->list -- a shallow copy of L
(4) count(...)
L.count(value) --> integer --return number of occurrencse of value
(5)extend(...)
L.extend(iterable) -->None. --extend lsit by appending elements from the iterable
(6)index(...)
L.index(value, [start, [stop]]) -->integer --return first index of value.
(7) insert(...)
L.insert(index, object) -- insert object before index
(8) pop(...)
L.pop([index]) --> item -- remove and return item at index(default last). Raise IndexError if list is empty or index is out of range.
(9) remove(...)
L.remove(value) -->None -- remove first occurence of value.Raise ValueError if the value is not present.
(10)reverse(...)
L.reverse() -- reverse IN PLASE
(11)sort(...)
L.sort(key = None, reverse = False) -->None --stable sort IN PLACE
习题33:While循环
- While循环和 if 语句类似,也是去检查一个布尔表达式的真假,不一样的是它下面的代码不是只被执行一次,而是执行完后再调回到while 所在的位置,如此重复进行,直到while表达为false 为止。
2.While循环有一个问题,就是有时候它永远不会结束。为了避免这样的问题,需要遵循下面的规定:
(1)尽量少用 while -loop,大部分时候 for-loop是更好的选择
(2)重复检查你的while语句,确定你测试的布尔表达式最终会变成False.
(3)如果不确定,就在while-loop的结尾打印出你要测试的值。看看它的变化。
习题34:访问列表的元素
1.序数(ordinal number):表示事物的顺序
习题35:分支和函数
习题36:设计和调试
If语句的规则:
1.每一个if语句必须包含一个else
2.如果这个else永远都不应该被执行到,因为它本身没有任何意义,那你必须在else语句后面使用一个叫die的函数,让它打印出来错误信息并死掉
3.If语句的嵌套不要超过2层,最好尽量保持只有1层,这意味着如果你在if里边又有了一个if,;那你就需要把第二个if移到另一个函数里
4.将if语句当作段落来对待,其中的每一个if,elif,else组合就跟一个段落的句子组合一样。在这种组合的最前面和最后面留一个空行以作区分。
5.你的布尔测试应该很简单。如果复杂的话,需要事先放到一个变量里,并且为变量取一个好名字。
循环的规则:
1.只有在循环永不停止时使用while循环,这意味着你可能永远都用不到。这条只在Python中成立,其他语言另论。
2.其他类型的循环都使用for循环,尤其是在循环的对象数量固定或有限的情况下
调试的技巧:
1.最好的调试程序的方法是使用print在你各个想要检查的关键环节将变量打印出来,从而检查哪里有错
2.让程序一部分一部分的运行,不要等都写完,运行一点,修改一点。
习题37:复习各种符号
1.Keywords(关键字)
and
del
from
while
as
elif
global
or
with
assert
else
if
pass
yield
break
except
import
print
class
exec
in
raise
continue
finally
is
return
def
for
lamdba
try
2.数据类型
True
Fasle
None
strings
numbers
floats
lists
3.字符串转义序列(Escape Sequences)
\
'
\a
\b
\f
\n
\r
\t
\v
4.字符串格式化(String Formats)
%d
%i
%o
%u
%x
%X
%e
%E
%f
%F
%g
%G
%c
%r
%s
%%
5.操作符号
**
/
//
%
<
<=
=
==
!=
<>
()
[]
{}
@
,
:
.
=
;
+=
-=
*=
/=
//=
%=
**=
习题38:阅读代码
1.通读代码,对代码作标记:
(1)函数以及函数的功能
(2)每个变量的初始赋值
(3)每个在程序的各个部分中多次出现的变量。它们可能会给你带来麻烦
(4)任何不包含else的if语句。它们是正确的吗?
(5)任何可能没有结束点的while循环
(6)任何看不懂的地方都记下来
2.流程图:使用图形表示算法的思路
习题39:列表的操作
1.while循环
while len(stuff) != 10 , 当len(stuff) = 10时,还要执行?
- ' '.join(things) 和join(' ', things)其实是同一件事情
' '.join(things) 用 ' ' 连接(join) things. 而join(' ', things)的意思是为 ' ' 和 things 调用join函数。 - 面向对象编程(Object Oriented Programming)
https://www.zhihu.com/question/31021366
4.Python中的class
用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
5.dir(something)和 something的class关系
6.函数编程(functional programming)
习题40:字典,可爱的字典
1.dict(dict的内容是无序的)
class dict(object)
dict() --> new empty dictionary
dict(mapping) -->new dictionary initialized from a mapping object's
(key, value) pairs
dict(iterable) -->new dictonary initialized as if via:
d = {}
for k, y in iterbale:
d[k] = v
dict(**kwargs) -->new dictionary initialized with the name = value pairs
in the keyword argument list. For example: dict(one = 1, two = 2)
- break:
break语句用来终止循环语句,即循环条件没有False条件或者序列还没有被完全递归完,也 会停止执行循环语句。
Break语句用在while 循环和for循环中。
如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。 - 试着把for-loop执行到dict上面,然后试着在for-loop中使用dict的items()函数,看看有什么结果
Python字典(Dictionary) items()方法
Python字典(Dictionay) items()函数以列表返回可遍历的(键,值)元组数组。
语法:
dict.items()
网友评论