Python学習07:whileループ文の使い方


筆者:風起怨江南出典:https://blog.csdn.net/JackMengJin筆者のオリジナル、文章は転載を歓迎して、もし好きならば賛+関心を頼んで、支持に感謝します!
最近の仕事と勉强の原因は、「Python学习シリーズ」の更新とその更新が遅いことです.
 
 
目次
1.forサイクルとwhileサイクルの違い
2.whileサイクルの構造
3.割込みサイクル
4.whileサイクル実戦
whileループ文の使い方
前回はforループ文の紹介と実戦訓練を主に研究し、whileループ文の説明を主にした.
1.forサイクルとwhileサイクルの違い
まずforサイクルとwhileサイクルの簡単な例を通じて、2つのサイクルの違いを直感的に感じます.
#for  
for number in range(0,7):
    print('Number is:',number)
Number is: 0
Number is: 1
Number is: 2
Number is: 3
Number is: 4
Number is: 5
Number is: 6
#while  
count = 0
while (count < 7):
    print("The count is:",count)
    count = count + 1
print('over')
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
over

同じサイクル数0~6ですが、明らかに2つのサイクルの違いが見えます.
例1におけるforループは、1~6の範囲内を遍歴してループ印刷し、全て実行(印刷)してから終了する.
一方、例2のwhileサイクルでは、whileサイクル条件を満たさないまでcount値がサイクルごとに1を加算し、すなわちcountが7に等しい場合、count<7の結果がfalseとなり、このときwhileサイクルを飛び出して終了する.
まとめ:forサイクルはシーケンスが尽きたときに停止し,whileサイクルはサイクル条件が成立しないときに停止する.
whileループ、式は論理式であり、式が偽になるまでTrueまたはFalseを返さなければ終了しません.
はっきり言って、whileサイクル条件がずっと成立していれば、ずっとサイクルを実行します!
デッドサイクル:
#while  
number = 10
while number > 0:
    print('     :', number)
print("    ")
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 10
     : 

2.whileサイクルの構造
while     :
        

whileループ実行文は、単一の文または文ブロックであってもよい.
判定条件は、ゼロ以外の値、またはnull以外の値がTrueである任意の式であってもよい.
判定条件がFalseの場合,ループは終了する.
#while     
number = 0
while number < 7:
    number += 1
    print(number)
print('    ')

上の簡単な例からwhileサイクルの構造が明らかになります.
1.変数を宣言し、0を割り当てます.
2.while+判断条件、ここの判断条件私は論理演算子を使っています
3.条件を判断した後にコロンをつける:終了とする;
4.実行文のnumber累計増加+1;
5.変数numberの値を印刷する.
6.結果がTrueであれば、whileサイクルを繰り返し、numberが7未満、7未満であるか否かを判断してからサイクルを継続する.
7.number累計が7に増加するまで、このとき<7の条件を満たさず、ループから飛び出す.
8.ループ終了の印刷を実行します.
 
3.割込みサイクル
通常、条件が偽であるか、シーケンス内のすべての要素が使用されるまで、ループはコードブロックを継続的に実行します.では、ループを中断して新しい反復(次のコードブロック実行プロセスに進む)を開始するか、ループを直接終了しますか?
ここでは、
break
breakの中国語は、中断、中断、休憩などの意味です.ループを終了(ジャンプ)する場合はbreakを使用します.
#while  break  
count = 0
while (count < 7):
    print("The count is:",count)
    count = count + 1
    #  count   3 ,    
    if count > 3:
        break
print('over')
The count is: 0
The count is: 1
The count is: 2
The count is: 3
over

countが3にループするとifが文からbreakを実行しwhileループから飛び出したことがわかる.
#for  break  
for number in range(0,7):
    print('Number is:',number)
    # nuemeber  3       
    if number == 3:
        break
Number is: 0
Number is: 1
Number is: 2
Number is: 3

continue
中国語では、このループをスキップするために継続することを意味します.
例:文字列「Python」を印刷し、文字がhの場合、このループをスキップします.
#while  continue  
for letter in 'Python':  
    if letter == 'h':
        continue
    print('     :', letter)
     : P
     : y
     : t
     : o
     : n

上記の例ではcontinueの使い方が明らかになり、さらに例を挙げてもっとはっきりと使い方を見ることができます.
#while  
number = 10 
while number > 0:
    number = number - 1
    if number == 5:
        continue
    print('      :', number)
print("    ")
      : 9
      : 8
      : 7
      : 6
      : 4
      : 3
      : 2
      : 1
      : 0
    

まとめ:continue文は今回のループから飛び出し、breakはループ全体から飛び出します.
 
4.whileサイクル実戦
どんなに多くの理論を話しても、実際に操作したほうがいいので、いくつかの循環実戦を説明します.
  • 企業が支給するボーナスは利益によって引き上げられ、利益(I)が10万元以下である場合、ボーナスは10%引き上げることができる.利益が10万元以上20万元未満の場合、10万元未満の部分は10%で、10万元以上の部分は7.5%に引き上げることができる.20万元から40万元の間で、20万元を超える部分は5%に引き上げることができる.40万元から60万元の間で、40万元を超える部分は3%に引き上げることができる.60万元から100万元の間で、60万元を超える部分は1.5%に引き上げることができる.100万元を超える場合、100万元を超える部分は1%で引き上げられます.与えられた利益Iを計算し、ボーナスの総数を支払う.
  • #       
    #      
    money = [1000000,600000,400000,200000,100000,0]
    #        ,         
    percent = [0.01,0.015,0.03,0.05,0.075,0.1]
    while True:
        #      
        i = input('     (    q):')
        if i == 'q':
            #    
            exit(0)
            #      ,      ,      
            if not i.isdigit():
                continue
        #          ,           
        reward = []
        print('   :',end='')
        I = int(i)
        for x in range(0,6):
            if I > money[x]:
                #                 ,
                reward.append((I - money[x]) * percent[x])
                I = money[x]
            #      ,       
            reward.reverse()
            #      ,    
        if (len(reward)) == 1:
            print(reward[0])
        else:
            #         ,   
            print('+ '.join([str(num) for num in reward]),'=',sum(reward))
    

    実行結果:
         (    q):10000000
       :10000.0+ 10000.0+ 6000.0+ 90000.0+ 6000.0+ 7500.0 = 129500.0
         (    q):90000
       :9000.0
         (    q):1234546
       :10000.0+ 10000.0+ 6000.0+ 2345.46+ 6000.0+ 7500.0 = 41845.46
         (    q):43
       :4.3
         (    q):1
       :0.1
         (    q):2134557
       :10000.0+ 10000.0+ 6000.0+ 11345.57+ 6000.0+ 7500.0 = 50845.57
         (    q):q
    
    Process finished with exit code 0
    

    さらにwhile、forサイクルの組み合わせの使い方は、後続の学習例で詳しく説明されますが、「Python学習」シリーズの更新に引き続き注目し、「いいね」をクリックしてフォローしてください.
     
    以上は《Python学习07讲》のすべての内容で、もっとpython学习は引き続き私のブログに注目してください--风が吹いて江南を恨んで(ドアを転送します)、不定期に更新して、オリジナルは容易ではありませんて、もし好きならば称賛して関心を持って、みんなの支持に感谢します!
    もっと无料の学习の资料を获得して微信の公众号を追加してください--风は江南を恨んで、みんなの関心と支持に感謝します!