Pythonを学ぶためのゼロファンデーションから始める(8)-素晴らしいブランチとループ3

whileループステートメント

文法

while条件:
ループ本体

無限ループ

終了しないループ、無限ループは多くのCPU時間を消費し、プログラムをそこでスタックさせますが、一部のプログラミングでは、無限ループはサーバーやゲーム開発などの重要な機能です。

Forループ

Pythonのforループは、イテレータの次のメソッドを自動的に呼び出すことができ、stopinteraction例外を自動的にキャッチして、ループを終了します。

文法

式内のターゲットの場合:#targetは各反復の変数であり、式はリストまたはタプルループ
本体です
ここに画像の説明を挿入
ここに画像の説明を挿入

range()関数

range()はBIF関数であり、指定された整数の数列(反復可能なオブジェクト)を生成できます。これは、forループの小さなパートナーです。

文法

  • range([start、] stop [、step = 1])
  • このBIFには3つのパラメーターがあり、角括弧で囲まれた2つは、これら2つのパラメーターがオプションであることを示しますが、パラメーターは整数でなければなりません。
  • step = 1は、3番目のパラメーターのデフォルト値が1であることを意味します
  • range()BIFの機能は、開始パラメーターの値から停止パラメーターの値までの一連の数値を生成することです。

1つのパラメータrange()

ここに画像の説明を挿入
リスト()反復可能オブジェクトをリストの形式で表示
ここに画像の説明を挿入
することによって生成された数列には、開始値のみが含まれ、終了値
range()とforループの混乱は含まれません
ここに画像の説明を挿入

2つのパラメータrange()

ここに画像の説明を挿入

3つのパラメーターを持つRange()

ここに画像の説明を挿入

breakステートメント

効果

現在のループを終了し、ループ本体から飛び出します

right = 'pdd好帅哦'
answer = input('请输入对pdd的描述:')
while 1:
    if answer == right:
        break
    answer = input('打错了哦,要输入正确才可以退出游戏哦:')
print('是的呢,帅是他的第一特征哦')
print('退下吧')

ここに画像の説明を挿入

ステートメントを続ける

特徴

現在のサイクルを終了し、次のサイクルを開始します。次のサイクルを開始する前に、サイクル条件が最初にテストされることに注意してください。サイクル条件がTrueの場合にのみ、次のサイクルが開始されます。それ以外の場合は、サイクルを終了します。

for i in range(10):
    if i % 2 != 0:
        print(i)
        continue#如果i是奇数就不执行下面的语句了,再次从for循环开始
    i += 2
    print(i)#所以最后打印的结果是:0到9所有奇数,和偶数加2

ここに画像の説明を挿入

仕事

  1. 次のループは「ILoveFishC」を何回出力しますか?
for i in range(0, 10, 2):
    print('I Love FishC')

私は5を持っているので5回
ここに画像の説明を挿入

  1. 次のループは「ILoveFishC」を何回出力しますか?
for i in 5:
    print('I Love FishC')

エラーを報告します

  1. ブレークの役割を思い出して、ループを続けますか?
    ブレーク:現在のループを終了し、ループ本体からジャンプします
    続行:このループのラウンドからジャンプして次のループのラウンドを開始します

  2. リストについてのあなたの理解について話してください。
    リストは、反復オブジェクトをリストの形式で1つずつ表示することです。

  3. range(10)はどのような数値を生成しますか?
    0、1、2、3、4、5、6、7、8、9

  4. 次のプログラムは視覚的に何を印刷しますか?

while True:
    while True:
        break
        print(1)
    print(2)
    break
print(3)

印刷2と3 ブレークはループから飛び出すことしかできません
6.どのような状況で、ループを常に真にする必要がありますか?
while True:
ループ本体は
ゲームの実装にも使用されます。これは、ゲームが実行されている限り、常にユーザー入力を受け取る必要があるため、Always Trueを使用して、ゲームが「オンライン」であることを確認します。オペレーティングシステムについても同じことが言えます。常にスタンバイ状態であり、オペレーティングシステムは常に真です。このサイクルはメッセージサイクルと呼ばれます。さらに、通信サーバーの多くのクライアント/サーバーシステムもこの原則に従って機能します。
7. [コード効率を改善する方法を学ぶ]次のコード効率についてどう思いますか?それを大幅に改善する方法はありますか(まだwhileを使用しています)?

i = 0
string = 'ILoveFishC.com'
while i < len(string):
    print(i)
    i += 1

このコードが「非効率的」である理由は、len()関数がループするたびに1回呼び出す必要があるためです。改善後:

i = 0
string = 'ILoveFishC.com'
length = len(string)
while i < length:
    print(i)
    i += 1  

9.ユーザーパスワードを確認するプログラムを設計します。ユーザーが間違いを犯す可能性は3回だけですが、ユーザー入力に「*」が含まれている場合はカウントされません。(まあ!私は完璧なコードを書いていませんでした、カメからそれをコピーしてください)

プログラムのデモンストレーションを図に示します。
ここに画像の説明を挿入

count = 3
password = 'FishC.com'

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は水仙の数です。
    私のコード

for i in range(100,1000):
    a = int(i / 100)
    b = int((i - a * 100) / 10)
    c = i -(a * 100 + b * 10)
    if i == a ** 3 + b ** 3 + c ** 3:
        print(i)

ここに画像の説明を挿入
リトルタートルコード:

for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
        sum = sum + (temp%10) ** 3
        temp //= 10         # 注意这里要使用地板除哦~
    if sum == i:
        print(i)
  1. 3色ボールの問題

赤、黄、青の3色があり、赤球3個、黄球3個、緑球6個があります。まず、12個のボールを箱に入れて混ぜ、そこから8個のボールを引き出し、プログラムしてボールのさまざまな色の組み合わせを計算します。

for green in range(1,7):
    for red in range(0,4):
        for yellow in range(0,4):
            num = green + red + yellow
            if num == 8:
                print(green,red,yellow)

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_44520665/article/details/112729151