ホームページ >バックエンド開発 >Python チュートリアル >Lao Qi から Python を学び、while を使ってループする
Python でもこの意味はありますが、異なる点は、「いつ...」という条件が範囲または時間間隔内で確立され、Python がこの時間間隔中に多くのことを実行できることです。それは次のようなシーンです:
年齢が 60 歳を超える場合:-------->年齢が 60 歳を超える場合
リタイア --------> 上記の条件を満たすアクションが実行されます
ドアを作成した場合、このドアが上記の条件を使用して制御され、開かれると想像してください。多くの人がこのドアの前を通り、年齢が 60 歳を超えていれば退職するとします (ドアが開き、人々が集まります)。外出できる)、次々とこのようなサイクルが続き、突然50歳の人が現れ、サイクルはここで停止します。つまり、この時点では条件を満たしていません。
これは while ループです。より本格的なプロセスを記述するには、以下の図を参照してください:
もう一度推測ゲームをプレイしてください
このチュートリアルには、読者と小さなゲームをするレッスンがあり、その際に私は 1 回か 2 回しか推測できなかったという問題に遭遇しました。プログラムは動作し続けないと思われます。
少し前、大学生の友人 (彼の名前はリー・ハン) が私にメールを送ってきて、彼が作ったゲームを見せてくれました。このゲームは、推測が当たるまで何度も数字を推測するものです。なんとも勉強好きな大学生です。
私は敬意を表して彼が書いたプログラムをここに記録します。ユニット生のリー・ハンさん、これが知的財産権を侵害していると思われる場合は、私に言ってください。すぐにコードを削除します。
ランダムにインポート
i=0
一方私は
「*************************************」を印刷
num = input('0から9までの任意の数字を入力してください:') #Liはpython3を使用しています
xnum = ランダム.randint(0,9)
x = 3 - i
if num == xnum:
「Print」は幸運です、そうですよね! '
休憩
エリフ番号 > xnum:
Print '' 'N ははは、正解は %Sn、まだチャンスはあります! '' %(xnum,x)
エリフ番号
あなたは間違っていたと思いますnhaha、正しい答えはあなたがまだ%sの可能性を持っているということです! '' %(xnum,x)
「*************************************」を印刷
i += 1
このプログラムを使用して分析してみましょう。まず、while i
bool(i
上記のコードに基づいて、変更できるかどうか見てみましょう?
ユーザー エクスペリエンスをより楽しくするために、入力整数の範囲を 1 ~ 100 まで拡張するとよいでしょう。
プログラムは num_input 変数を使用して入力コンテンツを受け取ります。ただし、これを読んで眠りたい人は注意してください。長年のプログラミング経験から得た教訓を共有したいと思います。ユーザーの入力はすべて信頼できません。この文には深い意味がありますが、ここではあまり説明しません。これは、その後のプログラミングのキャリアで経験する必要があります。この目的のために、ユーザー入力が要件を満たしているかどうかを確認する必要があります。ユーザーは 1 から 100 までの整数を入力する必要があるため、次のテストを実行する必要があります。
入力が整数かどうか
整数の場合は 1 ~ 100 の範囲です。
これを行うには、次のようにします:
Li Hang のプログラムをもう一度見てください。このプログラムはループ本体で乱数を生成するため、ユーザーが入力するたびに新しい乱数に直面することになります。この数字当てゲームは難しすぎます。プログラムが数値を生成し、推測が当たるまでは常にこの数値になることを願っています。したがって、乱数を生成する命令はループの前に移動する必要があります。
数値 = ランダム.randint(1,100)
True の場合: #ユーザーが使用できる回数に制限はありません
...
Li 氏のプログラムを観察すると、もう 1 つ明確にしておきたい点があります。それは、条件式では、両側で同じ種類のデータを使用するのが最善であるということです。 : num>xnum 形式の条件式で、一方はプログラムによって生成された int 型データ、もう一方は input 関数を通じて取得された str 型データです。場合によっては機能するのですが、なぜですか?理解できますか?すべて数字になったらOKです。しかし、これは良くありません。
したがって、このアイデアに従って、この数字推測プログラムを書き直します。
ランダムにインポート
数値 = ランダム.randint(1,100)
推測 = 0
True の場合:
num_input = raw_input("1 ~ 100 の整数を 1 つ入力してください:")
推測 +=1
num_input.isdigital() でない場合:
print "整数を入力してください。"
elif int(num_input)=100:
print "数字は 1 から 100 までです。"
それ以外:
数値==int(num_input)の場合:
print "OK、あなたは大丈夫です。たった %d だけですので、成功しました。"%guess
休憩
elif 番号>int(num_input):
print "あなたの数字はもっと少ないです。"
elif 番号
その他:
print 「何か悪いことがあるので、仕事を休みます」
上記は参考用であり、読者はさらに改良できる可能性があります。
中断して続行
break は上の例ですでに出てきていますが、その意味はこの場所でループを中断し、ループ本体から飛び出すことです。次の簡単な例は、より明白です:
a = 8
一方:
a%2==0 の場合:
休憩
それ以外:
print "%d は奇数です"%a
a = 0
print "%d は偶数です"%a
a=8 の場合、ループ本体で Break を実行し、ファンタジーから飛び出し、最後の print ステートメントを実行して結果を取得します。
a=9 の場合、else で print を実行する必要があります。a=0 の場合、ループは 1 回実行され、再度中断され、結果は次のようになります。
そして continue は、現在の位置 (つまり continue が配置されている位置) からループ本体の最終行の後ろにジャンプすることです (ループ本体の場合、最終行は実行されません)。 「どこにあるの?」の最初と最後を繋ぐような感じで。もちろん始まりました。
a = 9
一方:
a%2==0 の場合:
a -=1
continue #偶数の場合はループの先頭に戻ります
それ以外:
print "%d は奇数です"%a #奇数の場合は出力します
a -=1
実際、私はプログラミングでこれら 2 つをほとんど使用しません。私の頑固な考えは、ループの前に条件を完了するように努め、ループ内で飛び回らないようにすることです。可読性が低下するだけでなく、時々混乱することがあります。
これら 2 つの組み合わせは if...else に似ています。もちろん、else が出現すると、それは while ループから外れることを意味します。
カウント = 0
を数えながら
印刷枚数、「は 5 枚未満です」
カウント = カウント + 1
それ以外:
印刷枚数「5」以上です
実行結果: