내일배움캠프 7일차

김서영·2022년 9월 6일
0

내일배움캠프 TIL

목록 보기
8/85

1. 파이썬 강의 2일차 정리

1) 파이썬 활용

  • 자료형 활용하기
    - 사칙연산

    x + y : 더하기
    x - y : 빼기
    x * y : 곱하기
    x ** y : 제곱(x의 y제곱)
    x / y : 나누기(연산 결과는 항상 float)
    x // y : 몫(정수)
    x % y : 나머지

  • 연산 축약 문법

    - num = num + 1
    : num += 1
    - num = num 3
    : num
    = 3 등등

  • string(문자열)
    - +(더하기)와 *(곱하기) 연산 기호를 지원

    응용) hello world 한 글자씩 출력하기

응용) n-1번째 글자 출력하기

- fstring을 활용해 문자열과 변수를 함께 다룰 수 있다.

  • list(리스트)
    list 안에 들어있는 각 요소는 0부터 시작해 순서대로 index 번호를 가지고, indexing과 slicing 기능을 활용해 활용해 원하는 값을 가져올 수 있다.

    - 인덱싱 : print(numbers[3])
    => numbers의 4번째 요소 가져오기
    - 슬라이싱 : print(numbers[0:3])
    => 인덱스 번호 0, 1, 2번 가져오기

    값을 원하는대로 추가, 수정, 삭제 가능하다.

    숫자나 문자 이외에도 다양한(거의 모든) 자료형들을 사용할 수 있다.
    =>주로 자료형을 통일하여 사용(한 리스트에 한 자료형)
    len() 함수를 사용해 list의 길이를 구할 수 있다.
    응용)

  • tuple(튜플)
    요소의 값을 수정하거나 삭제할 수 없으며, 추가만 가능(2개의 튜플을 합치는 방식으로 추가)하다는 것을 제외하고 list와 모든 기능이 같다.

  • set(집합)
    list와 비슷하지만 중복 된 값을 포함하지 않고, indexing과 slicing 기능을 지원하지 않는다.
    len() 함수를 사용해 set 자료형의 길이를 구할수 있다.

  • dictionary(딕셔너리)
    key: value로 구성되며, key를 사용해 value를 가져올 수 있다.
    만약 존재하지 않는 key로 value를 가져오려 시도할 때에는 에러가 발생하는데 .get을 사용해 해당 key가 없을 때 사용될 값을 지정할 수 있다.

    자유롭게 값을 추가, 수정, 삭제할 수 있다.

  • 자료형 변환
    파이썬에서는 특정 값의 자료형을 조건이 맞을 경우 자유롭게 변환할 수 있다.
    예시)
    - string -> int
    똑같은 값이라도 type이 다를 수 있기 때문에 유의해서 사용❗
    - list -> tuple -> set

    - any -> string
    문자열은 거의 모든 자료형이 변환될 수 있다.

  • 함수
    def 함수명(): 의 형태로 선언
    선언한 함수를 호출하면 함수 안의 코드가 실행된다.
    함수를 선언할 때에는 인자를 받고, 원하는 로직을 수행한 후 결과를 리턴해 줄 수 있다.
    예)

  • 다른 파일에 있는 코드 import 해서 사용하기
    python에서 다른 파일에 있는 코드를 사용할 때에는 어디서(from) 어떤(import) 것을 가져와서 사용할지 지정해 줘야 한다.
    1) import 파일명

    파일명.원하는 코드명

    2) from을 이용

    - from 파일명 import 원하는 코드명
    - from 파일명 import * (파일에 있는 모든 코드 import)

    3) 다른 폴더에 있는 파일 import

    - from 폴더명 import 원하는 파일명
    파일명.원하는 코드명
    - from 폴더명.파일명 import 원하는 코드명
    - from 폴더명.파일명 import * (파일에 있는 모든 코드 import)
    - from 폴더명.파일명 import 원하는 코드명 as 별칭
    : 별칭 지정하여 코드 길이를 줄일 수 있다.
    외부모듈에서 import 할 때에는 그 문서에 있는 권장방식을 따르면 된다.

  • 변수 import 해서 사용하기
    1) from 폴더명.파일명 import *
    : 권장X, 존재하는 모든 변수 import(동일한 변수가 여러 파일에 있을 경우 오류 발생 가능)
    2) from 폴더명.파일명 import PIE, HELLO
    : 사용 할 변수를 각각 import
    3) from 폴더명 import 파일명
    : 권장O, 원하는 파일 import

  • 값 비교하기
    다양한 비교 연산자들을 사용해 값을 비교하고, 결과가 True인지 False인지 판단할 수 있다.

    == : 값이 일치하는지 비교
    != : 값이 일치하지 않는지 비교
    <, > : 값이 큰지 작은지 비교
    in : 특정 값이 list / tuple / set에 포함되어 있는지 확인
    => 모든 비교 연산자의 결과는 print()로 확인할 수 있다.
    print(1 == 1) # True

  • 조건문
    특정 비교 결과 혹은 값이 True 혹은 False일 경우 실행 될 로직을 정의한다.

    if condition: # 조건이 True일 경우 실행
    elif not condition: # 조건이 False일 경우 실행
    else: # 위 조건들 중 만족하는게 없을 경우 실행

    and, or을 사용해 2개 이상의 조건을 복합적으로 사용 가능하다.
    비어있는 string, list 등은 분기문에서 False로 판단한다.

    if not empty_string:
    if not empty_list:
    #이렇게 작성해야 True로 인식되어 print된다.

    특정 값이 True인지 False인지는 bool() 함수를 사용해 확인할 수 있다.
    예시)

    print(bool("")) #False
    print(bool(0)) #False
    print(bool([])) #False
    print(bool("sample")) #True
    print(bool([1, 2])) #True
    print(bool(1)) #True
    print(bool(-1)) # 0이 아닌 숫자는 True로 판단

2. 백준 알고리즘을 풀며 알게된 것

  • list 정렬
    reverse : 리스트를 거꾸로 뒤집는다.(desc 아님)
    sort : 정렬, 기본값은 오름차순, reverse 옵션 True는 내림차순
    예시)

    a={1, 10, 5, 7, 6}
    a.sort() # {1, 5, 6, 7, 10}
    a.sort(reverse=True) # {10, 7, 6, 5, 1}

  • list 정렬 결과 반환
    sorted : 순서대로 정렬, 정렬된 리스트 반환
    reversed : 거꾸로 뒤집기, 제대로된 확인을 위해서는 list로 한번 더 변형 필요
    예시)

    x={1, 11, 2, 3}
    y=sorted(x) # {1, 2, 3, 11}
    y=reversed(x), list(y) # {3, 2, 11, 1}

  • index(위치 반환)
    index(x) 함수는 리스트에 x값이 있으면 x의 위치값을 돌려준다.

    a={1, 2, 3}
    a.index(3) # 답은 2

  • print와 return의 차이점
    함수 및 프로그램에 영향을 주느냐 마느냐❕
    - print
    값을 출력할 뿐, 컴퓨터가 이 값을 가지고 무얼 하진 못한다.
    변수가 어떤 값을 가지는지 사용자 측에서 편하게 보기 위함이지 함수에는 전혀 영향을 끼치지 않는다.
    - return
    함수가 값을 반환하는 가장 주된 방법이다.
    모든 함수는 어떠한 값을 return하며, 이 return이 명시되어 있지 않은 경우에는 None을 return한다.
    이 반환된 값은 다른 함수에서 사용될 수 있으며 변수에 저장될 수도 있다.
  • input을 이용한 값 넣기
    - n=list()
    n.append(int(input()))
    : n 리스트에 입력값을 하나씩 추가
    - n=list(map(int,input().split())
    : 한번에 여러개의 인수를 입력받아서 배열에 넣어주는 것

💜 오늘 느끼고 배운 점

오늘도 오전에 파이썬 실시간 강의를 듣고, 오후에는 복습, 저녁에는 백준 알고리즘 문제를 풀었다.
오늘의 파이썬 강의는 알고있던 내용들을 좀더 깊숙히 자세하게 배우는 내용이어서 쉽지는 않았지만 복습을 통해 모두 숙지한 것 같다.
오늘 백준 알고리즘은 반복문 문제들이었는데 반복문을 사용하는 방식이 매우 다양해서 복잡한 반복문들은 코드를 작성하기 쉽지 않았다.
스스로 풀지 못한 문제들이 몇가지 있어서 공부를 한후 며칠뒤에 다시 풀어볼 예정이다.

profile
개발과 지식의 성장을 즐기는 개발자

0개의 댓글