ABOUT ME

내가 그때 뭐 했지 볼려고 쓰는 블로그

Today
Yesterday
Total
  • [파이썬] 입출력, 자료형, 조건문 간소화
    공부/Python 2023. 3. 17. 13:09

    1. input()

    파이썬에서는 데이터를 입력받을 때는 input()을 사용한다.

     

    input은 한줄의 문자열을 입력 받게 하며 정수형으로 데이터를 처리하기 위해서는
    문자열은 정수로 바꾸는 int() 함수를 사용한다. 

     

    그리고 여러개 데이터를 입력 받을때는 데이터가 공백으로 구분되는 경우가 많다.

    이런 경우는 

    1. a,b,c = map(int, input().split()) 형식으로 입력받으면 된다. 

    map함수를 이용해서 입력값을 패킹하는 과정을 거쳐서 a,b,c 값에 순차적으로 언패킹과정을 통해 데이터를 넣는다.

    2. list(map(int,input().split())) 을 이용한다.

     

    2의 동작 과정은 split()을 이용해  input()으로 입력받은 문자열을 공백으로 나눈 리스트로 바꾼 뒤

    map을 이용해서 해당 리스트이 모든 원소에 int() 함수를 적용해  그결과를 list()로 다시 바꿈으로써 입력받은 데이터를 문자열을 띄어쓰기하여 구분해 각각 숫자 자료형으로 저장한다고 한다.

     

    * map() : 리스트의 요소를 지정된 함수로 처리해주는 함수

    • list(map(함수, 리스트))  -> 리스트(list)  [1, 2, 3] 형태로 정의하며 각 원소를 수정가능 
    • tuple(map(함수, 튜플))  -> 튜플(tuple)  (1, 2, 3) 형태로 정의하며 한번 정의한 원소를 수정 할 수 없음

    파이썬의 기본 input() 함수는 동작 속도가 느려서 시간 초과로 오답 판정을 받을 수 있어

    이 경우는 파이썬의 sys라이브러리에 정의되어 있는 sys.stdin.readline() 함수를 이용한다.

    sys 라이브러리는 input() 함수와 같이 한 줄씩 입력받기 위해 사용한다.

    import sys
    
    sys.stdin.readline().rstrip()

    sys 라이브러리를 사용할 때는 한 줄 입력을 받고 난 뒤에는 rstrip() 함수를 꼭 호출 해야한다.

    readline()으로 입력하면 엔터가 줄 바꿈 기호로 입력되기 때문에 이 공백문자를 제거하려면 rstrip()함수를 써야한다. 

    import sys
    
    data = sys.stdin.readline().rstrip()
    print(data)

     

    * 리스트에서 사용되는 정렬법 

    1. reverse : 리스트를 거꾸로 뒤집는다. desc 정렬이 아님

    2. sort : 정렬, 기본값은 오름차순 정렬, reverse옵션 True는 내림차순 정렬

    * a.sort(reverse=True)  = 내림차순

    3. sorted : 순서대로 정렬, 정렬된 리스트를 반환한다.

    4. reversed : 거꾸리도 뒤집은 객체를 반환한다., 확인을 위해서는 list로 한번 더 변형 필요

     

    2. print()

    파이썬은 print()문을 통해 변수나 상수를 매개 변수로 입력받아 이를 표준출력으로 출력한다.

    (,)를 통해 각 변수를 구분해 넣으면 변수가 띄어쓰기로 구분되어 출력되며

    print()는 파이썬에서는 기본적으로 출력 이후에 줄 바꿈을 수행해 사용할때 마다 줄이 변경되게된다. 

     

    #파이썬에서는 문자열과 다른 자료형을 더해서 출력하려고 하면 오류가 난다.
    #파이썬에서는 출력할때 문자열과 정수형의 직접적인 더하기 연산은 불가하다.
    #따라서 다음과 같은 방법을 이용한다.
    
    a = 1
    
    #1.
    print("정답은"+ str(a)+"입니다")
    
    
    #2.
    print("정답은", str(a) , "입니다")
    
    
    #str을 통해 문자열로 변형시킨 후 출력한다.
    #,를 이용하면 의도치 않은 공백이 들어갈 수 있다.
    
    
    #또다른 방법으로는 f-string 문법이 있다.
    a = 7
    print(f"정답은 {a}입니다.")
    #f를 통해 f-string 문법을 명시해서 중괄호안에 변수명을 기입해 간결하게 출력할 수 있다. 
    
    
    
    # "를 사용하고자 할때
    data = "Don't yo know \"Python\"?"
    print(data)
    #출력 : Don't you know "Python"?
    
    
    
    
    
    #파이썬에서 print()는 줄바꿈을 기본적으로 수행한다. 
    #줄바꿈을 제거하고싶다면 end 속성을 이용한다.
    a = hello
    b = world
    print(a, end=" ")
    print(b, end=" ")

     파이썬의 문자열 연산 

    문자열 변수에 덧셈을 이용하면 문자열이 더해져서 연결된다.

    문자열 변수를 특정한 양의 정수와 곱하는 경우, 문자열이 그 값만큼 여러번 더해진다.

    문자열에 대해서도 인덱싱과 슬라이싱을 사용할 수 있다.

     *문자열은 특정 인덱스의 값을 변경할 수 없다.

    예시 코드
    
    1. 
    a="Hello"
    b="World"
    print(a+" "+b)
    
    출력 :  
    
    a = "String"
    print(a * 3)
    
    출력 : StringStringString
    
    a = "ABCDEF"
    print(a[2:4])
    
    출력 : CD

    튜플

    a  = ()

    소괄호를 이용하여 값을 초기화함.

    튜플은 값을 변경할 수 없는 자료형

     

    사전 자료형

    - 순서가 없기때문에 key 값 또는 value 이용해서 데이터를 찾는다.

    dict()함수로 사전자료형을 초기화 할 수 있다.

     

    집합자료형 

    집합의 특징

    • 중복을 허용하지 않는다.
    • 순서가 없다.
    • 집합은 리스트 혹은 문자열을 이용해서 초기화할 수 있다.
    • 이때 set() 함수를 이용한다
    • 순서가 없기 때문에 값을 찾을때는 원소값을 이용해서 찾는다.

    예 :

    data = set([1,1,2,3,4,4,5])
    print(data)
    
    출력: {1,2,3,4,5}

    출력 결과처럼 중복을 허용하지 않기 때문에 제거되서 출력된다.

     

    집합 자료형의 연산

    • 합집합 : 집합 A에 속하거나 B에 속하는 우너소로 이루어진 집합(AUB)
    • 교집합 : 집합 A에도 속하고 B에도 속하는 원소로 이루어진 집합 (ANB)
    • 차집합:  집합 A의 원소 중에서 B에 속하지 않는 원소들로 이루어진 집합 (A-B)
    a = set([1,2,3,4,5])
    b = set([3,4,5,6,7])
    
    #합집합
    print(a|b)
    
    #교집합
    print(a&b)
    
    #차집합
    print(a-b)

    기타 관련 함수

    .add() : 새로운 원소를 추가.

    .update(): 새로운 원소 여러 개 추가

    .remove() : 특정 값을 갖는 원소 삭제 

     

     

    파이썬의 들여쓰기

Designed by Tistory.