<p>这应该完全重写:</p>
<pre><code>def make_transaction(accounts, transactions):
for i in range(len(transactions)):
# Check account number & pin
if accounts[i][0:4] == transactions[i][9:13]:
if accounts[i][5:9] == transactions[i][-4:]:
# Check whether the user wants to add or subtract from balance
if 'add' in transactions[i]:
balance = int(accounts[i][10:])
transaction = int(transactions[i][4:8])
balance += transaction
balanceStr = str(balance)
accounts[i].replace(accounts[i][10:], balanceStr)
elif 'sub' in transactions[i]:
balance = int(accounts[i][10:])
transaction = int(transactions[i][4:8])
if balance > transaction:
balance -= transaction
balanceStr = str(balance)
accounts[i].replace(accounts[i][10:], balanceStr)
return accounts
</code></pre>
<p>例如,我宁愿这样做:</p>
<pre><code>def make_transaction(accounts, transactions) :
for a,t in zip(accounts, transactions) :
a_num, a_pin, a_balance = a.split('|')
t_command, t_amount, t_num, t_pin = t.split('|')
if a_num == t_num and a_pin == t_pin :
if t_command == 'add' :
# do your stuff
elif t_command == 'sub' :
# do something else
</code></pre>
<p>等等。。。使用索引处理字符串是非常错误的</p>