본 내용의 출처는 파이썬 코딩도장파이썬 300제에 있으며, 추가한 내용이 있을 수 있습니다.

파이썬 코딩 도장

Unit 4. 기본 문법 알아보기

4.1 세미콜론


🔎 세미콜론

  • 파이썬은 세미콜론 x
    print('Hello, world!')
  • 붙여도 에러는 x → 보통 한 줄에 여러 구문 사용시 세미콜론으로 구분
    print('Hello'); print('1234')




4.2 주석


🔎 한 줄 주석

  • 코드 맨 앞 # 사용, 코드 뒤에도 적용 가능
    # Hello, world! 출력
    print('Hello, world!')
    
    #print('Hello, world!')
    
    a = 1 + 2 # 더하기
    print('Hello, world!') #printf('1234567890')


🔎 블록 주석

  • 각 줄마다 맨 앞에 # 넣기
  • 코드를 읽기 쉽도록 # 뒤에 공백 1칸
    #print('Hello, world!')
    #print('1234567890')
    
    # 더하기
    # a = 1 + 2
    # print('Hello, world!')

💡 참고: 파이썬에서 한글 주석 사용

  • 기본 인코딩이 UTF-8이긴 하지만, 이 형식으로 저장하지 않으면 에러 발생함.




4.3 들여쓰기


🔎 들여쓰기

  • 특히 파이썬은 들여쓰기 자체가 문법임

    • if 다음 줄은 항상 들여쓰기 해야함 → 안하면 문법 에러이기 때문에 코드 실행 x

      if a == 10:
      print('10입니다') # 들여쓰기 문법 에러
      
      # 올바른 코드
      if a == 10:
           print('10입니다.')

  • 들여쓰기 방법

    • 공백(스페이스) 2칸, 4칸, tab 등 다양
    • 코딩 스타일 가이드(PEP 8)에서는 공백 4칸 규정 → 그러나 모든 경우 동작 잘됨.
    • 공백 4칸 사용 권장





4.4 코드 블록


🔎 코드 블록

  • 특정한 동작을 위해 코드가 모여 있는 상태
  • 파이썬은 들여쓰기 기준으로 코드 블록 구성
    if a == 10:
          print('10')
          print('입니다.')
  • 조건
    • 같은 블록은 들여쓰기 칸 수 동일해야 함.
    • 공백과 탭 문자 섞어서 쓰면 안됨.




핵심 정리

핵심 정리


🔎 문자열 출력

  • print 함수는 화면(표준 출력)에 값을 출력하는 함수
    print('Hello, world!')    # Hello, world!


