3

我只想使用打印功能创建一次以下输出:

1 - Add
2 - Subtract
3 - Divide
4 - Multiply

为此,我使用以下代码:

> for i in range(1, 5):
>     array = ["Add", "Subtract", "Divide", "Multiply"]
>     print(f"{i} - array[{i-1}]")

但我得到的输出是:

1 - array[0]
2 - array[1]
3 - array[2]
4 - array[3]

你能帮我做错什么吗?如何在打印函数中调用数组元素?

4

4 回答 4

3

您需要在 中移动列表索引{},否则array将被解释为字符串:

print(f"{i} - {array[i-1]}")

但是您print在循环中使用了该函数 4 次。如您所说,如果您print只想使用一次,则可以解压缩生成器表达式并使用sep参数:

array = ['Add', 'Subtract', 'Divide', 'Multiply']
print(*(f'{idx} - {val}' for idx, val in enumerate(array, 1)), sep='\n')
于 2018-10-13T14:22:40.173 回答
1

你想要的是:

print(f"{i} - {array[i-1]}")

但是最好在循环之前初始化数组,否则每次运行循环时都创建相同的数组。

所以,这样的事情更有效:

array = ["Add", "Subtract", "Divide", "Multiply"]
for i in range(1, 5):
    print(f"{i} - {array[i-1]}")

# 1 - Add
# 2 - Subtract                                                
# 3 - Divide                                                 
# 4 - Multiply                                     
于 2018-10-13T14:22:57.830 回答
0

可以改成这样:

print(i, '-', array[i-1])

如果使用格式,只能在花括号中解释{},外部array被视为字符串,因此可以使其工作如下:

 print(f"{i} - {array[i-1]}")
于 2018-10-13T15:03:04.010 回答
0

您还想获取数组变量:print(f"{i} - {array[i-1]}")

于 2018-10-13T14:20:34.317 回答