2017-05-20 23 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)と表示されます。 range(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を持っているので、それは[]

+0

必ずしもPython 2であるとは限らないので、 'range'がリストであることはわかりません。 ;-) –

0

あなたは1からn + 1に1からサイクリングが、N +されているが、1 範囲(1、1)空のリストですので、ノーですrange(1,1)です反復が実行されます。

関連する問題