阿萌又接到一個新的編程任務,要求用Python編寫一個計算自然數n階乘的程序,用於學生利用計算機來計算n的階乘。
阿萌梳理了一下編程要求,他認為程序需要實現下面這些功能:
程序啟動後,程序在Shell窗口輸出提示信息「請輸入一個自然數,輸入quit可退出程序:」,學生輸入一個自然數,程序計算自然數的階乘,並將計算結果輸出到Shell窗口。程序再次輸出「請輸入一個自然數:」,等待學生的下次輸入。
程序需要判斷學生輸入的是否是自然數,如果不是自然數,再判斷是否是quit,若是quit退出程序,否則程序輸出錯誤提示「輸入錯誤,請輸入一個自然數或者輸入quit退出程序」。
阿萌找出了程序的輸入與輸出:
程序的輸入是自然數n,是整數類型,輸入的來源是學生在程序運行過程中通過程序輸入。程序獲取用戶的輸入可以使用input函數,input函數返回的是字符串,如果需要輸入整數,可以使用int函數將字符串轉換為整數。
程序的輸出是自然數n階乘的結果,在程序中通過print函數來輸出自然數n階乘的結果。
阿萌根據上面的功能描述,繪製了程序流程圖:
在流程圖中,計算自然數的階乘步驟屬於子過程,後面會給出這個子過程的流程圖。
在流程圖中,當用戶輸入quit時程序退出。在其它情況下,程序要保持運行狀態,等待用戶的輸入。前面已經學習了如何讓程序一直保持運行狀態,可以使用while循環來保持程序的運行狀態。
阿萌準備使用while循環來保持程序的運行狀態,循環條件為True,循環體為計算自然數階乘的代碼,在循環體中需要判斷學生輸入的是否是quit,如果是quit,調用break語句退出循環,程序結束。