Python:程序練習題(二)
2.1溫度轉換程序。
代碼如下:
t=input("請輸入帶符號的溫度值(如:32C):") if t[-1] in ["C","c"]: f=1.8*float(t[0:-1])+32
print("轉換后的溫度為:%.0fF"%f) elif t[-1] in ["F","f"]: c=(float(t[0:-1])-32)/1.8
print("轉換后的溫度為:%.0fC"%c) else: print("輸入錯誤!")
知識點整理:
1.t[-1]表示取輸入值的倒數第一個元素,此處是取最后一個字符(C/c/F/f)。
2.t[0:-1]表示第一個元素到倒數第二個元素的切片,簡單的說,就是表示除最后一個字符以外的字符串。
3.%.0f表示取整,%f指輸出變量f。
運行結果:
上面可以看到,只輸入數字會顯示錯誤,而只輸入符號會怎么樣呢?讓我們試着輸入一個符號,結果顯示如下。
出錯的原因是無法將字符型變量轉換為浮點型float,因此無法進行計算。
現修改實例2.1,采用eval(input(<提示內容>))替換現有輸入部分,並使輸出的溫度值為整數。
代碼如下:
t = eval(input('請輸入溫度值(無單位):')) d = input('請輸入單位:') if d in ['f', 'F']: c = (t - 32)/1.8
print('轉換后的溫度為:{:.0f}C'.format(c)) elif d in ['c', 'C']: f = 1.8*t + 32
print('轉換后的溫度為:{:.0f}F'.format(f)) else: print('輸入錯誤!')
運行結果:
2.2匯率兌換程序。按照溫度轉換程序的設計思路,按照1美元=6人民幣匯率編寫一個美元和人民幣的雙向兌換程序。
代碼如下:
t=input("請輸入帶單位的金錢數(如30¥):") if t[-1] in ["¥"]: m=eval(t[:-1])/6
print("兌換后為:{:.2f}$".format(m)) elif t[-1] in ["$"]: r=6*eval(t[:-1]) print("兌換后為:{:.2f}¥".format(r)) else: print("輸入錯誤!")
知識點整理:
1.eval(<字符串>)函數能夠以Python表達式的方式解析並執行字符串,並將返回結果輸出。
2.Python語言中,字符串通過format()方法進行格式化處理。
format方法的基本使用格式如下:
<字符串>.format(<逗號分隔的參數>)
print("{}".format(m)),其中{}輸出的是m的值。
運行結果:
4.4猜數游戲。
代碼如下:
import random w=0#定義w並初始化
p=random.randint(0,100) N=0 while w!=p: N+=1
#這句不能單獨拿出while循環外,否則會無限循環
w=int(input('請輸入一個0-100之間的整數:')) if w>p: print('遺憾,太大了!') elif w<p: print('遺憾,太小了!') else: print('預測'+str(N)+'次,你猜中了!') break
知識點整理:
1.random庫采用梅森旋轉算法生成偽隨機數序列,提供了不同類型的隨機數函數,所有函數都是基於最基本的random.random()函數擴展實現。
2.randint(a,b)是random庫的常用函數之一,用於生成一個[a,b]之間的整數。
3.str(N)是將N的數據類型轉換為String類型,因為python拼接字符串比較特殊,無法自動轉換數據類型。
4.break用來跳出最內層for或while循環,脫離該循環后程序從循環代碼后繼續執行。
運行結果: