ゼロ基礎入門学習Python|009講:できない分岐と循環3


クラスノート:
1.whileサイクル
 while     : 
 	   

2.forサイクル
for    in    :
	   

3.range()構文:range([start,]stop[,step=1])
  • このBIFには、中括弧で囲まれた2つのパラメータがオプションであることを示す3つのパラメータがあります.
  • step=1は、3番目のパラメータのデフォルト値が1
  • であることを示す.
  • rangeというBIFの役割はstartパラメータの値からstopパラメータの値までの数値シーケンスを生成することである.
     >>> list(range(5))
     [0, 1, 2, 3, 4]
     >>> list(range(1, 5))
     [1, 2, 3, 4]
     >>> for i in range(5):
     	print(i)
     0
     1
     2
     3
     4
     >>> for i in range(2, 9):
     	print(i)
     2
     3
     4
     5
     6
     7
     8
     >>> for i in range(1, 10, 2):
     	print(i)
     1
     3
     5
     7
     9
    

  • 4.2つの重要な文break:現在のループを終了し、ループから飛び出します.
     bingo = '      ' answer = input('             :')
     
     while True:
         if answer == bingo:
             break
         answer = input('  ,  ,     (          ):')
    
     print('  ,  ~') print('             ~')
    

    continue:この文は本輪のループを終了し、次のループを開始します.次のループを開始する前に、ループ条件をテストします.ループ条件がTrueの場合にのみ、次のループを開始します.そうでなければループを終了します.
    for i in range(10):
        if i % 2 != 0:
            print(i)
            continue
        i += 2
        print(i)
    

    テスト問題の答え:
    0.次のループで「I Love FishC」は何回印刷されますか?
    1.for i in range(0, 10, 2):
    2.    print('I Love FishC')
    

    5回参考:5回、0から、10まで、ステップ2です.1.次のループで「I Love FishC」は何回印刷されますか?
    1.for i in 5:
    2.    print('I Love FishC')
    

    間違いを報告して、参考を印刷しません:間違いを報告して、前回の授業の後の練習問題は私達がinが“メンバーの資格の演算子”であることに言及して、C言語のようにfor文法を使うのではありません.Pythonのforはスクリプト言語のforeachに似ています.
    2.breakとcontinueがサイクルで果たした役割を振り返ってみましょうか?break:この文の役割は現在の循環を終了し、循環体continueから飛び出します.この文は本輪の循環を終了し、次の循環を開始します.次の循環を開始する前に、循環条件をテストします.循環条件がTrueの条件の下でこそ、次の循環を開始します.そうでなければループを終了します.
    3.リストの理解について話してください.類似C言語の配列
    4.range(10)はどの数を生成しますか?0,1,2,3,4,5,6,7,8,9参照:range(0,10)が生成され、list(range(0,10))がリストに変換されるのは、[0,1,2,3,4,5,6,7,8,9]です.注意は10を含まないでください.
    5.目測以下のプログラムは何を印刷しますか?
    1.while True:
    2.    while True:
    3.        break
    4.        print(1)
    5.    print(2)
    6.    break
    7.print(3)
    

    2 3 breakはループから飛び出すしかないので、覚えておいてください.
    6.どのような状況で循環を永遠に真実にしなければならないのか.参考:while Ture:ループはゲーム実装にも使用されます.ゲームが実行されている限り、ユーザーの入力を常に受信する必要があるため、常にゲームの「オンライン」を確保するために使用されます.オペレーティングシステムも同じ理屈で、常に待機していて、オペレーティングシステムは永遠に本当のこのサイクルをメッセージサイクルと呼んでいます.また、多くの通信サーバのクライアント/サーバシステムも、このような原理によって動作する.だから永遠に「真」のために「死の循環」ですが、必ずしも悪いことではありません.それに、私たちはいつでもbreakで循環から飛び出すことができます.
    7.「コードの効率化を学ぶ」次のコードの効率性はどう思いますか?大幅に改善する方法はありますか(まだwhileを使用しています)?
    1.i = 0
    2.string = 'ILoveFishC.com'
    3.while i < len(string)):
    4.    print(i)
    5.    i += 1
    

    参考:このコードが「効率が低い」のは、ループごとにlen()関数を呼び出す必要があるためです.(私达はまだ関数の概念を学んでいません.甲鱼はここでゼロの基础の友达のイメージの解釈の下で:あなたがゲームをしてちょうどHIGHを打っている时のように、お母さんはあなたに塩を买いに行かせます...あなたは2つの选択があって、1回に1包みを买って、1日に5回买って、あるいは一度に5包みを买って帰って、お母さんは直接彼女にあげます.)
    1.i = 0
    2.string = 'ILoveFishC.com'
    3.length = len(string)
    4.while i < length:
    5.    print(i)
    6.    i += 1  
    

    手を動かす答え:
    0.ユーザーパスワードを検証するプログラムを設計し、ユーザーは3回しかエラーを入力する機会がないが、ユーザーが入力した内容に「*」が含まれている場合は計算しない.
    count = 3
    password = 'qiezi'
    
    while count:
        passwd = input('     :')
        if passwd == password:
            print('    ,    ...')
            break
        elif '*' in passwd:
            print('        “*” ,   ', count, '   ', end = ' ')
            continue
        else:
            print('      !   ', count - 1, '   ', end = ' ')
        count -= 1
    

    1.プログラムを作成して、100~999の間のすべての水仙の花の数を求めます.3桁が各数字の立方和に等しい場合、この数を水仙数と呼ぶ.例えば、153=1^3+5^3+3^3なので、153は水仙の数です.方法1:
    for i in range(100, 1000):
        b = i // 100
        s = (i - b * 100) // 10
        g = i % 10
        if i == b **3 + s ** 3 + g ** 3:
            print(i)
    

    方法2:
    for i in range(100, 1000):
        sum = 0
        temp = i
        while temp:
            sum = sum + (temp % 10) ** 3
            temp //= 10
        if sum == i:
            print(i)
    

    2.三色のボールの問題は赤、黄、青の3種類の色の求めがあって、その中の赤のボールは3つ、黄のボールは3つ、緑のボールは6つです.まずこの12個のボールを1つの箱に混ぜて、そこから8個のボールを任意に触って、プログラミングしてボールを触る各種の色の組み合わせを計算します.参照先:
    print('red\tyellow\tblue')
    for red in range(0, 4):
        for yellow in range(0, 4):
            for blue in range(2, 7):
                if red + yellow + blue == 8:
                    print(red, '\t', yellow, '\t', blue)
    

    注記:range(2,7)は発生[2,3,4,5,6]の5つの数で、グリーンボールは1つではありません.グリーンボールが1つであれば、赤球+黄球は7つが問題に合致する必要がありますが、赤球と黄球はそれぞれ3つしかないのでrange(2,7)です