🔎 파이썬 스크립트 실행

  • 파이썬 스크립트 또는 스크립트 파일
    • 파이썬 코드를 저장한 .py 파일
    • 콘솔(터미널, 명령 프롬프트)에서 python [스크립트파일.py](http://스크립트파일.py) 형식으로 실행 가능


🔎 주석

  • 소스코드에 대한 설명 작성, 코드를 임시로 사용하지 않도록 만들 때 사용
    # Hello, world! 출력
    print('Hello, world!')
     
    # 코드를 사용하지 않음
    #print('Hello, world!')
     
    # 여러 줄로 된
    # 블록 주석
    # print('Hello, world!')


🔎 Q&A

  • 컴퓨테이셔널 씽킹과 알고리즘의 차이점
    • 컴퓨테이셔널 씽킹
      • 분해 : 복잡한 문제를 작은 문제로 나눔
      • 패턴 인식 : 문제 안에서 유사성 발견
      • 추상화 : 문제 핵심에만 집중
      • 알고리즘 : 정의한 문제를 해결하는 절차(일반화와 모델링이 포함됨)
    • 현실에서 컴퓨터로 해결하려는 문제 → 비정형화된 문제가 많음.
    • 이 비정형화된 문제를 컴퓨터로 해결하는 과정
    • 즉, 문제 이해 및 분해, 패턴 인식, 추상화, 알고리즘 작성까지를 컴퓨테이셔널 씽킹이라고 부름.




Unit 5. 숫자 계산하기

5.1 정수 계산하기


🔎 파이썬의 숫자 자료형



🔎 사칙 연산

  • 파이썬 IDLE 실행 or 콘솔(터미널, 명령 프롬프트)에서 파이썬 실행
  • >>>에 1 + 1을 입력한 뒤 엔터 키를 누르면 결과값 2 출력
    • 파이썬 2의 경우 5 / 2 ⇒ 2, 파이썬 3의 경우 5 / 2 ⇒ 2.5


🔎 나눗셈 후 소수점 이하를 버리는 // 연산자

  • 정수끼리의 나눗셈 결과가 정수로 나도록 하는 것
  • 실수에 사용하면 결과는 실수(소수점 이하는 버림 → .0으로 끝남)


🔎 나눗셈 후 나머지를 구하는 % 연산자



🔎 거듭제곱을 구하는 ** 연산자



🔎 값을 정수로 만들기



🔎 객체의 자료형 알아내기

  • 파이썬에서는 숫자도 객체(object)이며, 객체는 클래스(class)로 표현

💡 참고 : 몫과 나머지 함께 구하기 → divmod 사용

  • 튜플의 경우

💡 참고 : 진수, 8진수, 16진수

  • 2진수: 숫자 앞에 0b를 붙이며 0과 1을 사용
  • 8진수: 숫자 앞에 0o(숫자 0과 소문자 o)를 붙이며 0부터 7까지 사용
  • 16진수: 숫자 앞에 0x 또는 0X를 붙이며 0부터 9, A부터 F까지 사용(소문자 a부터 f도 가능)




5.2 실수 계산하기


🔎 실수 계산하기

  • 컴퓨터의 경우 실수 표현시 오차 발생해서 1.6이 아닌 1.5999999999999996 출력


🔎 실수와 정수를 함께 계산하면?

  • 표현 범위가 넓은 실수로 계산됨.


🔎 값을 실수로 만들기

  • float: 부동 소수점에서 따왔고, 값을 실수로 만들어줌.

💡 복소수

  • 허수부는 숫자 뒤에 j 붙이기




5.3 괄호 사용하기


🔎 괄호 사용하기

  • 연산자 우선수위에 따라 곱셈과 나눗셈을 먼저 계산




5.4 퀴즈






5.5 연습문제: 아파트에서 소음이 가장 심한 층수 출력하기






5.6 심사문제: 스킬 공격력 출력하기


🔎 실수로 출력해야함.





Unit 6. 변수와 입력 사용하기

6.1 변수 만들기


🔎 변수 만들기

  • 변수 이름 = 값 형식
  • 변수 명명 규칙
    • 영문 문자와 숫자 사용 가능
    • 대소문자 구분
    • 문자부터 시작해야하고, 숫자부터 시작하면 안됨
    • _로 시작할 수 있음
    • 특수 문자는 사용 불가
    • 파이썬 키워드는 사용할 수 없음




🔎 변수의 자료형 알아내기

  • type에 변수를넣으면 변수(객체)의 자료형이 나옴


#### 🔎 변수 여러 개를 한 번에 만들기 ![](https://velog.velcdn.com/images/dlgkdis801/post/cf7cdbf4-c69b-42d0-8073-88a51d083117/image.png)
  • 변수 개수와 값의 개수가 맞지 않을 경우 에러 발생

  • 값이 모두 같은 경우 이런 형식도 가능

  • 두 변수의 값 바꾸기

💡 변수 삭제

  • del 사용

💡 빈 변수 만들기

  • None 할당




6.2 변수로 계산하기


🔎 변수를 이용한 계산

  • 값의 변화를 계속 유지하려면 → 계산 결과를 다시 변수에 저장해야 함.
  • 할당 연산자 사용 가능( a += 20 → a = a + 20)
  • 계산 결과를 d에 할당하기 전에 d와 10을 더해야 하는데 d라는 변수가 없어 덧셈이 안되어 에러 발생

💡 참고: 부호 붙이기

  • 값이나 변수 앞에 양수, 음수 부호 붙이면 됨.




6.3 입력 값을 변수에 저장하기


🔎 input 함수 사용하기



🔎 input 함수의 결과를 변수에 할당하기



🔎 두 숫자의 합 구하기



🔎 입력 값을 정수로 변환하기

  • int로 감싸서 숫자(정수)로 만들어줘야 함.




6.4 입력 값을 변수 두 개에 저장하기


🔎 문자열 2개 입력받기(split 이용)



🔎 입력 값을 정수로 변환하기

print(int(a) + int(b)) # print 안에서 int로 변수 변환도 가능


🔎 map을 사용하여 정수로 변환하기



🔎 입력받은 값을 콤마를 기준으로 분리하기

  • split에 기준 문자열 지정해 공백이 아닌 다른 문자로 분리




6.5 퀴즈


  • 특수 문자를 고려하지 못했었음(e도 중간에 특수문자가 있기 때문에 사용 불가!)

  • c -= b는 c 값 자체가 선언되지 않았기 때문에 연산이 불가함.
    • 다른 경우는 c 값이 a와 b의 값을 이용했기 때문에 연산이 가능했던 것.





6.6 연습문제: 정수 세 개를 입력받고 합계 출력하기






6.7 심사문제: 변수 만들기






6.8 심사문제: 평균 점수 구하기






Unit 7. 출력 방법 알아보기

7.1 값을 여러 개 출력하기


🔎 값을 여러 개 출력하기



🔎 sep로 값 사이에 문자 넣기





7.2 줄바꿈 활용하기


🔎 줄바꿈 활용하기

  • sep 사용

  • 개행문자만 사용



🔎 end 사용하기





7.3 퀴즈






7.4 연습문제: 날짜와 시간 출력하기


  • 1번
sep='/'
  • 정답
    sep='/', end=' '
  • 2번
sep=':'




7.5 심사문제: 날짜와 시간 출력하기






Q & A

Q & A


🔎 숫자를 콤마로 구분해서 표현할 수는 없는지?

  • _ 사용
>>> 10000000
10000000
>>> 10_000_000
10000000
  • 숫자에 콤마 사용시 튜플 자료형이 되기 때문에 주의 필요
    >>> 10,000,000
    (10, 0, 0)


🔎 행렬 곱셈 연산자는 어떻게 사용하나요?

  • 파이썬 3.5 이상부터 사용 가능, numpy 모듈 설치 후 사용 가능




Unit 8. 불과 비교, 논리 연산자 알아보기

8.1 불과 비교 연산자 사용하기


🔎 비교 연산자의 판단 결과



🔎 숫자가 같은지 다른지 비교하기



🔎 문자열이 같은지 다른지 비교하기

  • 문자열은 대소문자를 구분하는 점을 참고


🔎 부등호 사용하기

  • 비교 기준을 첫 번째 값


🔎 객체가 같은지 다른지 비교하기

  • is, is not
    - ==, ≠는 값 자체를 비교 ↔ is, is not은 객체를 비교

💡 정수 객체와 실수 객체가 서로 다른 것은 어떻게 확인하는지?

  • id 함수 사용

💡 값 비교에 is를 쓰지 않기

  • 변수가 있는 상태에서 다른 값을 할당하면 메모리 주소가 달라짐.
  • 객체 자체가 달라지니 값이 같아도 is로 비교시 false가 나옴.




8.2 논리 연산자 사용하기


🔎 논리 연산자 : and, or, not

  • and
  • or
  • not
  • and, or, not 논리 연산자가 식 하나에 들어있다면 → not, and, or 순으로 판단


🔎 논리 연산자와 비교 연산자를 함께 사용하기

💡 정수, 실수, 문자열 → boolean 타입으로

💡 단락평가

  • 첫 번째 값만으로 결과가 확실할 때 두 번째 값은 확인(평가)하지 않는 방법
    1. and 연산자는 두 값이 모두 참이어야 참 → 첫 번째 값이 거짓이면 두 번째 값 확인하지 않고 바로 거짓으로 판별
    2. or 연산자는 두 값중 하나만 참이라도 참 → 첫 번째 값이 참이면 두 번째 값 확인하지 않고 바로 참으로 판별
  • 파이썬에서 논리 연산자는 마지막으로 단락 평가를 실시한 값을 그대로 반환 → 논리 연산자는 무조건 bool을 반환하지 x




8.3 퀴즈






8.4 연습문제: 합격 여부 출력하기


korean >= 50 and english >= 50 or mathematics < 50 or science < 50




8.5 심사문제: 합격 여부 출력하기






Unit 9. 문자열 사용하기

9.1 문자열 사용하기


🔎 여러 줄로 된 문자열 사용하기

  • 작은 따옴표 3개로 시작하고 끝내면 됨.(큰 따옴표도 가능)


🔎 문자열 안에 작은따옴표나 큰따옴표 포함하기

  • 문자열 안에 작은따옴표를 넣고 싶다면 → 문자열을 큰따옴표로 묶어줌
  • 반대로도 가능, 그러나 작은따옴표 안에 작은따옴표, 큰따옴표 안에 큰따옴표는 X
    • 굳이 넣고 싶다면 작은따옴표 앞에 \ 붙이면 됨
  • 예외의 경우: 여러 줄로 된 문자열은 가능!




9.2 퀴즈






9.3 연습문제: 여러 줄로 된 문자열 사용하기


# 정답
s = """ Python is a programming language that lets you work quickly
and
integrate systems more effectively."""

# 작은따옴표도 가능
'''Python is a programming language that lets you work quickly
and
integrate systems more effectively.'''




9.4 심사문제: 여러 줄로 된 문자열 사용하기






Unit 10. 리스트와 튜플 사용하기

10.1 리스트 만들기


🔎 리스트 만들기



🔎 리스트에 여러 가지 자료형 저장하기

  • 자료형 섞어서 저장 가능


🔎 빈 리스트 만들기



🔎 range를 사용하여 리스트 만들기


  • 시작과 끝 지정 가능
  • 증가폭 사용




10.2 튜플 사용하기


🔎 튜플 → (값, 값, 값) or 값, 값, 값



🔎 요소가 한 개 들어있는 튜플 만들기

  • 괄호 안에 값 한 개를 넣고, 콤마를 붙임.


🔎 range를 사용하여 튜플 만들기



🔎 튜플을 리스트로 만들고 리스트를 튜플로 만들기

🧡 중요한 점

  • 리스트 생성 → [] 사용
  • 튜플 생성 → () 사용
    • 튜플의 경우 저장된 요소를 변경, 추가, 삭제 불가능

💡 리스트 언패킹(list unpacking)과 튜플 언패킹(tuple unpacking)

  • 리스트와 튜플의 요소를 변수 여러 개에 할당하는 것
  • 리스트 언패킹 형식으로 입력 값을 변수 여러 개에 저장 가능




10.3 퀴즈






10.4 연습문제: range로 리스트 만들기


a = list(range(5, -10, -2))

10.5 심사문제: range로 튜플 만들기






Unit 11. 시퀀스 자료형 활용하기

11.1 시퀀스 자료형의 공통 기능 사용하기


🔎 시퀀스 자료형 활용하기

  • 리스트, 튜플, range, 문자열 : 값이 연속적인 특징이 있음.

  • 시퀀스 자료형(sequence types)

    • 리스트, 튜플, range, 문자열처럼 값이 연속적으로 이어진 자료형


🔎 시퀀스 자료형의 공통 기능 사용하기

  • 특징: 공통된 동작과 기능 제공
  • 시퀀스 객체: 시퀀스 자료형으로 만든 객체
  • 요소(element): 시퀀스 객체에 들어있는 각 값


🔎 특정 값이 있는지 확인하기

  • 값 in 시퀀스 객체

  • 값 not in 시퀀스객체

🔎 시퀀스 객체 연결하기

    • 연산자 사용해 객체를 서로 연결해 새 객체 만들기 가능
  • range의 경우 리스트 또는 튜플로 만들어 연결해야 함.
  • 문자열은 + 연산자로 여러 문자열 연결 가능

💡 문자열에 숫자 연결하기

  • ‘문자열’ + str(정수)
  • ‘문자열 + str(실수)


🔎 시퀀스 객체 반복하기

    • 연산자 사용
  • 시퀀스 객체 * 정수
  • 정수 * 시퀀스객체

  • range의 경우는 사용 불가능 → 역시, 리스트 또는 튜플로 만들어 반복
  • 문자열은 * 연산자 가능




11.2 시퀀스 객체의 요소 개수 구하기


🔎 리스트와 튜플의 요소 개수 구하기

  • 리스트
  • 튜플


🔎 range의 숫자 생성 개수 구하기



🔎 문자열의 길이 구하기

  • 문자열도 시퀀스 자료형 → len 함수를 사용하면 됨.

  • 문자열의 길이는 공백까지 포함

  • 단, 문자열을 묶은 따옴표는 제외

  • UTF-8 : 한글 글자 하나는 3바이트로 표현

  • 파이썬 3에서 len → 문자 개수를 구해줌

  • 파이썬 2.7에서 len → 실제 바이트 수를 구해줌





11.3 인덱스 사용하기


🔎 인덱스(Index)

  • 시퀀스 객체에 [ ]를 붙이고 [ ] 안에 각 요소의 인덱스를 지정하면 해당 요소에 접근 가능

  • 시퀀스 객체의 인덱스는 항상 0부터 시작

  • 튜플, range, 문자열도 인덱스 지정 가능

  • range도 인덱스 접근 가능

  • 문자열은 요소가 문자이므로 인덱스로 접근 시 문자가 나옴.

💡 시퀀스 객체에 인덱스를 지정하지 않으면?

  • 시퀀스 객체에 인덱스를 지정하지 않은 상태 = 해당 객체 전체를 뜻함.

💡 gettime 메서드

  • 시퀀스 객체에서 [ ] 를 사용하면 실제로는 이 메소드를 호출해 요소를 가져옴.


🔎 음수 인덱스 지정하기

  • 음수 지정 시, 뒤에서부터 요소에 접근
  • 튜플, range, 문자열도 음수 인덱스 지정 가능
  • range도 가능

  • 문자열도 가능



🔎 인덱스의 범위를 벗어나면?



🔎 마지막 요소에 접근하기

  • len 함수 활용

  • 시퀀스 객체의 마지막 인덱스를 구할 때 종종 사용하는 방법



🔎 요소에 값 할당하기

  • 튜플, range, 문자열은 → 안에 저장된 요소 변경 불가 → 읽기 전용


🔎 del로 요소 삭제하기

  • 튜플, range, 문자열은 불가능.




11.4 슬라이스 사용하기


🔎 슬라이스 : 시작 인덱스부터 끝 인덱스-1 까지

  • 끝 인덱스는 가져오려는 범위에 포함되지 않으니, 실제로 가져오려는 인덱스보다 1을 더 크게 지정해야 함.

  • 시작 인덱스와 끝 인덱스를 같은 숫자로 지정하면 아무것도 가져오지 않음.



#### 🔎 리스트의 중간 부분 가져오기 ![](https://velog.velcdn.com/images/dlgkdis801/post/cb631fc4-c54f-4874-831a-5e759a052ee8/image.png)![](https://velog.velcdn.com/images/dlgkdis801/post/577594ce-989a-4131-aad3-b9e34029dc76/image.png)
  • 슬라이스는 음수를 인덱스로 지정 가능


🔎 인덱스 증가폭 사용

  • 시퀀스 객체[시작인덱스:끝인덱스:인덱스증가폭]


🔎 인덱스 생략하기

  • 리스트 a에서 a[:7]과 같이 시작 인덱스 생략 → 리스트 처음부터 끝 인덱스-1까지 가져옴

  • 끝 인덱스 생략 시

  • 둘 다 생략 = 리스트 전체



🔎 인덱스를 생략하며 증가폭 사용하기

  • 시퀀스객체[:끝인덱스:증가폭]

  • 끝 인덱스 생략하며 인덱스 증가폭 사용

  • 둘 다 생략하며 인덱스 증가폭 사용

  • 모두 생략한다면 → 리스트 전체와 동일함.

💡 인덱스 증가폭도 음수 적용이 가능한지?

  • 요소를 뒤에서부터 가져오는 것이기 때문에 가능


🔎 len 응용하기



🔎 튜플, range, 문자열에 슬라이스 사용하기

  • 튜플

  • range에 슬라이스 사용 → 지정된 범위의 숫자를 생성하는 range 객체를 새로 만듦.
    - range는 생성 범위만 표시됨.

  • 문자열

💡 slice 객체 사용하기

  • 객체 하나만 만들고 사용하는 방법도 있음.


🔎 슬라이스에 요소 할당하기

  • 요소 개수가 적어도 상관없음.

  • 할당한 요소 개수가 많으면 그만큼 리스트 요소 개수도 늘어남.

  • 인덱스 증가폭
    - 이때에는 슬라이스 범위의 요소 개수와 할당할 요소 개수가 정확히 일치해야 함.
    - 튜플, range, 문자열은 슬라이스 범위 지정하더라도 요소 할당 불가



🔎 del로 슬라이스 삭제하기

  • del 시퀀스 객체[시작인덱스:끝인덱스]
    - 인덱스 증가폭도 동일하게 튜플, range, 문자열은 del로 슬라이스 삭제 불가




11.5 퀴즈


  • 질문1의 경우, 맞는 것을 고르는 것으로 착각하여 감점됨.







11.6 연습문제: 최근 3년간 인구 출력하기


# 내가 쓴 답
year[5:8]
population[5:8]

# 정답
year[-3:]
population[-3:]





11.7 연습문제: 인덱스가 홀수인 요소 출력하기


# 내가 쓴 답
n[1:12:2]

# 정답
n[1::2]
또는
n[1:12:2]
또는
n[1:len(n):2]




11.8 심사문제: 리스트의 마지막 부분 삭제하기






11.9 심사문제: 문자열에서 인덱스가 홀수인 문자와 짝수인 문자 연결하기






Unit 12. 딕셔너리 사용하기

12.1 딕셔너리 만들기


🔎 딕셔너리 만들기

  • {} 안에 키: 값 형식으로 저장
  • 각 키와 값은 , 로 구분


🔎 키 이름이 중복되면? → 뒤에 있는 값



🔎 딕셔너리의 키의 자료형

  • 문자열, 정수, 실수, bool까지 다 사용 가능, 자료형 섞어서도 사용 가능
  • 값에는 리스트, 딕셔너리 등 포함해 모든 자료형 사용 가능
  • 단, 키에는 리스트와 딕셔너리 사용 불가능


🔎 빈 딕셔너리 만들기

  • {}만 지정하거나 dict 사용


🔎 dict로 딕셔너리 만들기

  1. 키=값 형식으로 딕셔너리 만들기 가능
    • 키에 ‘ ‘나 “ “를 사용하면 안됨.
    • 키는 딕셔너리 만들고 나면 문자열로 바뀜.
  2. zip 함수 이용
    • 키가 들어있는 리스트(또는 튜플)와 값이 들어있는 리스트(또는 튜플)를 차례대로 zip에 넣은 뒤 dict에 넣으면 됨.
  3. 리스트 안에 (키, 값) 형식의 튜플을 나열
  4. dict 안에서 중괄호로 딕셔너리를 생성하는 방법




12.2 딕셔너리의 키에 접근하고 값 할당하기


🔎 딕셔너리의 키에 접근

  • 딕셔너리 뒤에 [ ] 사용


🔎 딕셔너리에 키가 있는지 확인하기 → in 연산자 사용

  • 물론 not in도 사용 가능


🔎 딕셔너리의 키 개수 구하기





12.3 퀴즈






12.4 연습문제: 딕셔너리에 게임 캐릭터 능력치 저장하기


camille['health']
camille['movement_speed']




12.5 심사문제: 딕셔너리에 게임 캐릭터 능력치 저장하기






핵심 정리

핵심 정리


🔎 bool

  • True, False

  • 비교 연산자, 논리 연산자의 판단 결과로 True, False를 사용

    • 비교 연산자
    • 논리 연산자


#### 🔎 문자열
  • ‘ ‘ 또는 “ “로 표현
'Hello, world!'
"Hello, world!"


🔎 여러 줄로 된 문자열

  • '''(작은따옴표 3개)로 시작해서 '''로 닫기
  • """(큰따옴표 3개)로 시작해서 """로 닫기
'''Hello, world!
안녕하세요.
Python입니다.'''
 
"""Hello, world!
안녕하세요.
Python입니다."""


🔎 리스트

리스트 = [,,]         # 리스트 만들기
리스트 = []                   # 빈 리스트 만들기
리스트 = list()               # 빈 리스트 만들기
리스트 = list(range(횟수))    # range로 리스트 만들기
 
리스트[인덱스]                # 리스트의 요소에 접근
리스트[0]                     # 리스트의 인덱스는 0부터 시작하므로 첫 번째 요소
리스트[인덱스] =# 리스트의 요소에 값 저장


🔎 range

range(횟수)
range(시작,)
range(시작,, 증가폭)


🔎 튜플

튜플 = (,,)          # 튜플 만들기
튜플 =,,# 괄호 없이 튜플 만들기
튜플 = ()                    # 빈 튜플 만들기
튜플 = tuple()               # 빈 튜플 만들기
튜플 = tuple(list())         # tuple에 list()를 넣어서 빈 튜플 만들기
튜플 = tuple(리스트)         # tuple에 리스트를 넣어서 튜플 만들기
튜플 = tuple(range(횟수))    # range로 튜플 만들기
 
튜플[인덱스]                 # 튜플의 요소에 접근
튜플[0]                      # 튜플의 인덱스는 0부터 시작하므로 첫 번째 요소
 
튜플 = (, )                # 요소가 한 개인 튜플 만들기
튜플 =,                   # 요소가 한 개인 튜플 만들기


🔎 시퀀스 자료형

  • 파이썬에서 리스트(list), 튜플(tuple), range, 문자열(str)과 같이 값이 연속적으로 이어진 자료형
  • 시퀀스 객체 : 시퀀스 자료형으로 만든 객체
  • 요소(element) : 시퀀스 객체에 들어있는 각 값


🔎 시퀀스 자료형의 공통 기능

in 시퀀스객체             # 시퀀스 객체에 특정 값이 있는지 확인not in 시퀀스객체         # 시퀀스 객체에 특정 값이 없는지 확인
 
시퀀스객체1 + 시퀀스객체2    # 시퀀스 객체를 서로 연결하여 새 시퀀스 객체를 만듦
시퀀스객체 * 정수            # 시퀀스 객체를 특정 횟수만큼 반복하여 새 시퀀스 객체를 만듦
정수 * 시퀀스객체            # 시퀀스 객체를 특정 횟수만큼 반복하여 새 시퀀스 객체를 만듦
 
len(시퀀스객체)              # 시퀀스 객체의 요소 개수(길이) 구하기
 
시퀀스객체[인덱스]           # 시퀀스 객체의 요소에 접근
시퀀스객체[0]                # 시퀀스 객체의 인덱스는 0부터 시작하므로 첫 번째 요소
시퀀스객체[-음수]            # 인덱스를 음수로 지정하면 뒤에서부터 요소에 접근, -1은 뒤에서 첫 번째
시퀀스객체[인덱스] =# 시퀀스 객체의 요소에 값 저장
 
del 시퀀스객체[인덱스]       # 시퀀스 객체의 요소를 삭제


🔎 시퀀스 자료형의 슬라이스

시퀀스객체[시작인덱스:끝인덱스]                 # 지정된 범위의 요소를 잘라서 새 시퀀스 객체를 만듦
시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭]    # 인덱스 증가폭을 지정하면 해당 값만큼 
                                                # 인덱스를 증가시키면서 요소를 가져옴
 
