私は、終了するまでループするローマ数字変換器で作業していました。最初の反復では動作します。変数は後で空白になり、割り当てられた場所と関係がありますか?変数は途中のどこかの値を失う
コード:
num_array = zip((1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1),
('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'))
def int_to_roman(i):
result = []
for integer, numeral in num_array:
count = int(i/integer)
result.append(numeral * count)
i -= integer * count
return ''.join(result)
def roman_to_int(n):
result = 0
i = result
for integer, numeral in num_array:
while n[i:i + len(numeral)] == numeral:
result += integer
i += len(numeral)
return result
x = ""
while x != "quit":
x = ""
x = input("enter number to be converted or quit to stop ")
if x == "quit":
break
else:
if x.isdigit():
x = int(x)
print(x, 'is',(int_to_roman(x)))
print(' ')
else:
if x.isalpha():
print(x,'is',(roman_to_int(x)))
print(' ')
出力:
enter number to be converted or quit to stop C
C is 100
enter number to be converted or quit to stop C
C is 0
enter number to be converted or quit to stop