你有一个嵌套的循环。进入while循环,然后在for循环中立即开始执行。中所有元素的执行仍在for循环中
all_currencies.items()
.每次
codigo
是在
moedas_importantes
,该元素被移除。最终,您将从中删除所有元素
重要人物
,但您仍然处于for循环和check中
if codigo == moedas_importantes[0]
.在这一点上
重要人物
为空,因此会出现索引错误。
我认为下面的代码将在没有嵌套循环的情况下工作。注意,这假设所有元素
重要人物
还有钥匙吗
all_currencies
.
all_currencies = currency_api('latest', 'currencies') # {'eur': 'Euro', 'usd': 'United States dollar', ...}
all_currencies.pop('brl')
qtd_moedas = len(all_currencies)
texto = f'{qtd_moedas} Moedas encontradas\n\n'
moedas_importantes = ['usd', 'eur', 'gbp', 'chf', 'jpy', 'rub', 'aud', 'cad', 'ars']
while len(moedas_importantes) != 0:
codigo = moedas_importantes[0]
moeda = all_currencies[codigo]
cotacao, data = currency_api('latest', f'currencies/{codigo}/brl')['brl'], currency_api('latest', f'currencies/{codigo}/brl')['date']
texto += f'{moeda} ({codigo.upper()}) = R$ {cotacao} [{data}]\n'
moedas_importantes.remove(codigo)