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

 

若涉及侵權,請聯繫,立即刪除!!!!!!!!!!!!!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章