輸入資料 是否為自然數的 判斷演算法


輸入資料 是否為自然數的 判斷演算法

在程式中常常要請使用者輸入資料, 但是往往資料輸入的不是我們要的格式, 要如何防止呢?

舉例來說:
我們需要使用者輸入一個自然數(0,1,2,3......也就是正整數), 以便判斷是否為質數?
若使用者輸入

  • 負數 -5
  • 有小數 2.5
  • 有英文字母 5A
  • 或其他非數字的文字

都會造成我們程式後續處理運算時會出現錯誤!!!
因此我們需要在使用者輸入資料時, 做判斷以便請使用者重新輸入或程式中止!!!


演算法

1.請使用者輸入自然數
2.判斷輸入的是否為數字?
不是, 顯示 "輸入錯誤", 回到步驟 1
是, 繼續下一步
3.後續處理運算片段


Python程式

#程式開始
input_error = True #設定輸入錯誤的旗標為True

while input_error:
    text = input('Please input the positive integer number: ')
    if text.isdigit():
        input_error = False #輸入正確時,設旗標為False
    else:
        print('input error!!') #輸入錯誤時,顯示'輸入錯誤'

#程式繼續下一階段
print('OK!!')

說明

  • 在判斷的演法算中, 習慣會設一個布林值的邏輯變數, 稱為旗標(flag),
    就像賽車時看到舉旗時就知道是剩最後一圈!!上面的Python程式, 我使用 input_error做為旗標.
  • 這裡用到一個Python的字串方法 .isdigit() 用來判斷輸入的資料是否為全部為數字?
    因為負數的負號, 小數的小數點, 都不是數字!! 所以全部會無法使得 .isdigit()為True
#演算法 #自然數 #資料判斷 #isdigit() #字串






留言討論