IFP冬休み学習(ユニット17)


While反復文の使用
  • forと同様にwhileブロックで条件式に用いる変数(i)を用いることができ、初期値を低減する機能も実現できる.

  • 구조)
    초기식
    while 조건식:
        반복할 코드
    예)
    i = 0                          # 초기식
    while i < 10:                 # while 조건식
         print('Hello!')    # 반복할 코드
         i += 1                 
    Hello! 10回の出力
    繰り返し回数が確定していない場合
  • であり、ゲートはforゲートとは異なり、繰返し回数が決定されていない場合により多く使用される.
  • Pythonで数値を生成する場合、import randomキーワードを使用してインポートできます.
  • import random
    dice = [1, 2, 3, 4, 5, 6]
    random.randint(1,6)  # 1~6 사이의 수 하나를 랜덤으로 생성
    random.choice(dice)  # dice안에 들어있는 객체 하나를 임의로 선택
    예)
    import random
    i = 0
    while i != 2:
        i = random.randint(1, 6)
        print(i)
    # 랜덤으로 선택한수가 2 가 나올 때까지 무한 반복한다.
    17.4テスト
  • 次のwhile反復文ですべてのエラーの説明を選択してください.
  • whileは、繰り返し文で条件式または値を指定すればよい.
  • while複文条件式の結果が本当であれば,繰返しを終了する.
  • while反復文は、反復回数を指定した場合にのみ使用できます.
  • while文の次の行はインデントする必要があります.
  • while複文の条件式でTrueを指定すると無限ループになります.
  • 정답) 2, 3
    풀이)
    2 - 조건식 결과가 True일 때에는 무한 반복한다.
    3 - 반복 횟수가 정해져있지 않아도 사용가능하다.
  • の次のwhile反復文を実行する場合は、出力結果を選択します.
  • i = 10
    while i < 19:
        print(i, end=' ')
        i += 2
  • 10 11 12 13 14 15 16 17 18 19
  • 10 11 12 13 14 15 16 17 18
  • 10 12 14 16 18 19
  • 10 12 14 16 18
  • 10 12 14 16
  • 정답) 4
    풀이) i = 10이기 때문에 10으로 시작하고 while 조건식을 보면 i가 19보다 작을 때 까지 무한 루프를 돌고 i값에 2씩 더하므로 답은 4이다.
  • while繰り返し文「Hello,world!」10回印刷すると言ったら、間違った部分を選択してください.
  • a. i = 0
    b. 
    c. while i > 20:
    d.     print('Hello, world!')
    e.     i = i + 2
    정답) c
    풀이) 조건식을 처음부터 만족하지않아 while문이 작동하지 않으므로 i < 20으로 바꿔야 정상적으로 작동한다.
  • 次のwhile反復文の無限ループを選択します.
  • while '':
  • while 1.1:
  • while None:
  • while False:
  • while not 0:
  • 정답) 2, 5
    풀이)
    2 - 실수는 True로 취급하므로 무한루프된다.
    5 - 0은 False이지만 not을 이용해 값을 뒤집어서 True이므로 무한루프된다.
    17.5練習問題:2つの異なる変数を繰り返す
  • は、次のソースコードを完了し、整数2 5、4、8、3、16、2、321を各行に出力する.whileでは、条件式で2つを指定し、2つの変数を同時に変更する必要があります.
  • i = 2
    j = 5
    ① _____________or______
        print(i, j)
        ②_________
        ③_________
    실행결과)
    2 5
    4 4
    8 3
    16 2
    32 1
    정답) 
    ① : while i <= 32 or j >=1:
    ② : i *= 2
    ③ : j -= 1
    풀이) 
    i는 두 배씩 높아지면서 출력이 되고 32로 마무리가 되었고
    j는 1씩 감소하면서 출력이 되고 1로 마무리가 되었으므로 
    조건식과 반복할 코드를 이를 토대로 작성하면 된다.
    17.6審査問題:交通カード残高の印刷
    入力された金額(整数)は
  • 標準入力です.1350元の料金を徴収し、交通カードを使用した残高を各行に出力するプログラムを作成します(入力にはブート文字列は出力されません).ただし、初期金額は印刷しないでください.残高は負の値にはできません.残高が不足している場合は、出力を終了します.
  • 입력) 10000
    결과)
    8650
    7300
    5950
    4600
    3250
    1900
    550
    정답)
    price = int(input())
    while price >=1350:
        price -= 1350
        print(price)
    풀이)
    금액에 대한 입력을 받을 변수 price를 선언하고 정수형으로 바꿔준다.
    입력 받은 price가 1350보다 작을 때에 출력을 끝내므로 1350 이상일 때로 조건을 걸고 최초 금액을 출력 하지않으므로 price에서 교통금액을 뺀 후 출력을 한다.