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
仕事
- 次のループは「ILoveFishC」を何回出力しますか?
for i in range(0, 10, 2):
print('I Love FishC')
私は5を持っているので5回
- 次のループは「ILoveFishC」を何回出力しますか?
for i in 5:
print('I Love FishC')
エラーを報告します
-
ブレークの役割を思い出して、ループを続けますか?
ブレーク:現在のループを終了し、ループ本体からジャンプします
続行:このループのラウンドからジャンプして次のループのラウンドを開始します -
リストについてのあなたの理解について話してください。
リストは、反復オブジェクトをリストの形式で1つずつ表示することです。 -
range(10)はどのような数値を生成しますか?
0、1、2、3、4、5、6、7、8、9 -
次のプログラムは視覚的に何を印刷しますか?
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
-
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)
- 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)