2015-12-10 4 views
-1

кодПеребор переменной на печать

print(coins_in_the_bag) #{'Bug Out Bag': ['q', 0.25, 100], 'sm': ['q', 0.25, 10]} 
    print('\n') 
    print('for bag: {}\n total:{} '.format(
      my_bag, 
      for b in my_bag: 
       total = float(coins_in_the_bag[b][1])*float(coins_in_the_bag[my_bag][2])) 
      total 
    ) 

Как я могу сделать мой цикл в second parameter в моем операторе печати?

То, что я пытаюсь достичь:

Bug Out Bag: 
Total: 25 

sm: 
2.5 

я получаю ошибку:

for b in my_bag: 
    ^
SyntaxError: invalid syntax 

Спасибо

+0

'for' цикл является утверждение, а не выражение. – chepner

+0

Что такое 'my_bag'? –

ответ

1

Очистка ответ Вы писали

my_coin = coins_in_the_bag[my_bag] 
original_total = float(my_coin[1])*float(my_coin[2]) 
print('for bag: {}\n original{}\n new total:{}\n '.format(
    my_bag, 
    original_total, 
    original_total - float(amount_to_move) 
    ) 
) 
0

Если вы хотите использовать for цикл , он должен прийти до print как свое собственное утверждение; вы не можете использовать произвольный код в качестве выражения.

total = 0 
for b in my_bag: 
    total += float(coins_in_the_bag[b[1]])*float(coins_in_the_bag[my_bag][2])) 
    print('for bag: {}\n total:{} '.format(my_bag, total)) 

Однако, вы можете написать одно выражение, которое вычисляет сумму без использования for цикла. Например,

print('for bag: {}\n total:{} '.format(
     my_bag, 
     sum(float(coins_in_the_bag[b[1]])*float(coins_in_the_bag[my_bag][2])) for b in my_bag) 
) 
+0

Первый блок кода должен просто использовать '=' для total, если я правильно читаю пример вывода –

0

Я был в состоянии решить это, я надеюсь, что это поможет кому-то!

print('for bag: {}\n original{}\n new total:{}\n '.format(
    my_bag, 
    float(coins_in_the_bag[my_bag][1])*float(coins_in_the_bag[my_bag][2]), 
    float(coins_in_the_bag[my_bag][1])*float(coins_in_the_bag[my_bag][2]) - float(amount_to_move) 
    ) 
) 
+0

Вы можете сохранить значение умножения перед печатью, чтобы сделать код более чистым. –

+0

Пожалуйста, напишите ответ, отображающий это. – Jshee

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