시퀀스객체[:끝인덱스]      # 시작 인덱스를 생략하여 객체의 처음부터 끝 인덱스 - 1까지 가져옴
시퀀스객체[시작인덱스:]    # 끝 인덱스를 생략하여 시작 인덱스부터 마지막 요소까지 가져옴
시퀀스객체[:]              # 시작 인덱스와 끝 인덱스를 생략하여 객체 전체를 가져옴
 
시퀀스객체[0:len(시퀀스객체)]     # len을 응용하여 객체 전체를 가져옴
시퀀스객체[:len(시퀀스객체)]      # 시작 인덱스 생략, len을 응용하여 객체 전체를 가져옴
 
시퀀스객체[:끝인덱스:증가폭]      # 객체의 처음부터 증가폭만큼 인덱스를 증가시키면서 
                                  # 끝 인덱스 - 1까지 요소를 가져옴
시퀀스객체[시작인덱스::증가폭]    # 시작 인덱스부터 증가폭만큼 인덱스를 증가시키면서 
                                  # 마지막 요소까지 가져옴
시퀀스객체[::증가폭]              # 객체 전체에서 증가폭만큼 인덱스를 증가시키면서 요소를 가져옴
 
시퀀스객체[::]                    # 객체 전체를 가져옴, 시퀀스객체[:]와 같음
 
