从转换为二维数组的两个管道分隔文件之间执行的操作中获取错误的输出

2024-10-01 04:15:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉编码,我对这个问题的指导是: “给定以管道分隔的文件F1和F2,其中F1包含字段ACCOUNT NUM | PIN | BALANCE,F2包含事务处理指令COMMAND | AMOUNT | ACCOUNT NUM | PIN,执行事务,将结果存储回F1。在

命令字段将是add或sub,表示帐户的加减。在

不提供正确的PIN码或试图将帐户置于零以下的交易应被忽略。”

我的输出是:

1000|1234|10000
1020|2222|0
3000|3344|1000
2020|1234|90000

正确的输出是:

^{pr2}$

我写的代码是:

import sys
F1= sys.argv[1] 
F2= sys.argv[2]

records=[]
with open(F1,'r') as fp:
  content=fp.readlines()
  for row in content:
    recList=row.strip("\n").split('|')
    records.append(recList)

records2=[]
with open(F2,'r') as fp:
  content=fp.readlines()
  for row in content:
    recList2=row.strip("\n").split('|')
    records2.append(recList2)

for i in range(len(records)):
  row=records[i]
for i in range(len(records2)):
  row=records2[i]
for row in records and records2:
  if records[i][1]==records2[i][3]:
    if records2[i][0]=="add":
      records[i][2]=int(records[i][2])+int(records2[i][1])
    elif records2[i][0]=="sub":
      if int(records[i][2])>=int(records2[i][1]):
        records[i][2]=int(records[i][2])-int(records2[i][1])
      else:
        records[i][2]=records[i][2]
  else:
    break
print(records)

Tags: inforifsyspinaccountcontentnum