python題目及解答
阿新 • • 發佈:2019-01-04
- 數山峰
題目描述:小P出去爬山,爬山的過程中每隔10米他都會記錄當前點的海拔高度(以一個浮點數表示),這些值序列儲存在一個由浮點陣列成的列表h中。回到家中,小P想研究一下自己經過了幾個山峰,請你幫他計算一下,輸出結果。
例如:h=[0.9,1.2,1.22,1.1,1.6,0.99], 將這些高度順序連線,會發現有兩個山峰,故輸出一個2(序列兩端不算山峰)
h=[0.9,1.2,1.22,1.1,1.6,0.99]
print(len([i for i in range(1,len(h)-1) if h[i]>h[i+1] and h[i]>h[i-1]]))
#將符合題目要求的山峰存到一個列表,求列表的長度即山峰的個數
- 大寫金額
銀行在列印票據的時候,常常需要將阿拉伯數字表示的人民幣金額轉換為大寫表示,現在請你來完成這樣一個程式。
在中文大寫方式中,0到10以及100、1000、10000被依次表示為: 零 壹 貳 叄 肆 伍 陸 柒 捌 玖 拾 佰 仟 萬
以下的例子示範了阿拉伯數字到人民幣大寫的轉換規則:
1 壹圓
11 壹拾壹圓
111 壹佰壹拾壹圓
101 壹佰零壹圓
-1000 負壹仟圓
1234567 壹佰貳拾叄萬肆仟伍佰陸拾柒圓
現在給你一個整數a(|a|<100000000), 請你打印出人民幣大寫表示.
例如:a=1
則輸出:壹圓
a=-1234567890
M=['零','壹','貳','叄','肆','伍','陸' ,'柒','捌','玖']
N=['','圓','拾','佰','仟','萬','拾','佰','仟','億','拾']
O={'零仟':'零','零佰':'零','零拾':'零','零零零':'零','零零':'零','零萬':'萬','零圓':'圓','億萬':'億'}
#將不規則的零替換
r=('' if a>=0 else '負')
#處理負號
s=str(abs(a))
for i in range(0,len(s)):
r=r+M[int(s[i])]+N[len(s)-i]
#將數字轉換為大寫
for n in range(10):
for i in O:
r=r.replace( i,O[i])
#處理不符合規則的字元
print (r if a!=0 else '零圓')
#處理輸入為0的情況
- 格式化時間
給你一個時間t(t是一個字典,共有六個字串)key(year,month,day,hour,minute,second),每個值為數字組成的字串,
如t={‘year’:‘2018’,‘month’:‘9’,‘day’:‘30’,‘hour’:‘16’,‘minute’:‘45’,‘second’:‘2’}
請將其按照以下格式輸出, 格式:XXXX-XX-XX XX:XX:XX。如上例應該輸出: 2018-09-30 16:45:02。
t={'year':'2018','month':'9','day':'30','hour':'16','minute':'45','second':'2'}
print('{}-{:0>2}-{:0>2} {:0>2}:{:0>2}:{:0>2}'.format(t['year'], t['month'], t['day'], t['hour'], t['minute'], t['second']))