시퀀스객체[시작인덱스:끝인덱스] = 시퀀스객체                 # 범위를 지정하여 여러 요소에 값 할당
시퀀스객체[시작인덱스:끝인덱스:인덱스증가폭] = 시퀀스객체    # 증가폭만큼 인덱스를 건너뛰면서 할당
 
del 시퀀스객체[시작인덱스:끝인덱스]    # 특정 범위의 요소를 삭제(원본 객체가 변경됨)


🔎 딕셔너리

딕셔너리 = {1:1,2:2}    # 딕셔너리 만들기
딕셔너리 = {}                      # 빈 딕셔너리 만들기
딕셔너리 = dict()                  # 빈 딕셔너리 만들기
 
딕셔너리[]                       # 딕셔너리에서 키로 값에 접근
딕셔너리[] =# 딕셔너리에서 키에 값 할당in 딕셔너리                     # 딕셔너리에 특정 키가 있는지 확인not in 딕셔너리                 # 딕셔너리에 특정 키가 없는지 확인
 
len(딕셔너리)                      # 딕셔너리의 키 개수(길이) 구하기






파이썬 300제

001 - 020


01. 파이썬 시작하기

  • 001

  • 002

  • 003

  • 004

  • 005

    • \t : tab
    • \n : 줄바꿈(개행)
  • 006

    • 오늘은 일요일 → 두 개의 단어가 한 칸 떨어져서 나옴.

  • 007

  • 008

  • 009

  • 010

  • 011


  • 012


  • 013

