是否可以在一行上打印一个不断更新的变量?

问题描述

这只是一个简单的例子,

import time
for i in range (1,11):
    print(i)
    time.sleep(1)

代码计数为10,但是每个打印的i值都在新行上。是否可以将它们全部打印在第一行,并在每次打印新印刷时都删除该当前编号,以便一次计数到10?

解决方法

在要打印的数字前添加'\ r',这将返回回车并覆盖最后一行:

import time
for i in range (1,11):
    print(f'\r{i}',end='')
    time.sleep(1)
# Add print after loop for a new line,when finishing
print()
,

您可以使用sys.stdout.write。

const result = [{
    "id": 998,"client": {
      "id": "AF01072","name": "Vivek","lastName": "Joshi","phone": 123
    },"membership": {
      "type": "Semi-Annually","price": 18000
    },"start_date": "2019-11-19","end_date": "2020-05-16","payment": 12000,"balance": 0
  },{
    "id": 1004,"membership": {
      "type": "Annually","price": 30000
    },"start_date": "2020-08-27","end_date": "2021-08-27","payment": 30000,"balance": 5000,},{
    "id": 1005,"client": {
      "id": "AF01073","name": "Some Other",}
].reduce((acc,item,i) => {
  if (i == 0) {
    acc.push(constructCorrectObject(item));
    return acc;
  }
  let foundItem = acc.find(it => it.id === item.client.id);
  if (foundItem) {
    addMemeberShipDetails(foundItem,item);
    return acc;
  } else {
    acc.push(constructCorrectObject(item));
    return acc;
  }
},[]);

function constructCorrectObject(item) {
  return {
    "id": item.client.id,"name": item.client.name,"lastName": item.client.lastName,"phone": item.client.phone,"membership": [{
      "id": item.id,"type": item.membership.type,"price": item.membership.price,"start_date": item.start_date,"end_date": item.end_date,"payment": item.payment,"balance": item.balance,}]
  }
}

function addMemeberShipDetails(acc,item) {
  acc.membership.push({
    "id": item.id,});
}

console.log(result);