Python-100以内の素数の和を計算する

1738 ワード

100以内のすべての素数の和を求めて出力する.‪‮‫‫‪8234;‪‪‪‪‪‪‪‪‪‪‪8234;8234;‪;8234;‪;;‪;;;;;8234;;;;8234;;;;;‪;;‪;;;‪;;;;8234;;;;;;8234;;;;;;;;82348234;;;;;;;;;;8234‪;;;;82ジルコニア.(素数は1より大きく、かつ1と自分でのみ割り除除除算できる整数を指す.‪‪8234;8238;‮‫‪8234;‪‪‪8234;‪‪‪8234;8235;‪‪‪‪;;‪;;;‪;;;;8234;;;;8234;;;;;;‪;;;‪;;;;8234;;;;;;8235;;;;8234;;;;;;;;;;;‪;;;;;;;;;\ジルコニアヒント:100以内の各数が素数かどうかを逐一判断し、合計を求めることができます.)
#  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("{0}    ".format(i));
            break;
    else:
        #print("{0}   ".format(i));
        ls.append(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の罠