문제 정답
s = "hello"
t = "python"
print(s+"!", t)
  • 014

    • 예상 값 8 (∵ 연산자 우선순위에 의해 *가 먼저 실행될 것이기 때문)
  • 015 ❌
    - 값 타입은 int형으로 예상 → 파이썬의 경우에는 “”까지 변수에 등록 시 모두 출력되기 때문에 str형임!

        
  • 016

  • 017

  • 018


  • 019

  • 020




051 - 080


04. 파이썬 리스트

  • 051

  • 052

  • 053
    • 슬라이싱 이용

문제 정답
movie_rank = ['닥터 스트레인지', '스플릿', '럭키', '배트맨']
movie_rank.insert(1, "슈퍼맨")
print(movie_rank)
  • 054

  • 055

  • 056

  • 057

  • 058

  • 059

  • 060

  • 061

  • 062

  • 063

  • 064

  • 065 ❌
    • 슬라이싱할 경우 출력 예시에 리스트 []가 붙어서 나오기 때문에 오답.
    • 재풀이
  • 066

    문제 정답
interest = ['삼성전자', 'LG전자', 'Naver', 'SK하이닉스', '미래에셋대우']
print(" ".join(interest))
  • 067

문제 정답
interest = ['삼성전자', 'LG전자', 'Naver', 'SK하이닉스', '미래에셋대우']
print("/".join(interest))
  • 068

    • join 사용 안 할 경우
  • 069
  • 070




