#18838: [python] 解題想法


python_trainee (python_trainee)

學校 : 不指定學校
編號 : 100376
來源 : [118.160.119.85]
最後登入時間 :
2019-08-11 05:05:15
a020. 身分證檢驗 | From: [118.168.60.121] | 發表日期 : 2019-08-07 23:37

英文代號轉換成數字:

  1. 使用if寫26個條件式,容易寫錯、不容易debug
  2. 利用list把數字存進去,英文代號使用ASCII來計算是第幾個

 

乘法規則存成mul_list = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1]

等一下使用 迴圈做乘法累加 很方便

 

 

# 將英文代號傳入,將對應的數字傳出

def get_eng_match_value(c):

      …

      return number_value

 

# 利用迴圈做乘法累加

def calculate(id_list):

      …

      return total_sum

 

try:   

      # 讀到EOF停止

      # 將讀到字串的第一個英文代號傳入副程式,取得對應數字

      # 將數字拆成兩個部分,e.g. T -> 27 -> ‘2’, ‘7’

      # 將’2’, ‘7’與剩下的字串存成list,e.g. id_card = ['2', '7', '1', '1', '2', '6', '6', '3', '8', '3', '6']

      # 將此陣列丟到副程式做運算,得到最後加總值

      # 判斷是否被10整除,輸出”read” or “fake"

except EOFError:

      Pass

 

 

Thank you for watching.

Alex.

 
ZeroJudge Forum