在打印时循环变量

时间:2015-12-10 13:45:49

标签: python

代码

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
    )

如何在我的print语句中的second parameter中进行循环?

我想要实现的目标:

Bug Out Bag:
Total: 25

sm:
2.5

我收到错误:

    for b in my_bag:
      ^
SyntaxError: invalid syntax

谢谢

3 个答案:

答案 0 :(得分: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)
   )
)

答案 1 :(得分: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)
)

答案 2 :(得分: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)
    )
)