관리 메뉴

공부기록용

Python 기초 01 본문

📚강의록📚/Python

Python 기초 01

과부하가즈아 2023. 5. 19. 15:04

프로그래밍 언어는 컴퓨터에게 명령을 전달하기 위해 사용하는 언어이다. 프로그래밍 언어로 작성한 명령문을 '코드'라고 한다. 더불어 '코드'를 작성하는 작업을 '코딩'이라고 한다.

 

코드 에디터 열기 : ctrl + N

코드 에디터 저장 : ctrl + S

파이썬파일(코드)실행하기 : F5 

 

Replit: the collaborative browser based IDE - Replit

 

Replit: the collaborative browser based IDE

Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.

replit.com

 

 

Print 함수

'프린트 함수'라고 불리는 print(x)는 'x를 결과 화면에 출력해줘' 라는 뜻의 명령문으로, 가장 기본적인 명령문 중 하나이다. x자리에는 결과 화면에 출력하고자 하는 데이터(정보)를 python문법에 맞게 작성해야 한다.

print("이름")

대화형 shell에서는 한 줄에 하나의 명령만 입력해야 한다.

 

 

변수

변수란 '데이터에 붙이는 이름표'이다. 변수를 이용하면 이름표를 붙여 둔 데이터를 저장해두었다가 필요할 때마다 재사용할 수 있게 된다. 

 

변수를 통해 데이터를 저장하는 방법(=데이터에 이름표를 붙여 저장하는 방법) 변수에 값을 저장하면, 변수(변수이름)를 저장된 데이터 대신 사용할 수 있다.

변수이름 = 데이터 

 

변수의 이름을 정할때 변수의 이름은 기본적으로 '짓는 사람 마음대로' 지어줄 수 있지만, 몇 가지 제약이 있다.

  • 변수명에는 오직 문자와 숫자, 그리고 기호 _ 만이 포함될 수 있다.
  • 변수명에 공백을 포함할 수 없다.
  • 변수명 첫 번째 글자로 숫자는 올 수 없다.

 

변수는 데이터를 저장하기 위해 사용한다. 변수는 한 번에 하나의 데이터만 저장할 수 있으며, 저장된 값을 바꿔가며 사용할 수 있다.

연산식이 와도됨
저장된 값을 바꿔가면서 사용해도 된다.

 

주석

