Python軟件開發之需求實現:數據結構、數據類型。自動化測試必會

需求:判斷學生成績是否及格

遇到這樣的需求你如何去進行需求分析,如何將它轉化成代碼呢?


需求分析階段:

(一)看到這樣的一句話之後我們有幾個問題需求和產品經理確認的:

1.什麼樣的算及格?60-70分算及格

2.判斷的是什麼成績?數學,語文,英語

3.是否需要判斷不及格,良好,優秀?是的情況下,不及格,良好和優秀的標準是什麼?

不及格0-59,良好70-80,優秀80分以上

(二)瞭解完以上之後我們就可以寫代碼了嗎?答案是no。需要進一步的去拆分需求,如何拆分呢,我們把它轉化成界面原型的,這樣有利於幫助我們進一步的進行需求的分析


Python軟件開發之需求實現:數據結構、數據類型。自動化測試必會

(1)看到這樣的原型圖,想到了什麼?是不是輸入框的規則是什麼?

每一個輸入框:

(1.1)是否允許為空。不能為空

(1.2)是否允許重複。允許重複

(1.3)是否允許為負數。允許負數

(1.4)是否允許小數。允許小數

(1.5)是否允許非數字:字母,字符,漢字。不允許非數字

(2)提交的時候包含哪些功能實現?

(2.1)計算和判斷

(3)計算如何實現?例如三個數為a,b,c 求和之後再求平均數,簡單吧,小學生都會 。

(a+b+c)/3

(4)判斷如何實現?

設計到判斷的為了更明確同樣的可以把它轉為流程圖:如下


Python軟件開發之需求實現:數據結構、數據類型。自動化測試必會

以上分析完之後,如何用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是不要死學語法、數據結構、數據類型等基礎。結合要實現的功能來學習會感覺容易很多。


分享到:


相關文章: