擅长:python、mysql、java
<p>以下是对代码的重构,包括以下更改:</p>
<ul>
<li>不要两次定义同一个函数。相反,定义两个单独的函数,并根据所需的语义决定调用哪一个。你知道吗</li>
<li>不要大写变量。在Python中,大写名称通常是为类名保留的。你知道吗</li>
<li>删除最后的<code>input</code>。当然,你的朋友希望你制作一个可以正确重用的程序;需要用户交互会破坏这一点。你知道吗</li>
<li>什么都不要用<code>sys.argv[0]</code>。如果没有使用它,就不需要捕获它(如果以后需要它,它仍然存在)。你知道吗</li>
<li>将入口点包装在<code>if __name__</code>。。。这样这段代码就可以<code>import</code>插入到另一个程序中而不会产生副作用。你知道吗</li>
</ul>
<pre><code>from math import sqrt
def fib_nth(n):
return int(1/sqrt(5)*(((1+sqrt(5))/2)**n-((1-sqrt(5))/2)**n))
def fib_seq(n):
sequence = []
for i in range(n):
sequence.append(fib_nth(i + 1))
return sequence
if __name__ == '__main__':
import sys
entscheidung = sys.argv[1]
n = int(sys.argv[2])
if entscheidung == "Stelle":
print("Die {}. Stelle beträgt:{}".format(n, fib_nth(n)))
elif entscheidung == "Folge":
print('[%s]' % ', '.join(map(str, fib_seq(n))))
</code></pre>