코드의 양이 많아지거나 내용이 복잡해질 경우, 코드 관리를 위해 코드에 메모를 남겨둘 수 있다. 메모 역할을 하는 텍스트를 '주석'이라 하는데, 주석은 사람에게는 보이지만 컴퓨터에게는 보이지 않아 실행 결과에 영향을 끼치지 않는다. (#샾, ' '작은 따옴표)

#주석을 한 줄씩 남기고 싶을 때

'''여러 줄에 걸쳐 주석을
남기고 싶을때는
이렇게'''

'''
여러 줄에 걸쳐 주석을
남기고 싶을때는
이렇게
'''

 

 

자료형

자료형(date type)이란 프로그램 내에서 사용할 데이터(정보)를 어떤 형태로 표현할 것인지를 정의한 것이다. 프로그램을 만들기 위해서는 가장 먼저 데이터를 표현하는 다양한 형태, 즉 자료형에 대해 이해해야 한다. 

 

python 프로그램 내에서 처리되는 모든 데이터는 자료형에 의해 표현된다. 다음 python으로 처리할 수 있는 기본 자료형 몇 가지이다.

  • 숫자
  • 문자열
  • 불(bool)
  • 리스트
  • 튜플
  • 딕셔너리

 

숫자

숫자는 정수와 실수로 구분할 수 있다. 정수를 출력하는 명령문의 예. 양의 정수, 음의 정수, 그리고 0까지가 정수이다. 소수 점 이하 숫자가 존재한다.

# 정수
print(21)
print(-21)
print(0)

# 실수
print(10.32)
print(-23.01)
print(0.51)

연산

이러한 숫자로 산술 연산이 가능하다. 연산이란 '식이 나타낸 일정한 규칙에 따라 계산함'을 뜻한다. 사용자는 python코드를 통해 연산을 처리하는 명령문, 즉 '연산식'을 만들 수 있는데, 이를 위해 사용하는 기호를 '연산자'라고 한다. 

 

산술연산은 더하기, 빼기, 등 수를 이용한 계산이다. 두 개의 숫자 데이터를 피연산자로 받아서 하나의 숫자 데이터를 결과로 반환한다.

 

산술 연산을 처리하는 식을 사용하면 해당 식은 연산 결과를 반환한다. 식을 통해 언어낸 결과 값이 식을 대체하게되는데 즉, 식이 데이터로 대체된다는 의미이다. (실제 코드가 바뀌는 것이 아닌, 실행 시의 결과가 반영된다는 뜻)

-> /의 값은 실수로 출력된다.(나머지 값이 있을 수 있으니까)

 

-> 연산자 우선순위 / 괄호로 묶어주면 먼저 계산가능

 

문자열(string)

문자열은 문자, 숫자, 특수문자 등 기호를 조합해 만들 수 있는 '기호의 집합'이다. 문자열 데이터를 표현할 때는 따옴표로 시작해서 따옴표로 끝내야 한다. 

 

작은 따옴표, 큰 따옴표 모두 사용이 가능하며 시작하는 기호와 끝나는 기호는 같아야 한다.

문자열1 = 'ABCDE12345!@#'
문자열2 = "가나다라마*&^%"

 

문자열은 따옴표로 시작해서 따옴표로 끝난다. 이때 따옴표를 연달아 3개씩 사용한 형태로도 문자열을 표현할 수 있다. 따옴 표 3개의 형태는 독립적으로 사용될 때는 주석의 역할을 수행하나, 데이터로써 사용될 때는 문자열의 역할을 한다.

# 이것도 문자열
문자열3 = '''안녕하세요!'''
문자열4 = """안녕하세요!"""

 

문자열의 각 형태는 서로의 부족한 부분을 채워주는데 그러므로 코드 작성자는 상황에 맞게 필요한 형태를 선택하여 사용하면 된다.

#중간에 작은 따옴표 포함이 불가능(작은)
moonja1 = 'Tom's Dinner'

#이 형태는 가능(큰)
moonja2 = "Tom's Dinner"

 

이스케이프 코드

문자열 안에 문자를 포함시킬 때, 해당 문자를 직접 입력하지 않고 이를 대체할 수 있는 '기호의 조합'을 대신 입력하는 경우가 있다. 이때 사용되는 기호의 조합을 가리켜 '이스케이프 코드'라고 한다. (코드 상에서 \백슬레시 ₩와 같다)?

 

숫자를 피연산자로 받는 더하기와 곱하기 연산자를 문자열 대상으로도 사용할 수 있다

문자열과 문자열을 더하면 문자열 이어붙이기가 되고(공백도 표현가능하며 문자열끼리만 가능하다.), 문자열과 숫자를 곱하면 문자열을 반복하는것이 된다.

 

문자열 포맷팅

문자열 포맷팅이란 문자열 유형의 서식 데이터를 만들고, 서식 안에 데이터를 삽입하여 문자열을 완성하는 작업을 말한다.

 

데이터가 삽입될 자리가 마련된 '문자열 서식'은 포맷 코드(format code)를 이용해 만들 수 있다. 포맷 코드는 퍼센티지 기호%와 다른 기호들을 조합해서 만드는 조합 기호이다. 포맷 코드는 서식 내에서 '빈 칸'의 역할을 한다. 

 

포맷 코드가 포함된 문자열은 서식이 되며, 퍼센티지 기호%를 이용해 서식에 데이터를 삽입할 수 있다. 데이터 삽입 결과는 반환된다.

두 가지의 정보를 기입하고 싶을 때는 ()로 묶어서 (정보1, 정보2)로 나타내어준다.

 

 

포맷 코드에는 숫자를 삽입해 문자열의 길이를 늘리거나 줄여 문자열의 형태를 조정할 수 있다. 숫자는 퍼센티지% 기호 뒤에 삽입한다. 

%8s로 8개의 문자여야 하는데 hello는 5개의 문자로 3개는 공백으로 나타나게 된다.

 

Python 3.6 버전부터는 f 문자열 포맷팅 기능을 사용할 수 있다. f 문자열은 문자열 앞에 접두어로 f를 입력하고, 문자열 사이의 중괄호 안에 삽입할 데이터를 입력하는 방식이다.

f를 사용하여 문자열 사이에 { }를 통해 숫자를 넣을 수 있다.


input함수

input(x)는 사용자로부터 키보드 입력을 받고, 입력받은 값을 반환해주는 함수이다. 이 함수의 괄호 안에는 입력을 받기 전 사용자에게 표시할 메세지를 입력한다.

 

프로그램 실행 중 input(x)함수가 동작할 차례가 되면, 프로그램은 사용자가 데이터를 입력할 때까지 기다린다.

input(x) 입력시 사용자의 console데이터 입력을 기다림

값을 입력하면 input()에서 반환을 기다리게 됨


console에 입력한 good bye가 반환되어 출력된다.



input(x)함수는 사용자로부터 입력받은 값을 문자열로 처리한다. 따라서 다음과 같은 코드를 작성하면 에러가 발생한다.

 

 

문자열 값의 형태가 숫자형 데이터와 같을 경우, 문자열을 정수나 실수로 바꾸어 주는 python함수를 이용해 '형 변환'을 할 수 있다. 형 변환 결과는 반환된다. int(x)함수와 float(x)함수를 사용한다.

number = int(result)를 통해 문자열인 input()의 값을 정수로(int) 한 번 변환해주는 과정을 거쳐야한다.

 

 

type(x)함수는 괄호 안에 주어진 데이터의 자료형을 반환해주는 함수이며 반환 결과는 다음과 같은 형태를 띈다. (출력 값이 어떤 함수를 이용해 나온것인지 알 수 있게 된다.)


불리언(blooean)

숫자나 문자열과 같은 자료형이다. 불리언 데이터로는 True, Flase 단 두가지 값만이 존재한다. 이 자료형은 프로그램 내에서 참 또는 거짓의 여부를 나타내기 위해 사용한다. 

 

프로그래밍을 하다 보면, 주어진 상황에 따라 프로그램이 다르게 동작하도록 코드를 구현해야 하는 경우가 종종 발행하는데 그런 상황에서 이 불리언 자료형은 무척 유용하게 사용된다. (ex. 비밀번호)

# 불리언 올바른 표기법
bdate = True
bdate = False

# 불리언 잘못된 표기법
bdate = true
bdate = flase

 

비교 연산

불리언 자료형이 사용되는 대표적인 예, 비교 연산이 있다. 파이썬은 주어진 두 항을 비교할 수 있는 '비교 연산자'를 제공한다. 파이썬으로 처리할 수 있는 비교의 유형(비교하는 작업 또한 '연산의 일종이라 할 수 있다)'은 두 가지이다.

  • 크냐 작냐 (대소비교)
  • 같냐 다르냐 (등가 비교)

비교 연산식은 언제나 불리언 타입의 데이터를 반환하는데 크냐, 작냐를 비교하는 대소 비교나 같냐, 다르냐를 비교하는 등가 비교는 모두 하나의 질문이며, 질문에 대한 답변은 언제나 참(True) 또는 거짓(False)이다. 

 

논리 연산

논리 연산은 비교 연산과 마찬가지로 불리언 타입의 값을 반환하는 연산이다. 논리 연산은 피연산자로 불리언 타입의 값, 즉 True or False를 주로 사용한다.

and는 두 항이 모두 True인 경우에만 True를 반환하는 연산이다. 따라서 두 항 중에 하나라도 False하면 반드시 False를 반환한다. 반면 or은 두 항 모두 False인 경우에만 False를 반환하는 연산이다. 따라서 두 항 중에 하나라도 True라면 반드시 True를 반환한다.

 

비교 연산자를 이용해 만든 비교 연산식은 불리언 값을 반환한다. 따라서 비교 연산식을 논리 연산식의 항으로 활용할 수 있다. 

 

논리 연산식의 항으로 True나 False가 아닌 다른 값을 사용할 수도 있다. 파이썬 bool(x) 함수는 인수로 주어진 값을 True  또는 False로 변환해주는 함수이다. 파이썬의 모든 자료형에는 True로 변환될지 False로 변환될지를 결정하는 기준이 존재하는데, 대부분의 경우 값이 없으면 False를, 값이 있으면 True를 반환한다.

 

in & not in

in과 not in 연산도 불리언 타입의 값을 반환하는 연산이다. 두 연산은 데이터 안에 특정 데이터가 포함되어있는지 또는 그렇지 않은지를 판단한다.


리스트

리스트 데이터는 여러 개의 데이터를 보관하는 '주머니' 역할을 한다. 이전까지 변수에는 데이터를 하나씩만 대입할 수 있었지만, 리스트를 사용하면 여러 개의 데이터를 한꺼번에 대입할 수 있다.

 

리스트는 대괄호를 사용하여 표현하는데, 대괄호 영역 안에는 원하는 갯수만큼 데이터를 입력하면 되는데, 이때 데이터 간의 구분을 위해 쉼표(,)를 사용한다.

myList = [1, 2, 3, 4, 5]
  • 요소(포함한 데이터)를 0개부터 n개까지, 원하는 개수만큼 포함할 수 있다.
  • 같은 값의 요소가 여러 개 포함될 수 있다.
  • 서로 다른 자료형의 요소가 섞여 있을 수 있다.
  • 첫 번째 요소부터 순서대로 '인덱스 번호'를 지정해 관리한다.

 

인덱스 번호

리스트는 내부 요소를 관리하기 위해 각 요소에 인덱스 번호를 지정하는데, 인덱스 번호는 0번부터 시작해 순서대로 1씩 증가한다. 인덱스 번호는 작성되어 있는 코드를 기준으로 왼쪽부터 오른쪽 방향으로 증가한다.

 

인덱싱과 슬라이싱

인덱싱은 리스트에게 '인덱스 n번에 해당하는 값을 줘'라고 요청하는 것이다.

응용가능(리스트의 값을 활용해 새로운 값을 구하기)


응용가능(리스트의 값을 변경할 수도 있다)

 

 

슬라이싱은 리스트에게 '인덱스 n번부터 m번 전까지를 잘라서 줘'라고 요청하는 것이다.(n과 m을 기입하지 않으면 끝까지라는 의미) 슬라이싱의 결과물은 언제나 리스트이다.


+ 리스트와 문자열의 공통점

  • 하나의 데이터 안에 여러 개의 데이터가 포함될 수 있다.
  • 보유하고 있는 데이터를 순차적으로 관리한다.

 

리스트가 내부 데이터에 순서대로 인덱스 번호를 지정하는 것처럼, 문자열 또한 포함하고 있는 문자에 순서대로 인덱스 번호를 지정한다. 따라서 문자열을 대상으로 한 인덱싱과 슬라이싱 처리도 가능하다.

 

파이썬에서는 리스트와 문자열이 피연산자로 오는 더하기와 곱하기 연산을 할 수 있다. 이때 더하기는 이어붙이기를, 곱하기는 반복하는 작업을 수행한다. 

 

 

리스트와 문자열은 몇 가지 공통점을 가지고 있기에 몇 가지 공통된 처리를 할 수 있다. 하지만 작성 형태나 출력 형태는 서로 다르고 또 둘 사이에는 추가로 '변할 수 있는 것'과 '변할 수 없는 것'이라는 차이가 있다.

-> 리스트는 변할 수 있는 데이터이지만, 문자열은 변할 수 없는 데이터이다.

-> 각 성질을 가리켜 'mutable'과 'immutable'라고 표현하기도 한다.

리스트는 변할 수 있는 데이터

문자열은 변할 수 없는 데이터

 

슬라이싱(리스트는 리스트로 문자열은 문자열로)

 


튜플

소괄호 영역 안에는 원하는 개수만큼 데이터를 입력하면 되는데, 이때 데이터 간의 구분을 위해 쉼표(,)를 사용한다.

fruits = ("apple", "grape", "orange")

 

튜플은 파이썬의 기본 자료형 중 하나로, 리스트와 유사한 특성을 가지고 있다. 

  • 하나의 튜플 안에 어러 개의 데이터가 포함될 수 있다.
  • 보유하고 있는 데이터를 순차적으로 관리한다.
  • 리스트와 동일한 방법으로 인덱싱과 슬라이싱, 더하기와 곱하기를 수행할 수 있다.

차이점

  • 리스트는 요소들을 [ ] 대괄호로 감싸지만, 튜플은 ( ) 소괄호로 감싼다.
  • 리스트는 요소를 수정 및 삭제할 수 있지만, 튜플은 그럴 수 없다_immutable. (del을 이용한 삭제는 가능)

포함한 데이터가 하나 뿐인 튜플을 만들 때는 반드시 쉼표를 함께 입력해야한다.

# 쉼표를 지우면 튜플이 아닌 문자열
t1 = ("Happy",)

 

쉼표로 구분된 여러 개의 데이터를 입력하면, 파이썬은 이를 튜플로 해석한다. (알아서 소괄호를 추가해줌)

t2 = "Good", "Nice", "Awesome"

 

+ 리스트나 튜플을 이용해 여러 개의 변수를 한꺼번에 만들고, 또 수정할 수도 있다. 

 

 

출처 : https://www.youtube.com/@uknowcoding

'📚강의록📚 > Python' 카테고리의 다른 글

Python 기초 03(반복문)  (0) 2023.05.22
Python 기초 02(조건문)  (0) 2023.05.19
Comments