首先,通知一個事情:經(jīng)過考慮,決定創(chuàng)建一個QQ群,方便交流學(xué)習(xí),比較方便加入,包括發(fā)布一些文件以及支持遠程協(xié)助等等,群號:603559164,歡迎大家加入。

這節(jié)課,將繼續(xù)修改四則運算器,改成讓用戶輸入計算結(jié)果,然后程序給出判斷結(jié)果是否正確。
上節(jié)課的作業(yè)
輸入一個分數(shù),根據(jù)分數(shù)進行判斷,大于等于90分屏幕輸出best,大于等于80分屏幕輸出good,大于等于60分屏幕輸出pass,其他屏幕輸出fail
這是一個經(jīng)典的if分支語句題目
正確的結(jié)果類似如下:
score=input("please input score:")
if score>=90 :
? ? print "best"
elif score>=80 :
? ? print "good"
elif score>=60 :
? ? print "pass"
else :
? ? print "fail"
運行結(jié)果如下:

增加注釋行
到目前為止,已經(jīng)寫了不少程序文件了,add.py,subtract.py,cala.py,score.py
程序文件多了之后,會發(fā)現(xiàn)如何快速記起程序的內(nèi)容和目的,會有點困難,特別是當別人來看你的代碼的時候
為了幫助我們自己和別人,我們需要給程序增加一些描述文字和說明,這就是注釋
注釋的格式是這樣的:? #注釋內(nèi)容
在行首如果是#開頭的表示這一行代碼是注釋,將不會被程序執(zhí)行,即使#后面跟著的是代碼
我們將最早寫的add.py拿出來,當時刪掉了一行代碼,其實也可以用注釋來完成:
num1=input("num1:")
#print num1
num2=input("num2:")
num3=num1+num2
print num1,"+",num2,"=",num3
這樣第2行代碼就不會執(zhí)行
我們打開score.py,在最前面增加說明:

這樣,每新做一個程序,就在程序最前面增加注釋說明這個程序的目的是什么,作者是誰,什么時候創(chuàng)建的,方便其他人查看和了解
再次執(zhí)行程序,會發(fā)現(xiàn)提示錯誤如下:

這是因為增加了中文的原因,解決的辦法是指定文件的編碼方式:
在文件第一行增加如下代碼:
#coding=utf-8

再次執(zhí)行代碼,發(fā)現(xiàn)正常了
四則運算測試器修改代碼
接下來,開始改造之前寫的四則運算器程序,改成讓用戶輸入計算結(jié)果,然后程序給出判斷結(jié)果是否正確。
首先,打開cala.py,另存為cala_test.py
然后在程序開始添加注釋說明:
#coding=utf-8
#四則運算測試器程序
#輸入2個數(shù)字,1個操作符,1個計算結(jié)果,判斷是否正確
#作者:學(xué)哥? 時間:2016/12/8

很明顯,需要增加一個輸入,讓用戶輸入計算結(jié)果,然后判斷計算結(jié)果num3和輸入的結(jié)果是否一致,輸出結(jié)果
在print 這行之前,增加下列代碼:
result=input("your result:")
if num3==result :
? ? print "right"
else :
? ? print "error"
然后把原來的print這行注釋掉

執(zhí)行結(jié)果如下:

大家在測試程序的時候,除了按照理想或者預(yù)期的數(shù)據(jù)進行輸入之外,還要輸入一些非預(yù)期的數(shù)據(jù),這樣才能夠完整的測試代碼是否完美
比如上面的程序,如果在預(yù)期輸入數(shù)字的地方,輸入了一個字符a,或者輸入了帶引號的"a",或者在輸入操作符的地方輸入一個數(shù)字
看看會有什么結(jié)果,如果發(fā)現(xiàn)錯誤,看看應(yīng)該如何修改,進行限制輸入,如果不知道的話,可以自己去網(wǎng)上搜索,學(xué)會自己尋找答案
因為這個并非我們課程的重點,這里就不講解了。
輸入數(shù)值改為程序生成隨機數(shù)
需要輸入數(shù)值和操作符太麻煩了,能不能讓程序自己生成數(shù)值和操作符,我們只要輸入結(jié)果,看看我們做對了沒有,那多好
那么,就來做100以內(nèi)的加減乘除測試題目吧
首先,將上面的文件另存為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,"="
完整代碼如下:

結(jié)果如下:

注意測試的時候,除法是進行整除,小數(shù)位舍棄
代碼說明
import random 引入一個模塊random
random.randint(1,99) 生成一個1到99范圍之內(nèi)的隨機整數(shù)
random.randint(1,4) 生成一個1到4范圍之內(nèi)的隨機整數(shù)
然后根據(jù)1到4,將運算符設(shè)置為加減乘除
后續(xù)代碼不變
關(guān)于模塊和函數(shù),后續(xù)課程會詳細說明,這里只要知道是什么就可以了
課后作業(yè)
1. 輸入數(shù)字1-7判斷是星期幾
2. 收集星座具體的日期范圍,考慮一下如何實現(xiàn)輸入一個月和日,輸出所屬星座
往期教程
0001 零基礎(chǔ)的小白能學(xué)會編程嗎?
0002 真的嗎,700元的電腦可以學(xué)會編程?
0003 十分鐘組裝一臺電腦開始編程
0004 如何編寫人生的第一行代碼helloworld
0005 鍵盤打字如何練成像黑客一樣的飛速
0006 編程入門python語言之加法計算器
0007 編程入門python語言之四則運算器
第一部分前7課小結(jié)和課程規(guī)劃說明及微信群主招募
因為教程是系列教程,前后關(guān)聯(lián)性非常強,請大家按照微信公眾號的發(fā)布時間先后次序進行閱讀。
微信公眾號里面直接輸入序號可以查看該序號課程,例如輸入0001可以查看【0001 零基礎(chǔ)的小白能學(xué)會編程嗎?】
作者簡介
學(xué)哥,二十年編程經(jīng)驗,歷任程序員,資深程序員,技術(shù)經(jīng)理,項目經(jīng)理,產(chǎn)品經(jīng)理,系統(tǒng)架構(gòu)師,IT總監(jiān)。愛好篆刻,閱讀,美食。
教程簡介
每天半小時零基礎(chǔ)學(xué)編程。大人可以學(xué),小孩也可以學(xué)。練打字,用軟件,寫文檔,做網(wǎng)站,做App,編游戲,數(shù)據(jù)庫,玩硬件,寫程序,3D打印,無人機,機器人。
html,css,javascript,python,php,java,swift,mysql,android,ios,raspberry pi,scratch.?