我想從數字轉換爲羅馬符號。我一直在考慮,看起來像這樣的列表:從數字轉換爲羅馬符號
conv = [[1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'],
[ 100, 'C'], [ 90, 'XC'], [ 50, 'L'], [ 40, 'XL'],
[ 10, 'X'], [ 9, 'IX'], [ 5, 'V'], [ 4, 'IV'],
[ 1, 'I']]
其中輸入應該在0到3999之間的整數,所以,我要建立一個函數,它接受一個參數(整數),並將其轉換。我解決這個問題有點困難。任何幫助,將不勝感激。這裏是我怎麼想的:
首先,我想這是我在變量中存儲一個整數的一些投入,所以我會使用類似
number = input("Enter a number between 0 and 3999: ")
conv = [[1000, 'M'], [900, 'CM'], [500, 'D'], [400, 'CD'],
[ 100, 'C'], [ 90, 'XC'], [ 50, 'L'], [ 40, 'XL'],
[ 10, 'X'], [ 9, 'IX'], [ 5, 'V'], [ 4, 'IV'],
[ 1, 'I']]
對於最後一步,我想用2個循環來解決實際的問題。這看起來像這樣:
for char in number:
i = 0;
while i < len(conv):
if int(char) == int(conv[i][0]):
print(conv[i][1])
i += 1;
else:
i += 1;
我知道這段代碼是錯誤的,但也許不是主意。首先,我想遍歷字符串編號中的每個「字符」(字符)。爲此,我還將定義一個變量'i',將其設置爲0.此變量'i'將用於while循環,只要i小於list conv的長度,就應執行該循環。然後我想比較整數char是否等於index [i] [0]處的conv的整數部分(0,因爲我總是想比較列表中的數字部分,因爲我想循環遍歷所有可能性。如果他們匹配,我想做點什麼,我不知道我想在這一步做什麼,但我想打印一些東西。在這一步,我想告訴程序構建羅馬符號,並增加我,否則只是增加我,我必須讓程序明白,12代表XII等。任何想法如何我可以解決這個問題。謝謝:)
我不明白它是如何預計乘以roman_digit這是一個字符串向數字roman_digit *(數量/ DENOM) –
在Python中,可以乘以一個數的字符串。結果是重複字符串。嘗試'print(「hello」* 5)'並觀察結果。 @HenryLynx –