혼공파 1주차

JIN·2023년 7월 9일
0

혼공단 10기

목록 보기
1/7
post-thumbnail

🔎 파이썬(Python)


프로그램(program)

  • Pro(미리) + Gram(작성도니 것) = Program(미리 작성된 것)
  • 프로그램 = 미리 작성된 것 = 진행 계획

프로그래밍(programming)

  • 프로그램을 만드는 것

컴퓨터 프로그램(computer program)

  • 컴퓨터가 무엇을 해야 할지 미리 작성한 진행 계획

프로그래밍 언어(programming language)

  • 컴퓨터가 이해할 수 있는 이진코드로 변환되는 것을 목표로 만들어진, 사람이 쉽게 이해할 수 있는 형태의 언어
  • 대표적인 포로그래밍 언어는 Python, C, C#, C++, JAVA, Ruby, Java Script 등
  • 이진코드(binary digit) : 0과 1로 이루어진 코드를 이진코드라 함

소스 코드(source code)

  • 프로그래밍 언어로 작성한 프로그램

파이썬(Python)

  • 1991년 귀도 반 로섬(Guido van Rosum)이 발표한 프로그래밍 언어

파이썬의 장점

  • 문법이 간단해서 배우기 쉬움
  • 많은 사람이 사용하고 있어서 다양한 분야에서 활용할 수 있음(웹 서버, 해킹 도구, IOT, 인공지능 등)
  • 대부분의 운영체제(윈도우, 맥, 리눅스)에서 같은 방법으로 사용 가능함

파이썬의 단점

  • C언어 보다 10~350배 느림
  • 쉽게 사용할 수 있다는 성질과 빠르다는 성질이 반비례 함
  • 파이썬은 쉽게 이용가능하나 느리고, C는 어렵지만 빠름 거대한 게임은 C++, C#등의 프로그래밍 언어를 사용함



🔎 파이썬을 배우기 위해 준비해야 할 것들


텍스트 에디터(text editor)

  • 글자를 입력할 수 있는 모든 종류의 프로그램
  • 메모장도 텍스트 에디터가 가능하나, 프로그래밍 작성 시 사용은 가능하나 프로그래밍 언어를 쉽게 작성할 수 있도록 도와주는 텍스트 에디터를 사용하는 것이 좋음
  • 텍스트 에디터의 종류에는 Visual Studio Code, Sublime Text, Atom등이 있음

개발환경(development environment)

  • 컴퓨터, 텍스트 에디터, 파이썬 인터프리터 등과 같이 프로그래밍을 할 수 있는 환경
  • 텍스트 에디터를 포함해서 컴파일러 버전과 같은 개발 플랫폼을 말함
  • 웹 프로그래밍에선 웹 브라우저도 개발 환경이 됨
  • 개발 환경이 달라지면 프로그램의 작동 결과가 다를 수 있음

통합 개발 환경(IDE; Integrated Development Environment)

  • 텍스트 에디터와 코드 실행기, 이 두가지를 모두 포함하고 있는 프로그램
  • 프로젝트 생성, 자동 코드 완성, 디버깅 기능을 제공하는 환경을 말함
    Ex) Java의 Eclipse, C언어의 Visual Studio
    * 디버깅 : 프로그램 내의 코드 오작동을 찾아내는 것

코드실행기

  • 텍스트 에디터로 만든 코드를 실행할 수 있는 것

인터프리터(interpreter)

  • 프로그래밍 소스 코드를 곧바로 실행해 주는 프로그램
  • 한 번에 코드 한 줄씩 읽어 실행
  • 파이썬 코드를 실행할 수 있는 도구는 파이썬 인터프리터라 함

대화형 셸(interactive shell)

  • 컴퓨터와 상호 작용하는 공간이라는 의미에서 대화형 셸이라고 부름
  • 프롬프트라고 불리는 >>>에 코드를 한 줄 한 줄 입력하면 곧바로 실행결과를 볼 수 있음



🔎 파이썬 용어들


