字典迭代不会 运行 完全
Dictionary Iteration Won't run fully
所以,我正在尝试编写代码,允许您 1) 输入一个短语 2) 输入一个包含您要相互转换的货币的字符串(例如 USD EUR;EUR GBP) 3) 的汇率那两个。
如果你输入“我有 300 美元然后我有 400 美元”(1)、“美元欧元”(2) 和 4 (3),它应该 return“我有300 美元(~900 欧元)然后我有 400 美元(~1600 欧元)。
但是,我下面的代码仅“转换”第一个引用美元(300 美元,但不是 400 美元),returning - “我有 300 美元(~900 欧元),然后我有400 美元”。我不确定我做错了什么。如果您在我的代码中看到错误,请告诉我!提前致谢:)
phrase = "I had USD 300 and then I had USD 400"
currency = "USD EUR"
ratio = 4
if phrase and currency:
z = phrase.split()
for order,word in enumerate(z):
dictionary = {order : word}
for i in dictionary.values():
if i == currency.split()[0]:
firstplace = z.index(i)
if currency.split()[1] not in z[int(firstplace) + 2]:
convertednumber = (int(float((z[int(firstplace) + 1])))) * int(float(ratio))
z.insert(int(firstplace) + 2, f'(~{currency.split()[1]} {convertednumber})')
emptyphrase = " "
phrase = emptyphrase.join(z)
else:
pass
else:
pass
print(phrase)
P.s。我知道这不是一种特别有效的方法,但我只是想测试一下:)
这可行,但存在问题。 “400”末尾的标点符号。用作数字的一部分。在这里没关系,但这会造成一个尴尬的句子。但它可以给你基本的想法。
phrase = "I had USD 300 and then I had USD 400."
currency = "USD EUR"
ratio = 4
new = []
handle = False
for word in phrase.split():
new.append( word )
if word == currency.split()[0]:
handle = True
elif handle:
convertednumber = int(float((word))) * int(float(ratio))
new.append( f'(~{currency.split()[1]} {convertednumber})')
handle = False
print(' '.join(new))
所以,我正在尝试编写代码,允许您 1) 输入一个短语 2) 输入一个包含您要相互转换的货币的字符串(例如 USD EUR;EUR GBP) 3) 的汇率那两个。
如果你输入“我有 300 美元然后我有 400 美元”(1)、“美元欧元”(2) 和 4 (3),它应该 return“我有300 美元(~900 欧元)然后我有 400 美元(~1600 欧元)。
但是,我下面的代码仅“转换”第一个引用美元(300 美元,但不是 400 美元),returning - “我有 300 美元(~900 欧元),然后我有400 美元”。我不确定我做错了什么。如果您在我的代码中看到错误,请告诉我!提前致谢:)
phrase = "I had USD 300 and then I had USD 400"
currency = "USD EUR"
ratio = 4
if phrase and currency:
z = phrase.split()
for order,word in enumerate(z):
dictionary = {order : word}
for i in dictionary.values():
if i == currency.split()[0]:
firstplace = z.index(i)
if currency.split()[1] not in z[int(firstplace) + 2]:
convertednumber = (int(float((z[int(firstplace) + 1])))) * int(float(ratio))
z.insert(int(firstplace) + 2, f'(~{currency.split()[1]} {convertednumber})')
emptyphrase = " "
phrase = emptyphrase.join(z)
else:
pass
else:
pass
print(phrase)
P.s。我知道这不是一种特别有效的方法,但我只是想测试一下:)
这可行,但存在问题。 “400”末尾的标点符号。用作数字的一部分。在这里没关系,但这会造成一个尴尬的句子。但它可以给你基本的想法。
phrase = "I had USD 300 and then I had USD 400."
currency = "USD EUR"
ratio = 4
new = []
handle = False
for word in phrase.split():
new.append( word )
if word == currency.split()[0]:
handle = True
elif handle:
convertednumber = int(float((word))) * int(float(ratio))
new.append( f'(~{currency.split()[1]} {convertednumber})')
handle = False
print(' '.join(new))