這節課,將繼續修改四則運算器,改成讓用戶輸入計算結果,然后程序給出判斷結果是否正確。
上節課的作業
輸入一個分數,根據分數進行判斷,大于等于90分屏幕輸出best,大于等于80分屏幕輸出good,大于等于60分屏幕輸出pass,其他屏幕輸出fail
這是一個經典的if分支語句題目
正確的結果類似如下:
score=input("please input score:")
if score>=90 :
PRint "best"
elif score>=80 :
print "good"
elif score>=60 :
print "pass"
else :
print "fail"
運行結果如下:
增加注釋行
到目前為止,已經寫了不少程序文件了,add.py,subtract.py,cala.py,score.py
程序文件多了之后,會發現如何快速記起程序的內容和目的,會有點困難,特別是當別人來看你的代碼的時候
為了幫助我們自己和別人,我們需要給程序增加一些描述文字和說明,這就是注釋
注釋的格式是這樣的: #注釋內容
在行首如果是#開頭的表示這一行代碼是注釋,將不會被程序執行,即使#后面跟著的是代碼
我們將最早寫的add.py拿出來,當時刪掉了一行代碼,其實也可以用注釋來完成:
num1=input("num1:")
#print num1
num2=input("num2:")
num3=num1+num2
print num1,"+",num2,"=",num3
這樣第2行代碼就不會執行
我們打開score.py,在最前面增加說明:
這樣,每新做一個程序,就在程序最前面增加注釋說明這個程序的目的是什么,作者是誰,什么時候創建的,方便其他人查看和了解
再次執行程序,會發現提示錯誤如下:
這是因為增加了中文的原因,解決的辦法是指定文件的編碼方式:
在文件第一行增加如下代碼:
#coding=utf-8
再次執行代碼,發現正常了
四則運算測試器修改代碼
接下來,開始改造之前寫的四則運算器程序,改成讓用戶輸入計算結果,然后程序給出判斷結果是否正確。
首先,打開cala.py,另存為cala_test.py
然后在程序開始添加注釋說明:
#coding=utf-8
#四則運算測試器程序
#輸入2個數字,1個操作符,1個計算結果,判斷是否正確
#作者:學哥 時間:2016/12/8
很明顯,需要增加一個輸入,讓用戶輸入計算結果,然后判斷計算結果num3和輸入的結果是否一致,輸出結果
在print 這行之前,增加下列代碼:
result=input("your result:")
if num3==result :
print "right"
else :
print "error"
然后把原來的print這行注釋掉
執行結果如下:
大家在測試程序的時候,除了按照理想或者預期的數據進行輸入之外,還要輸入一些非預期的數據,這樣才能夠完整的測試代碼是否完美
比如上面的程序,如果在預期輸入數字的地方,輸入了一個字符a,或者輸入了帶引號的"a",或者在輸入操作符的地方輸入一個數字
看看會有什么結果,如果發現錯誤,看看應該如何修改,進行限制輸入,如果不知道的話,可以自己去網上搜索,學會自己尋找答案
因為這個并非我們課程的重點,這里就不講解了。
輸入數值改為程序生成隨機數
需要輸入數值和操作符太麻煩了,能不能讓程序自己生成數值和操作符,我們只要輸入結果,看看我們做對了沒有,那多好
那么,就來做100以內的加減乘除測試題目吧
首先,將上面的文件另存為cala_test_rand.py
其次,在注釋的4行下面,將前面3行輸入代碼都刪除掉
num1=input("num1")
Operate=input("your operate:")
num2=input("num2:")
然后在程序開始這個地方增加以下代碼:
import random
num1=random.randint(1,99)
num2=random.randint(1,99)
operateint=random.randint(1,4)
if operateint==1:
operate="+"
elif operateint==2:
operate="-"
elif operateint==3:
operate="*"
else:
operate="/"
print num1,operate,num2,"="
完整代碼如下:
結果如下:
注意測試的時候,除法是進行整除,小數位舍棄
代碼說明
import random 引入一個模塊random
random.randint(1,99) 生成一個1到99范圍之內的隨機整數
random.randint(1,4) 生成一個1到4范圍之內的隨機整數
然后根據1到4,將運算符設置為加減乘除
后續代碼不變
關于模塊和函數,后續課程會詳細說明,這里只要知道是什么就可以了
課后作業
1. 輸入數字1-7判斷是星期幾
2. 收集星座具體的日期范圍,考慮一下如何實現輸入一個月和日,輸出所屬星座
新聞熱點
疑難解答