Python123——練習1:Python基本語法元素
例項1:溫度轉換
題目要求:
溫度的刻畫有兩個不同體系:攝氏度(Celsius)和華氏度(Fabrenheit)。請編寫程式將使用者輸入華氏度轉換為攝氏度,或將輸入的攝氏度轉換為華氏度。轉換演算法如下:(C表示攝氏度、F表示華氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 輸入輸出的攝氏度可採用大小寫字母C結尾,溫度可以是整數或小數,如:12.34C指攝氏度12.34度;
(2) 輸入輸出的華氏度可採用大小寫字母F結尾,溫度可以是整數或小數,如:87.65F指攝氏度87.65度;
(3) 輸出保留小數點後兩位,輸入格式錯誤時,輸出提示:輸入格式錯誤;
(4) 使用input()獲得測試用例輸入時,不要增加提示字串。
python程式碼實現:
#TempConvert.py
TempStr=input()
if TempStr[-1] in ['F','f']:
C=(eval(TempStr[0:-1])-32)/1.8
print("{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
F=1.8*eval(TempStr[0:-1])+32
print("{:.2f}F".format(F))
else:
print("輸入格式錯誤")
程式碼分析:
(1)在python程式碼中,縮排是嚴格規定的,它是語法的一部分,一般用4個空格或1個Tab鍵的長度;
(2)python程式碼的註釋:
1)單行註釋:#..............
2)多行註釋:'''.................
.................
.................'''
(3)命名規則:例如TempStr,命名由大小寫字母、數字、下劃線、漢字等字元組合而成。在命名時,python語言對大小寫時區分對待的,且首字元不能是數字,不能雨保留字相同。
(4)字串
字串序號的正向和反向序號排列如下,正向從左開始,反向從右開始:
反向遞減序號 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
字串 | 請 | 輸 | 入 | 帶 | 有 | 符 | 號 | 的 | 溫 | 度 | 值 | : |
正向遞增序號 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
1)字串索引:例如程式碼中TempStr[-1], 具體格式是:
<字串>[M]
M是序號,功能是返回字串中第M位的字元
2)(拓展)字串切片:格式如下:
<字串>[M:N]
返回字串中某一段字元子串。
例如:TempStr[0:-1] : 取出其中第0、.........、不到最後一個的字元子串
(5)列表型別
由0個或多個數據組成的有序序列,列表使用[]表示,採用逗號分隔各元素,在上述程式中出現:['F','f']、['C'、'c']均是列表型別。
(6)判斷元素是否在類表中
程式中的程式碼: if TempStr[-1] in ['F','f']:
C=(eval(TempStr[0:-1])-32)/1.8
判斷TempStr中的-1位置上的元素是否與列表中的某個元素相同。上述語句也是一種分支語句,若if中的條件是true,則執行冒號後的語句,否則跳過。
(7)函式
程式中: input()、eval()、print()
(8)print()函式的格式化
例如程式中: print("轉換後的溫度是{:.2f}C".format(C))
上述是print函式的格式化格式,其中 {} 表示槽,後續變數填充到槽中,
{:.2f} 表示將變數C填充到這個位置時去小數點後2位。
例項2:溫度轉換||
題目要求:
溫度的刻畫有兩個不同體系:攝氏度(Celsius)和華氏度(Fabrenheit)。請編寫程式將使用者輸入華氏度轉換為攝氏度,或將輸入的攝氏度轉換為華氏度。轉換演算法如下:(C表示攝氏度、F表示華氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 輸入輸出的攝氏度採用大寫字母C開頭,溫度可以是整數或小數,如:C12.34指攝氏度12.34度;
(2) 輸入輸出的華氏度採用大寫字母F開頭,溫度可以是整數或小數,如:F87.65指攝氏度87.65度;
(3) 不考慮異常輸入的問題,輸出保留小數點後兩位;
(4) 使用input()獲得測試用例輸入時,不要增加提示字串。
python程式碼如下:
TempStr=input()
if TempStr[0] in ['F','f']:
C=(eval(TempStr[1:])-32)/1.8
print("C{:.2f}".format(C))
elif TempStr[0] in ['C','c']:
F=1.8*eval(TempStr[1:])+32
print("F{:.2f}".format(F))
else:
print("輸入格式錯誤")
程式碼分析:這個例項變形,是將表示攝氏溫度和華氏溫度的大寫字母放到了開頭,因此需要改變字串索引和字串切片的位置,
字串索引改變:
TempStr[-1]————>TempStr[0]
提取開頭第一個字元,此處放的是F或C
字串切片改變:
再次重新說明下字串切片操作:
定義:切片操作(slice)可以從一個字串中獲取子字串(字串的一部分)。我們使用一對方括號[]、起始偏移量start、終止偏移量end 以及可選的步長step 來定義一個分片
格式: [start:end:step]
- [:] 提取從開頭(預設位置0)到結尾(預設位置-1)的整個字串;
- [start:] 從start 提取到結尾;
- [:end] 此處提取從開頭直到不包括end的前一個字元;
- [start:end] 從start 提取到不包括end的前一個字元;
- [start:end:step] 從start 提取到不包括end的前一個字元,每step 個字元提取一個。
以下是幾個特別的例子:
>>>number='ashdhnkknjjkokko'
#從-2位置開始到結尾對字串進行擷取
>>>number[-2:]
'ko'
#從開頭到結尾,步長為5
>>>number[::5]
'anjo'
#將字串倒轉(reserve),通常設定步長為負數:
>>>number[::-1]
'okkokjjnkknhdhsa'
故本題變形改成:
TempStr[0:-1]———————>TempStr[1:]
print格式化改變:
也就是將C或F放到字串的開頭:
print("C{:.2f}".format(C))
例項3:貨幣轉換|
題目要求:
人民幣和美元是世界上通用的兩種貨幣之一,寫一個程式進行貨幣間幣值轉換,其中:
人民幣和美元間匯率固定為:1美元 = 6.78人民幣。
程式可以接受人民幣或美元輸入,轉換為美元或人民幣輸出。人民幣採用RMB表示,美元USD表示,符號和數值之間沒有空格。
注意:
(1) 這是一個OJ題目,獲得輸入請使用input() ;
(2) 不提示輸出格式錯誤,結果小數點後保留兩位。
自己編寫的python程式碼實現:
MoneyStr=input()
if MoneyStr[:3] in ['RMB']:
USD=eval(MoneyStr[3:])/6.78
print("USD{:.2f}".format(USD))
elif MoneyStr[:3] in ['USD']:
RMB=eval(MoneyStr[3:])*6.78
print("RMB{:.2f}".format(RMB))
參考程式碼:
CurStr = input()
if CurStr[:3] == "RMB":
print("USD{:.2f}".format(eval(CurStr[3:])/6.78))
elif CurStr[:3] in ['USD']:
print("RMB{:.2f}".format(eval(CurStr[3:])*6.78))
測試題目
第3題應該選D
若涉及侵權,請聯絡,立即刪除!!!!!!!!!!!!!!!