2017-01-14 77 views
0

我正在尋找使用for循環來創建多個變量,在迭代(i)上命名,併爲每個變量分配一個唯一的int。使用循環創建和分配多個變量(Python)

Xpoly = int(input("How many terms are in the equation?")) 


terms={} 
for i in range(0, Xpoly): 
    terms["Term{0}".format(i)]="PH" 

VarsN = int(len(terms)) 
for i in range(VarsN): 
    v = str(i) 
    Temp = "T" + v 
    Var = int(input("Enter the coefficient for variable")) 
    Temp = int(Var) 

正如你在最後看到我迷路了。理想情況下,我正在尋找一個輸出,其中

T0 = # 
T1 = # 
T... = # 
T(Xpoly) = # 

任何建議?

+2

使用字典而不是變量'T0','T1'。代碼'Temp =「T」+ v'不會創建名稱爲「T0」,「T1」但只包含文本「T0」,「T1」的變量,您可以在詞典中使用[Term] Var' – furas

+1

BTW:爲變量和函數使用'lower_case'名稱''vars_n','temp','var' - 它使代碼更具可讀性,因爲我們只爲類使用'CamelCase'名字。 – furas

+1

您可以使用'for'循環 - 使用'terms [「Term {0}」.format(i)] = var' – furas

回答

4

您可以在一個循環

how_many = int(input("How many terms are in the equation?")) 

terms = {} 

for i in range(how_many): 
    var = int(input("Enter the coefficient for variable")) 
    terms["T{}".format(i)] = var 

做的一切,以後你可以用

print(terms['T0']) 

但它可能是更好的使用列表,而不是一本字典

how_many = int(input("How many terms are in the equation?")) 

terms = [] # empty list 

for i in range(how_many): 
    var = int(input("Enter the coefficient for variable")) 
    terms.append(var) 

稍後您可以使用

print(terms[0]) 

甚至(獲得前三項)

print(terms[0:3]) 
+0

執行'range(how_many + 1)'。這是我從他的問題中瞭解到的。 '範圍(0,Xpoly)',他希望'T(Xpoly)'。 – MYGz

+0

也許'T(Xpoly)'建議'how_many + 1',但範圍(0,Xpoly)只表示'how_many' - 從'0'到'how_many-1'(從'0'到'Xpoly-1' ) – furas