Python-I/O、条件文、繰り返し文、関数


n/a.ターゲット

  • I/O、条件文、繰り返し文、関数について
  • デフォルトI/O


    input()関数

  • 行の文字列を入力関数
  • map()関数

  • を使用して、リスト内の各要素に特定の関数を適用します.

    例)スペースで区切られたデータを入力する場合:

  • list( map ( int, input().split() ) )
  • 例)スペースで区切られたデータの数が少ない場合?

  • a, b, c = map( int, input().split() )
  • <例>

    # 데이터의 개수 입력
    n = int( input() )
    
    # 각 데이터를 공백을 기준으로 구분하여 입력
    data = list( map( int, input().split() ) )
    data.sort( reverse = True )
    
    # 각 데이터를 문자열로 출력
    data2 = input().split()
    
    # 세개의 변수를 입력받아 출력
    a, b, c = map( int, input().split() )
    
    print( n )
    print( data )
    print( data2 )
    print( a, b, c )

    <結果値>

    입력 ==========
    
    5
    
    10 20 30 40 50
    
    50 40 30 20 10
    
    1 2 3
    
    출력 ==========
    
    5
    
    [50, 40, 30, 20, 10]
    
    ['50', '40', '30', '20', '10']
    
    1 2 3

    クイック入力

  • ユーザーから入力をすばやく取得する必要がある場合は、「
  • 」を選択します.
  • Pythonの場合、sysライブラリで定義されたsys.stdin.readline()メソッドの使用
  • 段、入力後Enterを改行文字としてrstrip()メソッドとともに
  • を使用

    <例>

    import sys
    
    # 문자열 입력 받기
    data = sys.stdin.readline().rstrip()
    print(data)

    <結果値>

    입력 ==========
    
    1 2 3 4 5
    
    출력 ==========
    
    1 2 3 4 5

    一般的な標準出力方法

  • Pythonのデフォルト出力print()関数を使用
  • 各変数はカンマ(,)で区切られ、
  • が出力されます.
    デフォルトでは、
  • print()は出力後に改行を実行します.
  • 行を変更しない場合は、endプロパティ
  • を使用します.

    <例>

    # 출력할 변수들
    a = 1
    b = 2
    
    print( a, b)
    print( 7, end=" ")
    print( 8, end=" ")
    
    # 출력할 변수
    answer = 7
    print( "정답은 " + str(answer) + "이다." )

    <結果値>

    1 2
    
    7 8 정답은 7이다.

    f-string

  • Python 3.6から
  • を提供
  • 文字列の前に接頭辞「f」を付け、
  • を使用する
  • 大かっこに変数名を記入し、文字列と整数を簡単に
  • に置く.

    <例>

    answer = 7
    print( f"정답은 {answer}이다.")

    <結果値>

    정답은 7이다.

    条件文

  • プログラム制御フロー
  • プログラム論理設定
  • <例>

    x = 15
    
    if x >= 10:
    	print("x >= 10 ")
    
    if x >= 0:
    	print("x >= 0")
        
    if x >= 30:
    	print("x >= 30")

    <結果値>

    x >= 10 
    
    x >= 0

    インデント

  • Pythonコードブロックをインデント
  • として指定する.
  • Pythonスタイルガイド4つのスペースを標準
  • に設定

    <例>

    score = 85
    if score >= 70 : 
      print( '성적이 70점 이상입니다. ')
      if score >= 90 :
        print('우수한 성적입니다.')
    else :
      print('성적이 70점 미만입니다.')
      print('조금 더 분발하세요.')
    
    print( '프로그램을 종료합니다.')

    <結果値>

    성적이 70점 이상입니다. 
    
    프로그램을 종료합니다.

    条件文の基本形式

  • の基本形式はif~elif~elseである.
  • 条件文を使用する場合、elifまたはelseセクションは状況に応じて使用する必要はありません.
  • <例>

    a = -15
    
    if a >= 0 :
      print( "a >= 0")
    elif a >= -10 :
      print("0 > a >= -10")
    else:
        print("-10 > a")

    <結果値>

    -10 > a

    比較演算子


    2つの特定の値を比較するための

  • 注意
  • 入力演算子(=)と同じ演算子(==)の違い
  • 論理演算子

  • 論理値(真/偽)間で演算を実行するために使用
  • <例>

    if True or False:
     print("Yes")
     
    a = 15
    
    if a <= 20 and a >= 0 : 
     print( "Yes" )

    <結果値>

    Yes
    
    Yes

    その他の演算子

  • 個のデータを含むデータ型にin演算子とnot in演算子を提供します.
  • リスト、チュートリアル、文字列、およびバイナリ・ファイルには、
  • があります.

    passキーワード

  • 何事も処理したくない場合は
  • を使用します.
  • 例)デバッグ中に条件文の形式のみを作成し、条件文の一部を空にしたくない場合は、
  • を選択します.

    <例>

    score = 85
    
    if score >= 80 : 
    	pass # 나중에 작성할 소스코드
    else : 
    	print( '성적이 80점 미만입니다.' )
        
    print( '프로그램을 종료합니다.' )

    <結果値>

    프로그램을 종료합니다.

    条件文の簡略化

  • 条件文で実行するソースコードが1行しかない場合は、改行する必要はありません.
  • <例>

    score = 85
    
    if score >= 80 : result = "Success"
    else : result = "Fail"
    
    print(result)

    <結果値>

    Success
    条件式
  • if~else文
  • を1行で作成する.

    <例>

    score = 85
    
    result = "Success" if score >= 80 else "Fail"
    print(result)

    <結果値>

    Success

    条件文の不等式


    他のプログラミングとは異なり、Pythonは条件文に数学的不等式を保持している.
  • 例)「x>0およびx<20」および「0を返す.

    <コードスタイル1>

    x = 15
    if x > 0 and x < 20 :
    	print( "x는 0이상 20 미만의 수이다." )

    <コードスタイル2>

    x = 15 
    if 0 < x < 20:
    	print( "x는 0이상 20 미만의 수" )

    複文


    <1~9のすべての整数の合計例(while文)>

    i = 1
    result = 0
    
    # i가 9보다 작거나 같을 때 아래 코드를 반복적으로 실행
    while i <= 9:
      if i % 2 == 1:
        result += i
      i += 1
    print( result )

    <結果値>

    25

    文脈

  • 特定の変数を使用して、inの後ろにあるデータ(リスト、凡例など)の要素に1つずつアクセスします.

    <例>

    array = [ 9, 8, 7, 6, 5 ]
    
    for x in array:
      print(x)

    <結果値>

    9
    8
    7
    6
    5

    for文-range()

  • 連続値のシーケンス
  • を巡回する.
  • range(開始値、終了値+1)、
  • パラメータ
  • を1つだけ追加すると、開始値は自動的に0
  • になります.

    <例>

    result = 0
    
    # i는 1부터 9까지의 모든 값을 순회
    for i in range( 1 , 10 ) :
    	result += i
    print( result ) 

    <結果値>

    45

    continueキーワード

  • 反復文で残りのコードの実行をスキップして次の反復を行う場合、
  • <例>

    result = 0
    
    for i in range(1, 10):
      if i % 2 == 0:
        continue
      result += i
    print(result)

    <結果値>

    25

    breakキーワード

  • を使用して、繰り返し文から直ちに脱出

    <例>

    i = 1
    
    while True :
      print( "현재 i의 값 : " , i)
      if i == 5:
        break
      i += 1

    <結果値>

    현재 i의 값 :  1
    현재 i의 값 :  2
    현재 i의 값 :  3
    현재 i의 값 :  4
    현재 i의 값 :  5

    <学生が合格したかどうかの例-特定の番号を含まない学生>

    scores = [90,85,77,65,97]
    cheating_student_list = {2,4}
    
    for i in range(5):
      if i + 1 in cheating_student_list:
        continue
      if scores[i] >= 80:
        print(i + 1, "번 학생은 합격입니다.")

    <結果値>

    1 번 학생은 합격입니다.
    5 번 학생은 합격입니다.

    formatキーワードの使用

  • formatキーワードを使用して、それぞれデータを入れることができます.
  • 『九九九九九九例』

    n = int( input() )
    
    for i in range( 1, 10 ) :	# 뒤에 10은 -> 10-1이라고 생각하면 됨
    	print( '{0} * {1} = {2}'.format( n, i, n * i ) )  # 즉 9번 돈다
    上記の例に示すように、{0}、{1}および{2}リソース設定値1:1にマッピングされます.

    <結果値>

    3
    3 * 1 = 3
    3 * 2 = 6
    3 * 3 = 9
    3 * 4 = 12
    3 * 5 = 15
    3 * 6 = 18
    3 * 7 = 21
    3 * 8 = 24
    3 * 9 = 27

    逆順で出力

  • 逆シーケンス出力データ
  • <逆出力例>

    n = int( input() )
    
    for i in range( n, 0, -1 ) : # 두번째 매개변수 +1 까지 -1씩 감소
    	print( i )

    <結果値>

    5
    
    5
    4
    3
    2
    1

    n.関数


    定義#テイギ#

    def 함수명(매개변수):
    	실행할 소스코드
        return 반환 값

    <プラス記号関数の例1>

    def add(a, b):
      return a + b
    print(add(3, 7))

    <結果>

    10

    <プラス記号関数の例2>

    def add(a, b):
      print( "함수의 결과 : " , a + b )
    add(3,7)

    <結果>

    함수의 결과 :  10

    パラメータの指定

  • パラメータ変数を直接指定できます.
  • の場合、パラメータの順序が異なっても関係ありません.
  • <例>

    def add(a ,b ):
      print( "함수의 결과 : " , a + b )
    add( b = 3, a = 7)

    <結果値>

    함수의 결과 :  10

    グローバルキー

  • 変数をグローバルキーとして指定した場合、この関数は領域変数を作成するのではなく、関数の外部で宣言された変数を直接参照します.
  • <例>

    # 예제 1 =====
    a = 0
    
    def func():
      global a
      a += 1
    
    for i in range(10):
      func()
    
    print(a)
    
    # 예제 2 =====
    array = [1,2,3,4,5]
    
    def func() :
      array = [3,4,5]
      array.append(6)
      print(array)
    
    func()
    print(array)
      
      

    <結果値>

    예제 1 =====
    10
    
    예제 2 =====
    [3, 4, 5, 6]
    [1, 2, 3, 4, 5]

    複数の戻り値

  • Pythonでは、関数に複数の戻り値があります.
  • <例>

    def operator( a, b) : 
      add_var = a + b
      subtract_var = a - b
      multiply_var = a * b
      divide_var = a / b
    
      return add_var , subtract_var , multiply_var , divide_var
    
    a, b, c, d = operator( 7, 3)
    
    print( "a : " + str(a) + "\n" 
          ,"b : " + str(b) + "\n"
          ,"c : " + str(c) + "\n" 
          ,"d : " + str(d) )

    <結果値>

     a : 10
     b : 4
     c : 21
     d : 2.3333333333333335

    ランダ式

  • は、特定の機能を実行する関数
  • を1行で記述できることを特徴とする.

    <例>

    def add( a, b ):
      return a + b
    
    # 일반적인 add() 메서드 사용
    print( add( 3, 7 ) )
    
    # 람다 표현식으로 구현한 add() 메서드
    print( ( lambda a, b: a + b )(3, 7) )

    <結果値>

    10
    10

    Ramda式の例-組み込み関数でよく使用されるRamda関数

    array = [ ('홍길동', 50) , ('이순신', 32) , ('아무개',74) ]
    
    def my_key(x) : 
      return x[1]
    
    print( sorted( array, key = my_key) )
    print( sorted( array, key = lambda x: x[1] ) )

    <結果値>

    [('이순신', 32), ('홍길동', 50), ('아무개', 74)]
    
    [('이순신', 32), ('홍길동', 50), ('아무개', 74)]

    ラムダ式の例-複数のリストに適用

    list1 = [ 1, 2, 3, 4, 5]
    list2 = [ 6, 7, 8, 9, 10]
    
    result = map( lambda a, b : a + b , list1, list2 )
    
    print( list( result ) )

    <結果値>

    [7, 9, 11, 13, 15]
    < Reference Site >
    董文娜https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC&index=1