需求:判斷學生成績是否及格
遇到這樣的需求你如何去進行需求分析,如何將它轉化成代碼呢?
需求分析階段:
(一)看到這樣的一句話之後我們有幾個問題需求和產品經理確認的:
1.什麼樣的算及格?60-70分算及格
2.判斷的是什麼成績?數學,語文,英語
3.是否需要判斷不及格,良好,優秀?是的情況下,不及格,良好和優秀的標準是什麼?
不及格0-59,良好70-80,優秀80分以上
(二)瞭解完以上之後我們就可以寫代碼了嗎?答案是no。需要進一步的去拆分需求,如何拆分呢,我們把它轉化成界面原型的,這樣有利於幫助我們進一步的進行需求的分析
(1)看到這樣的原型圖,想到了什麼?是不是輸入框的規則是什麼?
每一個輸入框:
(1.1)是否允許為空。不能為空
(1.2)是否允許重複。允許重複
(1.3)是否允許為負數。允許負數
(1.4)是否允許小數。允許小數
(1.5)是否允許非數字:字母,字符,漢字。不允許非數字
(2)提交的時候包含哪些功能實現?
(2.1)計算和判斷
(3)計算如何實現?例如三個數為a,b,c 求和之後再求平均數,簡單吧,小學生都會 。
(a+b+c)/3
(4)判斷如何實現? 設計到判斷的為了更明確同樣的可以把它轉為流程圖:如下
以上分析完之後,如何用python代碼進行實現呢?如何把它轉化為計算機認識的語言
1.三個輸入框。
(1.1)程序中輸入用 :input()
(1.2)輸入完之後得有地方存放輸入的這個值怎麼做,起個名唄,a=input("輸入的時候加個提示")
(1.3)語文,數學,英語,三個數,那麼就寫三個:
num1=input("請輸入語文成績")
num2=input("請輸入數學成績")
num3=input("請輸入英語成績")
2.計算:avg=(num1+num2+num3)/3
3.判斷用什麼?
if 條件:
輸出結果
elif條件:
輸出結果
else:
輸出結果
(1)條件為上圖菱形的判定框中的表達式:0<=avg<60
(2)輸出用:print("提示")
(3)轉為計算機程序為如下
<code>if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("良好")
elif 81<=avg<=100:
print("優秀")/<code>
根據以上的分析內容,把代碼拷貝到Pycharm編輯器去執行一下看看
一、前提:安裝python,安裝pycharm編輯器
二、打開pycharm,file--new---python file,名字要見名知意增強可讀性
<code>num1=input("請輸入語文成績")
num2=input("請輸入數學成績")
num3=input("請輸入英語成績")
avg=(num1+num2+num3)/3
if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("良好")
elif 81<=avg<=100:
print("優秀")/<code>
三、右鍵run,運行後結果報錯,為什麼?
1.因為在python 中 input() 輸入的數據類型為字符串類型(str)
2.可以在輸入後加一個print(type(num1)),查看一下改變量的數據類型
3.怎麼辦呢?強制類型轉化為數字型 按照錯誤提示修改程序。#注意python中除了引號引起來的內容,其他的全部為英文,尤其是()要注意用英文的
<code>num1=int(input("請輸入語文成績"))
num2=int(input("請輸入數學成績"))
num3=int(input("請輸入英語成績"))
avg=(num1+num2+num3)/3
if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("良好")
elif 81<=avg<=100:
print("優秀")
/<code>
4.run 不會報錯了
四、輸入小數怎麼辦?以上的輸入是int型的,輸入5.99小數同樣會報錯。那麼我們把它變為小數float類型的
<code>num1=float(input("請輸入語文成績"))
num2=float(input("請輸入數學成績"))
num3=float(input("請輸入英語成績"))
avg=(num1+num2+num3)/3
if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("良好")
elif 81<=avg<=100:
print("優秀")/<code>
五、輸入非數字會報錯怎麼辦?
<code>while True:
try:
num1=float(input("輸入語文成績:"))#數據類型 str 字符串類 abc 中 ,int 整型 1.3 float
num2=float(input("輸入數學成績:"))
num3=float(input("輸入英語成績:"))
break #結束循環
except(ValueError):
print("您輸入的不是數字,請重新輸入")#1.界面上的提示是否清晰明確
if 0<=avg<60:
print("不及格")
elif 60<=avg<71:
print("及格")
elif 71<=avg<81:
print("優秀")
elif 81<=avg<=100:
print("良好")
else:
print("您輸入的數字不在範圍內")/<code>
通過以上的功能實現,我們熟悉了數據類型:int,float,str用在什麼時候;數據結構:while循環和分支。最後建議大家在學習Python是不要死學語法、數據結構、數據類型等基礎。結合要實現的功能來學習會感覺容易很多。
閱讀更多 桃子軟件測試 的文章