Collatz猜想代码的Try-Except问题:为何打印数字而非传入函数?
问题分析与解决
你的程序直接打印数字而没调用collatz()函数,核心原因很简单:你在循环里只写了打印变量i的代码,完全没触发collatz()函数的调用。
从你的代码逻辑来看,你定义了collatz()函数,但在遍历1到100的循环中,执行的是print(i)——这行代码只会直接输出当前的数字i,和你写的collatz()函数没有任何关联。
修正方式
根据你的需求调整循环代码:
- 如果
collatz()函数内部已经包含打印逻辑,把循环里的print(i)改成collatz(i); - 如果
collatz()函数是返回处理后的值,需要打印结果,就改成print(collatz(i))。
举个例子,修正后的循环代码大概是这样:
for i in range(1, 101): collatz(i) # 调用collatz函数,替代原有的print(i)
这样程序就会把每个数字i传入collatz()函数执行,而不是直接打印数字了。
内容的提问来源于stack exchange,提问作者Mico123
相关产品推荐
相关产品推荐

