3.11.1 Collatz序列(书本第56页)
在做练习时,首先尝试自己编写代码试运行,出错了不要直接去网上搜寻答案,而是自己先尝试调试,这个过程虽然看起来“浪费时间”,但是一次锤炼自己的机会。
def collatz(number): #定义函数
if number%2==0:
return number//2
else:
return 3*number+1
print("Eter number:")
k=int(input())
#k=3#此处手动赋值,便于逐步调试
while True:
if collatz(k)!=1:
k=collatz(k)
print(k)
else:
print(collatz(k))
break
运行结果
Python 3.7.9 (bundled)
>>> %Run lianxi.py
Eter number:
3
10
5
16
8
4
2
1
在编写调试过程中,学习和巩固了很多知识:
1.return返回值
在上面的例子中,一般默认是写成 return number//2,自己在刚开始时写的是return (number//2)。在逐步调试后,发现带括号也可以。随后再上网搜寻后,两种都可以,带括号好处是可以很清晰的看返回的表达式,缺点是有些编译器会弹出警告。
2.学习看Thoony编辑器的提示信息
在def定义函数或if语句结尾没添加“:”时,会提醒错误。
3.练习了Thoony编辑器的调试功能
在上述实例中,将获取用户输入换成赋值,然后用逐步调试功能,逐步观察程序的运行过程,在运行到调用函数这块儿,重新打开页面,一步步展示计算过程。
4.主动思考、联系、总结,将琐碎的知识或经验链接起来,激励自己不断前行!’