문장(statement)

  • 표현식이 하나 이상 모인 것
  • 파이썬에서는 한 줄이 하나의 문장이 됨
  • 문장들이 모이면 프로그램(program)이 됨

표현식(expression)

  • 어떠한 값을 만들어 내는 간단한 코드
  • 값은 숫자, 수식, 문자열 등과 같은 것을 의미함
  • +, -와 같이 기호가 아무것도 없이 있는 경우 즉, 어떠한 값도 만들어 낼 수 없으면 표현식이 아님

키워드(keyword)

  • 의미가 부여된 특별한 단어
  • 언어 내에서 문법적인 용도로 사용되고 있는 단어
  • 사용자가 지정하는 이름에는 사용 불가
  • 단어가 키워드인지 아닌지 확인하고 싶을 경우에는 아래의 코드를 사용해서 확인한다.
import keword
print(keyword.kwlist)

식별자(identifier)

  • 함수나 변수의 이름을 붙일 때 사용하는 단어
    식별자를 만들 때는 특별한 규칙을 따라야 함
    - 키워드를 사용하면 안 됨
    - 특수 문자는 언더 바(_)만 허용됨
    - 숫자로 시작하면 안 됨
    - 공백을 포함할 수 없음

식별자 종류

  1. 스네이크 케이스(Snake_case)
    - 단어 사이에 _기호를 붙여 맏든 식별자
    - 스네이크 케이스로 작성되어 있고 뒤에 괄호가 붙어 있으면 함수
    - 스네이크 케이스로 작성되어 있고 괄호가 없으면 변수
    Ex) item_list, login_status, roate_angle

  1. 캐멀 케이스(CamelCase)
    - 단어들의 첫 글자를 대문자로 만든 식별자
    - 클래스 식별자를 만들 때 사용함
    - 캐멀케이스로 작성되에 있으면 클래스임
    Ex) ItemList, LoginStatus, RotateAngle

  1. 파스칼 케이스(Pascal case)
    - 캐멀 케이스 중에서 첫 번째 글자가 대문자인 것

변수(variable)

  • 값을 저장할 때 사용하는 식별자
  • 이름은 변수이지만 숫자뿐만 아니라 모든 자료형을 저장 가능함
    - 선언 : 변수를 사용하려면 식별자는 무엇이고, 어떤 데이터를 가진다라는 것을 알려줘야 하는데, 이는 변수를 '선언한다'라고 함
    - 할당 : 변수에 값을 넣는 것을 '할당'한다고 함
    --> 메모리에 변수의 값이 들어갈 공간을 할당하므로
    - 참조 : 변수에 접근 하는 것을 '참조한다'라고 함
    --> 결국 변수가 저장된 메모리에 접근하는 것인데, 이 메모리의 '주소'를 참조한다고 생각하면 됨


🔎 함수(function)


코드의 집함

  • 식별자 뒤에 괄호가 붙어 있으면 해당 식별자는 함수

함수 호출

  • 함수를 사용하는 것.
  • 함수를 호출할 땐느 괄호 내부에 여러 가지 자료를 넣게 되는데, 이러한 자료를 '매개변수'라고 함
  • 함수를 호출해서 최종적으로 나오는 결과를 '리턴값'이라고 함

함수 선언(정의)

  • 함수가 어떤 매개변수를 받아 어떤 동작을 하고 어떤 값을 반환할지 기술하는 것

