2017-03-13 42 views
-1

我希望能夠通過引用變量'count'來增加{}中的內容,因爲我希望它每次都從列表'nodes'中打印出不同的部分它通過Python增量{#} in str.format

count = 0 

while len(nodes) > count: 
    print("ltm node {} \n".format(*nodes)) 
    count = count+1 
    print(" address {} \n".format(*nodes)) 
    count = count+1 

我在我不能爲生命迭代計算出來的找到它記錄任何地方

下面是完整的代碼

nodes = [] 

node_qty = int(input("Number Of Nodes: ")) 
count = 1 
print("Enter the node details ") 

while len(nodes) < node_qty*2: 
    item1 = input("Enter Node %d Name: " % count) 
    nodes.append(item1) 
    item2 = input("Enter Node %d IP: " % count) 
    nodes.append(item2) 
    count = count+1 

count = 0 

print("\n"+"List of nodes:") 

while len(nodes) > count: 
    print("ltm node {0} \n".format(*nodes)) 
    count = count+1 
    print(" address {1} \n".format(*nodes)) 
    count = count+1 

以下是它在行動成績單:

> Number Of Nodes: 2 Enter the node details 
> 
> Enter Node 1 Name: Server1 
> 
> Enter Node 1 IP: 192.168.1.1 
> 
> Enter Node 2 Name: Server2 
> 
> Enter Node 2 IP: 160.10.10.1 
> 
> List of nodes: 
> ltm node Server1 
> 
>  address 192.168.1.1 
> 
> ltm node Server1 
> 
>  address 192.168.1.1 

目前,它僅顯示指數在0和1,因爲它是硬編碼的細節,但考慮到「計數」變量遞增,我想代替固定的使用這個變量的大括號數字

(纔開始學習蟒蛇昨日所以希望該代碼是不是太草率:))

+0

究竟是你想打印什麼?也許你可以提供一個你希望給定輸入的輸出示例,因爲很難從你的問題中理解。 – pvg

回答

1

在每個輸入迭代您已經添加2項列表,所以,保持你的邏輯,是,你還需要「用步長2遍歷列表」並按照this answer

for i in range(0,len(nodes),2): 
    print("ltm node {0} \n".format(nodes[i])) 
    print(" address {0} \n".format(nodes[i+1])) 

注意:當accessing arguments by position每個print str.format()開始於{0}指數開頭。

或者作爲一個打印聲明:

print("ltm node {0} \n address {1} \n".format(nodes[i], nodes[i+1])) 

輸出:

List of nodes: 
ltm node Server1 
    address 192.168.1.1 

ltm node Server2 
    address 160.10.10.1