习题36:设计和调试
-
if语句的规则:
- 每一个"if语句"必须包含一个else。
- 如果这个else永远都不应该被执行到,因为它本身没有任何意义,那你必须在else语句后面使用一个叫做die的函数,让它打印出错误信息。
- "if语句"的嵌套不要超过2层,最好尽量保持只有1层。
- 将"if语句"当做段落来对待,其中的每一个if,elif,else组合就跟一个段落的句子组合一样。在这种组合的最前面和最后面留一个空行以作区分
- 你的布尔测试应该很简单,如果它们很复杂的话,你需要将它们的运算事先放到一个变量里,并且为变量取一个好名字
-
循环的规则:
-
只有在循环永不停止时使用"while循环",这意味着你可能永远都用不到。这条只有Python中成立,其他的语言另当别论。
-
其他类型的循环都使用"for循环",尤其是在循环的对象数量固定或者有限的情况下。
-
调试的小技巧:
- 不要使用“调试器”(debugger)。调试器所作的相当于对病人的全身扫描。你并不会得到某方面的有用信息,而且你会发现它输出的信息太多,而且大部分没有用,或者只会让你更困惑。意思是有时候你的bug只是很一个小地方,但这个小bug引起其他bug,所以用debugger会让你的调试时间无限长。
- 最好的调试程序的方法是使用print 在各个你想要检查的关键环节将关键变量打印出来,从而检查哪里是否有错。
- 让程序一部分一部分地运行起来。不要等一个很长的脚本写完后才去运行它。写一点,运行一点,再修改一点。可以用多行注释的方式将一部分程序不运行,一步一步运行再修改。
偷懒不写咧家庭作业吧。。。
习题37:复习各种符号
这个都不继续pull上来全部的表格了,大部分在之前都有涉及,这里是做一个总结
,习题37和习题27都是一周时间。每天开始训练之前练一下即可。
知识点
观看别人代码
- 函数以及函数的功能
- 每个变量初始赋值的位置
- 每个在程序中各个部分中多次出现的同名变量
- 任何不包含else子居的if语句
- 任何可能没有结束点的while循环
- 代码中任何你看不懂的部分,上传查询,在搜索的东西前面加上‘“pothon3”就可以。
习题38:列表的操作
代码
ten_things = "Apples Oranges Crows Telephone Light Sugar"
print("Wait there are not 10 things in that list.Let's fix that.")
stuff = ten_things.split(' ')
more_stuff = ["Day", "Night", "Song", "Frisbee", "Corn",
"Banana", "Girl", "Boy"]
for i in range(10-len(stuff)):
#while len(stuff) !=10:
next_one = more_stuff.pop() #其实是pop(more_stuff)
"""more_stuff.pop() 其实是 pop(more_stuff)
more_stuff.pop() 翻译成 more_stuff上调用pop函数
pop(more_stuff) 翻译成 more_stuff 作为参数调用pop函数
"""
print("Adding:",next_one)
stuff.append(next_one)
print(f"There are {
len(stuff)} items now.")
print("There we go:", stuff)
print("Let's do some things with stuff.")
print(stuff[1]