05. 파이썬 튜플

  • 071

  • 072

  • 073 ❌

    • 정수로 인식됨.
    • 재풀이: 반드시 쉼표를 입력해줘야 함.
  • 074

    >> t = (1, 2, 3)
    >> t[0] = 'a'
    Traceback (most recent call last):
      File "<pyshell#46>", line 1, in <module>
        t[0] = 'a'
    TypeError: 'tuple' object does not support item assignment
    • 튜플은 요소의 수정이 불가능함.
  • 075

    t = 1, 2, 3, 4
    • 여기에서 t가 바인딩하는 데이터 타입은 튜플이다. 괄호 없이도 사용가능하기 때문.
  • 076

    • 튜플은 수정이 안되기 때문에 동일 변수로 튜플을 새로 만들기만 하면 이전 것은 삭제됨.
      ```python
      t = ('A', 'b', 'c')
      ```
  • 077

  • 078

  • 079

    • 실행결과 예측
      temp = ('apple', 'banana', 'cake')
      a, b, c = temp
      print(a, b, c)
      # 실행 결과
      apple banana cake
  • 080






081 - 100


06. 파이썬 딕셔너리

  • 081 ❌
    • start expression을 사용했으나, 조건이 틀림.

    • 재풀이

  • 082

문제 정답
scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]
a, b, *valid_score = scores
print(valid_score)
  • 083
문제 정답
scores = [8.8, 8.9, 8.7, 9.2, 9.3, 9.7, 9.9, 9.5, 7.8, 9.4]
a, *valid_score, b = scores
print(valid_score)
  • 084
  • 085
  • 086
  • 087
  • 088
  • 089
  • 090
>> icecream = {'폴라포': 1200, '빵빠레': 1800, '월드콘': 1500, '메로나': 1000}
>> icecream['누가바']
Traceback (most recent call last):
  File "<pyshell#69>", line 1, in <module>
    icecream['누가바']
KeyError: '누가바'
  • 딕셔너리에 ‘누가바’라는 키가 없기 때문.

  • 091

  • 092

  • 093

  • 094

  • 095

  • 096

  • 097

  • 098

  • 099 ❌

    • dict를 사용해야 형태에 맞게 딕셔너리로 저장됨.

    • 재풀이

  • 100

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글