주석(comment)

  • 프로그램 실행에는 영향이 없음
  • 코드에 설명을 붙이기 위해서 사용하는 것
  • 주석으로 처리하고자 하는 부분에 #을 붙여 처리함
  • 여러줄 주석을 하고 싶으면 """또는 '''를 사용해서 사용함
# 안녕하세요 혼공단 10기에 참여하게 되었습니다.
#6주동안 다들 잘 부탁드립니다.

"""
안녕하세요
혼공단 10기에 참여하게 되었습니다.
"""

'''
6주동안 다들
잘 부탁드립니다
'''

연산자(operator)

  • 연산에 사용되는 표시나 기호
  • 스스로 값이 되는 것은 아니고 값과 값 사이에 무언가 기능을 적용할 때 사용하는 것
  • 단독으로 쓰일 때는 아무 의미를 갖지 못 함

리터럴(literal)

  • 소스코드 내에서 직접 입력된 값
  • 어떠한 값 자체를 의미함
  • 자료(data)라고도 함

출력: print()

  • 출력을 하고 싶을 때 print()함수를 사용하여 출력함
  • 함수의 괄호 안에 출력하고 싶은 것을 나열해서 사용함
  • 하나만 출력하고 싶으면 1개만 입력하고 여러 개 출력하고 싶으면 여러 개 연결해서 적으면 됨
#print()함수 출력 형식
print(출력1, 출력2, ...)

#하나만 출력
print("Hello Python Programming...!"

#여러 개 출력
print("혼공단", "10", "기")

줄바꿈하기

  • print()함수 괄호 안에 아무것도 입력하지 않으면 줄바꿈을 함
print()


🔎 자료형과 문자열


자료형(data type)

  • 자료의 형태
  • 자료형에 따라 컴퓨터가 처리하는 방법이 달라짐

숫자

  • 소수점이 없는 정수형과 소수점이 있는 실수형으로 구분
  • 사칙 연산자(+, -, *, /)와 정수 나누기 연산자(//), 나머지 연산자(%), 제곱 연산자(**) 사용

문자열(string)

  • 문자의 나열
  • 큰따옴표 혹은 작은따옴표로 입력
    문자열 연결 연산자(+), 문자열 반복 연산자(*), 문자열 선택 연산자([ ]), 문자열 범위 선택 연산자([:]) 사용

불(bool)

  • True와 False를 나타내는 값
  • 반드시 첫 글자는 대문자

자료형 확인하기

  • type()함수를 사용하여 괄호 내부에 자료를 넣으면 그 자료가 어떤 자료형을 가지고 있는지 확인 가능함

문자열 만들기

  • 큰따옴표(")로 감싸서 만들거나 작은따옴표(')로도 문자열을 만들 수 있음
print("안녕하세요")
print('안녕하세요')

문자열 내부에 따옴표 넣기

  • 큰따옴표를 넣고 싶으면 작은따옴표 안에 큰따옴표를 사용함
  • 작은따옴표를 넣고 싶으면 큰따옴표 안에 작은따옴표를 사용함
print('"안녕하세요"라고 말했습니다')  #큰따옴표를 나타내고 싶을 때
print("'안녕하세요'라고 말했습니다.")   #작은따옴표를 나타내고 싶을 때

이스케이프 문자(escape character)

  • 역슬래시() 기호와 함께 조합해서 사용하는 특수한 문자를 의미함

이프케이프 문자 종류

  • \" : 큰따옴표를 의미함
  • \' : 작은따옴표를 의미함
  • \n : 줄바꿈을 의미함
  • \t : 탭을 의미함
  • \ : 역슬래시를 의미함
print("\'안녕하세요\'라고 말했습니다.")
print("\"안녕하세요\"라고 말했습니다.")
print("안녕하세요\n라고 말했습니다.")
print("안녕하세요\t라고 말했습니다.")
print("안녕하세요\\라고 말했습니다.")

여러 문자열 만들기

  • 큰따옴표 또는 작은따옴표를 세 번 반복한 기호를 사용함
  • Enter를 누르는 곳마다 줄바꿈이 일어남
  • 줄바꿈 없이 나타내고 싶으면 \기호를 사용함
#줄바꿈이 있는 경우
print("""안
녕
하
세
요""")

#줄바꿈이 없는 경우
print("""\
안
녕
하
세
요\
""")

문자열 연산자

  • + : 문자열 연결 연산자
  • * : 문자열 반복 연산자
print("안녕" + "하세요")
print("안녕" * 2)

문자선택 연산자 인덱싱([])

  • 문자열 내부의 문자 하나를 선택하는 연산자
  • 대괄호[]안에 선택할 문자의 위치를 지정함 이 숫자를 인덱스(index)라 함
  • 제로 인덱스(zero index)형식을 따름(0부터 시작)
  • 맨 뒤의 내용을 선택하고 싶으면 -1부터 시작함
print("안녕하세요" [0]) #안 출력
print("안녕하세요" [-1]) #요 출력

문자열 범위 선택 연산자 슬라이싱([:])

  • 문자열의 특정 범위를 선택할 때 사용하는 연산자
  • 범위는 대괄호 안에 위치를 콜론(:)으로 구분해서 지정함
  • 마지막 숫자를 포함하지 않음
  • 뒤의 값을 생략하거나 앞의 값을 생략할 경우 지정한 범위부터 끝까지, 처음부터 지정한 범위까지임을 의미함
print("안녕하세요" [0:2]) #안녕 출력
print("안녕하세요" [:3]) #안녕 출력
print("안녕하세요" [2:]) #하세요 출력


🔎 숫자


정수형(int)

  • 소수점이 없는 숫자

실수형(float)

  • 소수점이 있는 숫자

부동 소수점/실수(floating point)

  • 소수점이 잇는 실수 데이터를 저장하는 방식
  • '부동'은 '떠다니다'의 의미. 소수점이 떠다닌다는 의미에서 부동 소수점이라고 함
  • 최상위 비트(MSB: Most Significant Bit)를 부호로 결정
  • 최상위 비트가 0이면 양수, 1이면 음수

숫자 연산자

  • + : 덧셈 연산자 (숫자 + 숫자)
  • - : 뺄셈 연산자 (숫자 - 숫자)
  • * : 곱셈 연산자 (숫자 * 숫자)
  • / : 나눗셈 연산자 (숫자 / 숫자)
  • // : 정수 나누기 연산자(숫자 // 숫자)
  • % : 나머지 연산자
  • ** : 제곱 연산자

연산자 우선순위

  • 곱셈과 나눗셈이 있는 경우 : 곱셈, 나눗셈 먼저
  • 같은 우선순위를 가지는 연산자 : 왼쪽에서 오른쪽
  • 괄호가 있는 경우 : 괄호 먼저
  • 문자열도 위와 동일함

에러 종류

  • IndexError(index out of range) 예외 : 리스트/문자열의 수를 넘는 요소/글자를 선택할 때 발생
  • Syntax Error(구문오류) : 작성한 코드에 뭔가 문제가 있어서 아예 실행조차 되지 않는다는 의미. 대표적인 오류
  • TypeError 예외 : 서로 다른 자료를 연산할 경우에 나타남


🤔 기본미션 p. 101 3~5번 실행 결과 쓰고 인증하기



3. 다음 프로그램의 실행 결과를 예측해 보세요.

>>> print("# 연습 문제")
# 연습 문제

>>> print("\\\\\\\\")
\\\\

>>> print("-" * 8)
--------

4. 다음 프로그램의 실행 결과를 예측해 보세요. 그런데 이 예제를 실행하면 오류가 발생합니다. 어떤 오류가 발생합니다. 몇 행에서 어떤 오류가 발생할까요? 그리고 그 이유는 무엇인지 적어 보세요.

>>> print("안녕하세요"[1])>>> print("안녕하세요"[2])>>> print("안녕하세요"[3])>>> print("안녕하세요"[4])>>> print("안녕하세요"[5])
IndexError: string index out of range # 인덱스의 범위를 넘었으므로 발생함

5. 다음 프로그램의 실행 결과를 예측해 보세요

>>> print("안녕하세요"[1:3])
녕하

>>> print("안녕하세요"[2:4])
하세

>>> print("안녕하세요"[1:])
녕하세요

>>> print("안녕하세요"[:3])
안녕하
profile
개발을 '잘'하고 싶다는 마음은 항상 늘 지니고 있는 사람

0개의 댓글