#26248: [Python]range()+*unpacking+查表,沒有If, else


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
a053. Sagit's 計分程式 -- Sagit's 教學題 | From: [1.172.243.48] | 發表日期 : 2021-07-27 15:02

沒有用到if,else的寫法,提供不一樣的思路給大家參考:

這裡用到range(start, stop, step):

  • 00~10題,每題[間隔6分],=>range(0,60,6)    #(第十題沒算到)
  • 11~20題,每題[間隔2分],=>range(60,80,2)  #(初始值有算到第十題)
  • 21~40題,每題[間隔1分],=>range(80,100)   #(原本的間隔就是1了)
  • 其他都100,=>repeat(100, 41次),或是(100,)*41。41次=100題-40題+1(第40題)

然後就用python的「* unpacking」拆開參數、建表:table=(*range(..),*range(...),...,*itertools.repeat(100,41))

之後查表就可以了,print(table[int(idx)])

 

備註:

  • (100,)是一個tuple
  • (100)只是一個int
  • [100]是一個list

 

  • (100,)*41等同於(100,100,100,...,100)
  • [100]*41也是一樣的效果[100,100,...,100]
  • (100)*41就只是強調括號內的100,結果為4100
 
#26249: Re:[Python]range()+*unpacking+查表,沒有If, else


406490150@gms.tku.edu.tw (我是朱朱)

學校 : 國立交通大學
編號 : 139794
來源 : [140.113.236.122]
最後登入時間 :
2022-09-03 11:13:16
a053. Sagit's 計分程式 -- Sagit's 教學題 | From: [1.172.243.48] | 發表日期 : 2021-07-27 15:06

更正:

其他都100分,應該是  61次=100題-40題+1(第40題)

 

 
ZeroJudge Forum