2014-09-29 3 views
0

У меня есть фрагмент кода:Что касается питона петель

 while True: 

      if a == float(b[0]): 
       y = b[1] 
       x.append(y) 

      else: 
       a = a + 1 

Где б список двух столбцов в ширину. Проблема состоит в том, что оператор if не выполняет итерацию по всем элементам, поэтому инструкция else никогда не достигается. Мне было интересно, как я могу это исправить?

ответ

0
for item in b: 
    if a == float(item[0]): 
     y = item[1] 
     x.append(y) 
    else: 
     a = a + 1 

Кроме того, следует иметь в виду, что сравнение двух float чисел с помощью == может вызвать неожиданное поведение:

2.2 * 3.0 == 6.6 
    False 
    3.3 * 2.0 == 6.6 
    True 

См такие темы, как What is the best way to compare floats for almost-equality in Python?

Смежные вопросы