Lao Qi から Python を学び、while を使ってループする

WBOY
リリース: 2016-06-16 08:41:28
オリジナル
1297 人が閲覧しました

Python でもこの意味はありますが、異なる点は、「いつ...」という条件が範囲または時間間隔内で確立され、Python がこの時間間隔中に多くのことを実行できることです。それは次のようなシーンです:

年齢が 60 歳を超える場合:-------->年齢が 60 歳を超える場合
リタイア --------> 上記の条件を満たすアクションが実行されます
ドアを作成した場合、このドアが上記の条件を使用して制御され、開かれると想像してください。多くの人がこのドアの前を通り、年齢が 60 歳を超えていれば退職するとします (ドアが開き、人々が集まります)。外出できる)、次々とこのようなサイクルが続き、突然50歳の人が現れ、サイクルはここで停止します。つまり、この時点では条件を満たしていません。

これは while ループです。より本格的なプロセスを記述するには、以下の図を参照してください:

もう一度推測ゲームをプレイしてください

このチュートリアルには、読者と小さなゲームをするレッスンがあり、その際に私は 1 回か 2 回しか推測できなかったという問題に遭遇しました。プログラムは動作し続けないと思われます。

少し前、大学生の友人 (彼の名前はリー・ハン) が私にメールを送ってきて、彼が作ったゲームを見せてくれました。このゲームは、推測が当たるまで何度も数字を推測するものです。なんとも勉強好きな大学生です。

私は敬意を表して彼が書いたプログラムをここに記録します。ユニット生のリー・ハンさん、これが知的財産権を侵害していると思われる場合は、私に言ってください。すぐにコードを削除します。

コードをコピー コードは次のとおりです:

#!/usr/bin/env python
#coding:UTF-8

ランダムにインポート

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 = raw_input("1~100の整数を1つ入力してください:") #入力命令はLiとは異なるpython2.7を使用しています

プログラムは num_input 変数を使用して入力コンテンツを受け取ります。ただし、これを読んで眠りたい人は注意してください。長年のプログラミング経験から得た教訓を共有したいと思います。ユーザーの入力はすべて信頼できません。この文には深い意味がありますが、ここではあまり説明しません。これは、その後のプログラミングのキャリアで経験する必要があります。この目的のために、ユーザー入力が要件を満たしているかどうかを確認する必要があります。ユーザーは 1 から 100 までの整数を入力する必要があるため、次のテストを実行する必要があります。

入力が整数かどうか

整数の場合は 1 ~ 100 の範囲です。
これを行うには、次のようにします:

コードをコピー コードは次のとおりです:

num_input.isdigital() でない場合: #str.isdigital() は、文字列が純粋に数字で構成されているかどうかを判断するために使用されます
「整数を入力してください。」を印刷します
elif int(num_input)=100:
「数字は 1 から 100 までです。」を印刷します。
それ以外:
ここで pass を使用します。これは、上記の要件が満たされている場合、一時的に省略することを意味します。ここのステートメントは実行される必要があります

Li Hang のプログラムをもう一度見てください。このプログラムはループ本体で乱数を生成するため、ユーザーが入力するたびに新しい乱数に直面することになります。この数字当てゲームは難しすぎます。プログラムが数値を生成し、推測が当たるまでは常にこの数値になることを願っています。したがって、乱数を生成する命令はループの前に移動する必要があります。

コードをコピー コードは次のとおりです:

ランダムにインポート

数値 = ランダム.randint(1,100)

True の場合: #ユーザーが使用できる回数に制限はありません
...

Li 氏のプログラムを観察すると、もう 1 つ明確にしておきたい点があります。それは、条件式では、両側で同じ種類のデータを使用するのが最善であるということです。 : num>xnum 形式の条件式で、一方はプログラムによって生成された int 型データ、もう一方は input 関数を通じて取得された str 型データです。場合によっては機能するのですが、なぜですか?理解できますか?すべて数字になったらOKです。しかし、これは良くありません。

したがって、このアイデアに従って、この数字推測プログラムを書き直します。

コードをコピー コードは次のとおりです:

#!/usr/bin/env python
#coding:utf-8

ランダムにインポート

数値 = ランダム.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 "あなたの数字は大きいです。"
その他:
print 「何か悪いことがあるので、仕事を休みます」

上記は参考用であり、読者はさらに改良できる可能性があります。

中断して続行

break は上の例ですでに出てきていますが、その意味はこの場所でループを中断し、ループ本体から飛び出すことです。次の簡単な例は、より明白です:

コードをコピー コードは次のとおりです:

#!/usr/bin/env python
#coding:utf-8

a = 8
一方:
a%2==0 の場合:
休憩
それ以外:
print "%d は奇数です"%a
a = 0
print "%d は偶数です"%a

a=8 の場合、ループ本体で Break を実行し、ファンタジーから飛び出し、最後の print ステートメントを実行して結果を取得します。

コードをコピー コードは次のとおりです:

8は偶数です

a=9 の場合、else で print を実行する必要があります。a=0 の場合、ループは 1 回実行され、再度中断され、結果は次のようになります。

コードをコピー コードは次のとおりです:

9は奇数です
0は偶数です

そして continue は、現在の位置 (つまり continue が配置されている位置) からループ本体の最終行の後ろにジャンプすることです (ループ本体の場合、最終行は実行されません)。 「どこにあるの?」の最初と最後を繋ぐような感じで。もちろん始まりました。

コードをコピー コードは次のとおりです:

#!/usr/bin/env python
#coding:utf-8

a = 9
一方:
a%2==0 の場合:
a -=1
continue #偶数の場合はループの先頭に戻ります
それ以外:
print "%d は奇数です"%a #奇数の場合は出力します
a -=1

実際、私はプログラミングでこれら 2 つをほとんど使用しません。私の頑固な考えは、ループの前に条件を完了するように努め、ループ内で飛び回らないようにすることです。可読性が低下するだけでなく、時々混乱することがあります。

コードをコピー コードは次のとおりです:

一方...その他

これら 2 つの組み合わせは if...else に似ています。もちろん、else が出現すると、それは while ループから外れることを意味します。

コードをコピー コードは次のとおりです:

#!/usr/bin/env python

カウント = 0

を数えながら 印刷枚数、「は 5 枚未満です」
カウント = カウント + 1
それ以外:
印刷枚数「5」以上です

実行結果:

コードをコピー コードは次のとおりです:

0 は 5 未満です
1 は 5 未満です
2 は 5 より小さい
3 は 5 より小さい
4 は 5 より小さい
5は5以上です
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート