#22434: PYTHON求解


kaihunggod@gmail.com (張凱閎)

學校 : 不指定學校
編號 : 128069
來源 : [123.195.0.228]
最後登入時間 :
2021-05-19 17:02:56
a013. 羅馬數字 -- NPSC 模擬試題 | From: [123.194.54.83] | 發表日期 : 2020-09-03 18:11

import sys
list1 = []
list2 = []
# 把輸入的羅馬數字數字轉換相加
con_l_number = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000,' ':0}#羅馬數字轉換
for a in sys.stdin:
    aa = a.split()
list1 = [con_l_number[c]for c in aa[0]]#輸入去配對字典裡的資料轉換
for i in range(len(list1)-1):
    if list1[i] < list1[i + 1]:
        list1[i] *= -1

list2 = [con_l_number[c]for c in aa[1]]#輸入去配對字典裡的資料轉換
for x in range(len(list2)-1):
    if list2[x] < list2[x + 1]:
        list2[x] *= -1

sum_num1 = sum(list1)
sum_num2 = sum(list2)
print(sum_num1 - sum_num2)
 
 
想請問為甚麼list1 = [con_l_number[c]for c in aa[0]]這句的FOR迴圈永遠都不會執行,他都沒進去fOR迴圈裡
分開打是因為題目會把兩個字串中間空白所以要相減,所以就分開儲存,然後把兩個字串相減,求解,請指教
 
#22438: Re:PYTHON求解


snakeneedy (蛇~Snake)

學校 : 國立高雄師範大學附屬高級中學
編號 : 7661
來源 : [114.40.8.251]
最後登入時間 :
2023-01-25 19:16:06
a013. 羅馬數字 -- NPSC 模擬試題 | From: [123.194.188.217] | 發表日期 : 2020-09-04 00:16

這個 for

for a in sys.stdin:

會一直吃 standard input ,直到 EOF (或其他 Exception) 才會離開 for

試著把底下的 list1 = ... 放到 for 裡吧,如:

for a in sys.stdin:
    aa = a.split()
    list1 = []
    # ...

 

 
ZeroJudge Forum