我是 python 的新手,正在尝试运行一个函数,该函数将在给定一个变量的情况下倒计时到零,然后倒计时到原始变量。输出应如下所示:
>>> functionname(5)
5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5
到目前为止,我已经编写了下面的代码,但这并没有一直计算到原始变量。我想我需要以某种方式保存变量以便稍后引用它,但我不知道该怎么做,因为 python 会随着函数的执行自动更改 n。
def functionname(n):
n = orginal
while n > 0:
print n
n=n-1
print n
if n==0:
print n
n=n+1
我将非常感谢一些指点,因为我现在似乎完全陷入困境。
请您参考如下方法:
只需从负数到正数并使用数学:
def fn(n):
print ', '.join(str(abs(i)) for i in range(-n, n+1))
fn(5)
# 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5
指针:
- 如果您已经知道要迭代的范围,则使用
for循环而不是while会更简洁、更直接。 - 您可以使用
range函数生成数字序列。 - 您可以像我上面那样将简单的
for循环转换为列表理解。
您的要求的“简单”干净实现看起来像这样:
def fn(n):
for i in range(n, 0, -1):
print i,
for i in range(n + 1):
print i,
其他说明:
range也可以倒数range的结束参数不包含在范围本身中,这就是为什么第二个循环将n + 1指定为限制(而不仅仅是n)- 在您的
print上添加尾随逗号使其在末尾添加一个空格而不是换行符。
