如何打印到同一行 - 如果For循环中的语句

时间:2017-12-15 20:48:30

标签: python

Python 3 - 我正在使用for循环来打印字典中的值。 rawData中的一些字典有" RecurringCharges"作为一个空列表。我正在检查列表是否为空并且填充了" 0.0"如果是空的或者是#34;金额"如果填充。

在For循环中创建IF语句会显示一个新的print语句并打印到一个新行。我希望它是一条连续的线。

for each in rawData['ReservedInstancesOfferings']:
    print('PDX', ','
          , each['InstanceType'], ','
          , each['InstanceTenancy'], ','
          , each['ProductDescription'], ','
          , each['OfferingType'], ','
          , each['Duration'], ','
          , each['ReservedInstancesOfferingId'], ','
          , each['FixedPrice'], ',',
          )
    if not each['RecurringCharges']:
        print("0.0")
    else:
        print(each['RecurringCharges'][0].get('Amount'))

4 个答案:

答案 0 :(得分:1)

如果使用Python 3,请在每个print语句的末尾添加逗号,然后结束="",例如:

 print(each['RecurringCharges'][0].get('Amount'), end="")

答案 1 :(得分:0)

我在发布后不久就找到了答案:在第一个print语句中包含参数end =''。

for each in rawData['ReservedInstancesOfferings']:
    print('PDX', ','
          , each['InstanceType'], ','
          , each['InstanceTenancy'], ','
          , each['ProductDescription'], ','
          , each['OfferingType'], ','
          , each['Duration'], ','
          , each['ReservedInstancesOfferingId'], ','
          , each['FixedPrice'], ',', end=''
          )
    if not each['RecurringCharges']:
        print("0.0")
    else:
        print(each['RecurringCharges'][0].get('Amount'))

答案 2 :(得分:0)

使用stdout!

而不是使用打印功能
import sys
sys.stdout.write('this is on a line ')
sys.stdout.write('and this is on that same line!')

使用sys.stdout.write(),如果你想要一个换行符,你将\ n放在字符串中,否则,它就在同一行。

答案 3 :(得分:0)

当然,你可以关注How to print without newline or space?

但在这种情况下,最好将表达式作为三元表达式中的最后一个参数插入:

      , each['ReservedInstancesOfferingId'], ','
      , each['FixedPrice'], ','
      , "0.0" if not each['RecurringCharges'] else each['RecurringCharges'][0].get('Amount')
      )