def change_currency(sentence, rate):
lines = sentence.splitlines()
words = []
for i in range(len(lines)):
words.append(lines[i].split())
true_wds = sum(words,[])
for j in range(len(true_wds)):
if j%4 ==3:
true_wds[j] = 'YEN'
elif j%4 ==2:
true_wds[j] = str(float(true_wds[j])*rate)
else:
pass
ans = ' '.join(true_wds)
return ans
menu = """Pineapple : 1.5 USD
Biscit : 1 USD
Cupcake : 12 USD
"""
usd = 1000.0 # 1usd = 1000.0yen
result = change_currency(menu, usd)
print(result)
在這種情況下,我的代碼結果是
Pineapple : 1500.0 YEN Biscit : 1000.0 YEN Cupcake : 12000.0 YEN
但是,我想像這樣改變我的結果
Pineapple : 1500.0 YEN
Biscit : 1000.0 YEN
Cupcake : 12000.0 YEN
我怎么解決這個問題?
uj5u.com熱心網友回復:
很簡單。只需在“日元”后添加一個新行字符 -
true_wds[j] = 'YEN\n'
輸出:
Pineapple : 1500.0 YEN
Biscit : 1000.0 YEN
Cupcake : 12000.0 YEN
uj5u.com熱心網友回復:
您通過展平串列使事情變得復雜,因為您將每個單詞分別附加到true_wds.
一次處理每一行,將結果放在 的單個元素中true_wds。然后用換行符而不是空格加入它。
def change_currency(sentence, rate):
lines = sentence.splitlines()
words = [line.split() for line in lines]
true_wds = []
for line in sentence.splitlines():
item, colon, price, currency = line.split()
true_wds.append(f"{item} : {float(price) * rate} YEN")
ans = '\n'.join(true_wds)
return ans
menu = """Pineapple : 1.5 USD
Biscit : 1 USD
Cupcake : 12 USD
"""
usd = 1000.0 # 1usd = 1000.0yen
result = change_currency(menu, usd)
print(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346098.html
標籤:Python
