2017-05-20 61 views
-2
n=int(input("Kiek elementų turės tavo sąrašas")) 
A=[] 
n=0 
t=0 
teig=int(input("Įvesk teigiamą elementą kurį noprėsi pridėti prie sąrašo")) 
neig=int(input("Įvesk neigiamą elementą kurį norėsi pridėti prie sąrašo")) 
for a in range(1,n+1): # HERE ######### 
    t=int(input("Įvesk %i masyvo elementą"%(a))) 
    A.append(t)** 
for x in A: 
    if x>0: 
     t=t+1 
    else: 
     n=n+1 
if n<t: 
    a=t-n 
else: 
    a=n-t 
for x in range(1,a+1): 
    if n<t: 
     A.append(teig) 
    else: 
     A.append(neig) 

爲什麼標記的循環不起作用?由於某種原因我沒有獲得輸入信號。爲什麼這個循環沒有運行?

回答

2

你說的range(1, n+1)n=0range(1, 1)是空的,所以循環從不執行。增加n

1

n = 0因此range(1,n+1)range(1,1)當迭代時相當於[]因此循環體從不出現。

您需要刪除作業n = 0,以便使用從用戶讀取的值代替。

+0

它不一定是Python 2,所以我們不知道'range'是一個列表。 ;-) –

+0

告訴我一個地方,你不能用'[]'來代替'range(1,1)'?我可以說這是'iter([])'。 –

0

簡化程式碼:

for a in range(1,1): 
    print("ok") 

不工作。

for a in range(1,2): 
    print("ok") 

作品:) 所以,你可以寫你的循環時,有一個邏輯問題。

1

你有for a in range(1,n+1):n=0所以它的range(1,1)這是[]

+0

它不一定是Python 2,所以我們不知道'range'是一個列表。 ;-) –

0

您是騎自行車從1到n + 1,但N + 1爲1 範圍(1,1)是一個空列表,所以沒有迭代將被執行。