看了幾天Python
語法, 寫一個小作業(yè)垃沦。
看代碼
for divisor in range(101):
# range(x) 是 0到x-1 的list 數(shù)組
if divisor < 3:
# 1 和 2 這兩個數(shù)先打印出來, 下面的判斷直接從 3 開始
print(divisor)
else:
for dividend in range(2, divisor+1):
# 思路: 用我們取到的數(shù) 除以所有比他小的整數(shù)侈净, 如果可以整除 則排除這個數(shù)是素數(shù)的可能性
result = divisor%dividend
if result == 0:
# 可以整除的條件下 判斷除數(shù) 是不是 等于 被除數(shù),不等于則跳過
if dividend != divisor:
break
else:
#打印正確的結果
print(divisor)
先實現(xiàn)效果僧凤,我承認代碼寫得很丑畜侦。下一步 打算把它封裝成函數(shù)。
把上面的代碼塊 封裝成函數(shù)的寫法
代碼如下:
def printPrimeNumber(num:int):
# 有個疑問躯保, 不能像 c 語言一樣 在定義函數(shù)的時候就申明好參數(shù)的類型么 [經過嘗試 可以這樣實現(xiàn)]
# 比如 函數(shù)寫作 def printPrimeNumber(num:int) 類似這樣的寫法旋膳, 這樣我們在調用函數(shù)的時候就知道傳申明數(shù)據(jù)類型進來,豈不是很方便途事!
# 這里進行 參數(shù)類型判斷 是不是 int 類型验懊, 如果傳入了錯誤的數(shù)據(jù)類型 拋出錯誤
if not isinstance(num,(int)):
# 拋出錯誤 信息, 這里的錯誤信息可以自定義尸变!
raise TypeError("輸入數(shù)據(jù)類型錯誤:必須輸入 int 類型")
for divisor in range(num + 1):
# range(x) 是 0到x-1 的list 數(shù)組
if divisor < 3:
# 1 和 2 這兩個數(shù)先打印出來义图, 下面的判斷直接從 3 開始
print(divisor)
else:
for dividend in range(2, divisor + 1):
# 思路: 用我們取到的數(shù) 除以所有比他小的整數(shù), 如果可以整除 則排除這個數(shù)是素數(shù)的可能性
result = divisor % dividend
if result == 0:
# 可以整除的條件下 判斷除數(shù) 是不是 等于 被除數(shù)召烂,不等于則跳過
if dividend != divisor:
break
else:
# 打印正確的結果
print(divisor)
printPrimeNumber(100)
2017-05-25 從新修改
def printPrimeNumber(num:int):
#輸入類型判斷
if not isinstance(num,int):
raise TypeError("輸入類型錯誤")
result = []
for divisor in range(2,num+1):
for dividend in range(2,divisor+1):
if divisor%dividend == 0:
if dividend != divisor:
break
else:
result.append(divisor)
return result
print(printPrimeNumber(100))
#printPrimeNumber(100)