符号化スタンプUnit 17.繰り返しでハローワールド!出力100回

12544 ワード

一方,繰返し文は条件式のみで動作し,繰り返すコードには条件式に影響する変化式が加わっている.
i = 0                     # 초기식
while i < 100:            # while 조건식
     print('Hello, world!')    # 반복할 코드
     i += 1                    # 변화식

ループ部分(ループ,loop):条件式→繰り返すコードと変化式→条件式

17.1 while重複文の使用

while繰り返し文は条件式を指定し、末尾にコロン(:)を付け、繰り返したいコードと式を加えます.
≪初期式|Initial Expression|oem_src≫:通常の変数に値を格納するコード
초기식
while 조건식:
     반복할 코드
     변화식
while繰返し出力'Hello, world!'100回
>>> i = 0
>>> while i < 100:
         print('Hello, world!')
         i += 1
# 실행결과
Hello, world!
    (생략)
Hello, world!
Hello, world!
Hello, world!
条件式のみを指定して変化式を省略すると、繰返しは終了せず(無限ループ)実行を継続するので注意が必要です.
📎 エラーSyntaxError: invalid syntax:while繰り返し文の形式を守らないときに発生する構文エラーSyntaxError: expected an indented block:while次の行の重複コードのインデントが正しくないことによる構文エラー

17.1.1 1から初期値の入力


iに0ではない1「Hello,world!」を割り当てる出力100回
>>> i = 1
>>> while i <= 100:  # 100을 포함시켜야 100번 출력 가능
         print('Hello, world!', i)
         i += 1
# 실행결과
Hello, world! 1
Hello, world! 2
Hello, world! 3
      (생략)
Hello, world! 99
Hello, world! 100

17.1.2秒数減少


初期値を大きくし、変数を減らして繰り返します.
>>> i = 100
>>> while i > 0:
        print('Hello, world!', i)
        i -= 1
Hello, world! 100
Hello, world! 99
Hello, world! 98
     (생략)
Hello, world! 2
Hello, world! 1

17.1.3繰り返し入力の回数

count = int(input('반복할 횟수를 입력하세요: '))
 
i = 0
while i < count:     # i가 count보다 작을 때 반복
    print('Hello, world!', i)
    i += 1
'반복할 횟수를 입력하세요:'出力後、3を入力しenterを入力
# 실행결과
반복할 횟수를 입력하세요: 3 (입력)
Hello, world! 0
Hello, world! 1
Hello, world! 2
初期値を受け入れて初期値を出力
count = int(input('반복할 횟수를 입력하세요: '))
 
while count > 0:     # count가 0보다 클 때 반복
    print('Hello, world!', count)
    count -= 1       # count를 1씩 감소시킴
# 실행결과
반복할 횟수를 입력하세요: 3 (입력)
Hello, world! 3
Hello, world! 2
Hello, world! 1
iの代わりに変数countを直接使用するため、式はcount -= 1として指定されます.

17.2未確定繰返し数

while重複文は、主に重複回数が確定していない場合に用いられる.
数値に基づいて反復を終了する整数を生成します.
乱数(random number)とは、特定の周期で繰り返されず、不規則にランダムにリストされる数値です.
Pythonで整数を作成するにはrandomモジュールが必要です.importキーワードインポートモジュールを使用します.
import random    # random 모듈을 가져옴
randomモジュール内のrandint関数を使用して整数を生成できます.
>>> random.randint(1, 6)  # 1과 6사이의 난수 생성
4
この関数をwhile反復文に使用してみます.
1から6までの整数を生成した後、3が現れると繰り返しが終了します.
import random    # random 모듈을 가져옴
 
i = 0
while i != 3:    # 3이 아닐 때 계속 반복
    i = random.randint(1, 6)    # randint를 사용하여 1과 6 사이의 난수를 생성
    print(i)
# 실행결과
5
1
4
1
1
3 
実行結果から、整数はランダムに生成され、実行するたびに繰り返し回数が変化します.
このようにwhile重複文は、重複回数が特定されていない場合に非常に有用である.
📎 注意)random.choicerandom.choice関数を使用すると、シーケンスオブジェクトから要素をランダムに選択できます.
1,2,3,4,5,6を含むリストからランダムに数字を選択します.
random.選択(シーケンスオブジェクト)
>> dice = [1, 2, 3, 4, 5, 6]
>> random.choice(dice)
1
>> random.choice(dice)
4
>> random.choice(dice)
3
もちろん、random.choice関数はシーケンスオブジェクトを受信するので、リストだけでなくtuple、range、文字列なども含むことができる.

17.3 while繰り返し文を使用して無限ループを作成

while True:    # while에 True를 지정하면 무한 루프
    print('Hello, world!')
# 실행결과
    (생략)
Hello, world!
Hello, world!
Hello, world!
Hello, world!
  (계속 반복)
リミットレスループを終了する場合は、Ctrl + Cを入力します.Ctrl + Cでプログラムを完全に閉じます.
無限ループを簡単に終了するには、if文で条件を作成する必要があります.
📎 エラーNameError: name 'true' is not defined:True最初のアルファベットだけが大文字です.Tが小文字で入力されていないことを確認し、すべて大文字で入力されていないことを確認します.

17.4練習問題:2つの異なる変数を繰り返す


次のソースコードを完了し、整数2 5、4、8、3、16、2、321を各行に出力します.whileでは、条件式で2つを指定し、2つの変数を同時に変更する必要があります.
i = 2
j = 5

while i <= 32 or j >= 1:       
    print(i, j)
    i *= 2
    j -= 1      
# 실행결과
2 5
4 4
8 3
16 2
32 1
数字のルールから見ると、空白の標準の左の数字は2の倍数で、右の数字は5から1です.
したがって
1.while繰り返し文で繰り返す場合、変数iは2の倍数、jは1になります.
2.iは32に出力する必要があり、jは1に出力する必要があるため、while条件式は対応する範囲を設定する必要があります.