2017-01-23 6 views
0

プログラムはリストの最初の番号だけを受け取り、他の番号は無視して空のリストを作成するのはなぜですか?プログラムは最初の番号の後にあるすべての番号を無視します

これは、すべての機能で、ループ)で発生します。私は考えることができる

cars=[23.11,1531,'volvo','BMW'] 

    def price(CAR): 

    num=[] 
    strings=[] 
    for i in CAR: 
     if isinstance(i,float)or isinstance(i,int): 
      num.append(i) 
     elif isinstance(i,str): 
      strings.append(i) 
     else: 
      pass 
     return num,strings 


print(price(cars)) 
([23.11], []) 
+1

コードに問題は見られません。私のマシンにコードを貼り付けてコピーします。 –

答えて

0

唯一の理由は、あなたのreturn文はあなたのforループと整列しているので、最初の繰り返しの後に存在します。 (今は正しく整列しているように見えますが、エディタが直感的に修正してくれたかもしれません)

+0

エディタは修正されましたが、ifおよびelifの文 –

+0

と同じ位置になければなりません。それが問題です。 return文がforループの内側にある場合、最初のパスの後に終了します。それはforループと位置合わせする必要があります。 – ilke444

+0

私はあなたに感謝する方法がわからない それは最後に動作します^^ –

関連する問題