#找出100內所有素數
ls = ;
for i in range(100):
if i < 2:
continue;
#難點:
#1.range(2,2) 返回空值,直接跳過迴圈,未執行break,else語句會被執行
#2.for.j迴圈執行完畢後,如果未找到滿足i%j==0的數值,證明其是素數,break不會被執行,else會被執行;如果找到i%j==0的數值,證明其不是素數,break會被執行,else則不會被執行;
for j in range(2, i):
if i%j == 0:
#print("不是素數".format(i));
break;
else:
#print("是素數".format(i));
print(ls);
#求和s = 0;
for k in ls:
s += k;
print(s);
#執行結果
#[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
#1060
知識點:
1. 迴圈高階用法:迴圈與else
當迴圈沒有被break語句退出時,執行else語句塊;else語句塊作為"正常"完成迴圈的獎勵;這裡else的用法與異常處理中else用法相似;
for c in "python":
if c == "t":
continue;
print(c, end="");
else:
print("正常退出");
#執行結果
#pyhon正常退出
for c in "python":
if c == "t":
break;
print(c, end="");
else:
print("正常退出");
#執行結果
#py
2. range(n, n)返回空值
>>> list(range(2,2));
>>> list(range(1,1));
3. 為什麼迴圈中range(2,2)不報錯?
range(2, 2)返回乙個空的迭代器,for迴圈作用於空的迭代器上一次也不會執行,而是直接結束。空迭代器是合法的,不會報錯。
4. python中for迴圈搭配else的陷阱
python100以內孿生素數 孿生素數
問題描述 若兩個素數之差為2,則這兩個素數就是孿生素數。編寫程式找出1 100之間的所有孿生素數。我的 import math def prime n count 0 for i in range 2,int math.sqrt n 1 if n i 0 count 1 i 1 if count 1...
python 求100以內素數 質數和
import math def is prime n 簡化問題,先利用函式判斷是否為質數 if n 1 是賦值,才是判斷,切記切記 return false for i in range 2,int math.sqrt n 1 質數判斷條件,注意 1 if n i 0 return false re...
python(2)輸出100以內的素數
方法 一 100以內素數 import math 如同c 中的 include defprime n 定義帶乙個引數n的函式 number 定義空陣列用來記錄位置上的數是素數true,不是false prime number 定義空陣列用來儲存素數 for i in range 0,n,1 遍歷0到...