정말 기초적인 내용만 취급하고 있습니다.
파이썬의 장점
편하고 빠른 C가 있는데, 뭐하러 느린 파이썬을 써?
C언어 계열의 언어만 배우신 분들이라면 파이썬을 왜 배우시는지 이해가 안될 수도 있습니다.
하지만 왼쪽 사진에서도 그렇듯이, 일단 문법이 타 프로그래밍 언어에 비해 짧고 매우 직관적입니다.
(프로그래밍 입문자분들께 파이썬을 추천하는 가장 큰 이유입니다.)
문법이 간단하면, 할 수 있는 것이 제한된다고 생각하실수도 있는데 전혀 그렇지 않습니다.
위 사진들은 각각 파이썬이 인공지능 모델 구축, GUI 프로그램 제작, 해킹에 각각 쓰인 모습입니다.
이처럼 파이썬은 굉장히 다양한 곳에 쓰이고 있습니다.
변수와 입출력
아니, 자료형을 적지 않아도 된다고? 그런데 뭔가 낮설어..
C언어 계열 언어를 배우시는 분들이 가장 낮설게 여기는 부분 중 하나입니다.
파이썬은 변수를 선언할 때, 자료형을 적지 않기 때문에 '이름 = 값' 형태로 코드를 작성하게 됩니다.
그리고, 자료형이 다른 값들도 서로 비교할 수 있다는 장점을 가지고 있습니다.
a = 1
b = 3.14
c = [1, 2, 3, 4, 5]
변수는 위와 같이 선언합니다.
아래에서 더 자세하게 설명할 것이지만, 배열도 따로 크기를 지정할 필요 없이 그냥 직관적으로 값을 넣으면 됩니다.
a = input()
print(a)
print(type(a))
변수에 값을 입력할 때에는 'input()' 함수를 사용합니다.
하지만 여기에는 치명적인 함정이 있는데, 변수의 자료형을 확인하는 type 함수로 해당 변수를 확인해 보면...
어, 분명히 숫자를 입력했는데 자료형이 'str', 문자열이라고 나옵니다.
a = input()
b = input()
print(a + b)
숫자 2개를 입력받고, 합을 구하는 코드를 짜보았는데 저희가 의도한대로 코드가 작동하지 않습니다.
문자열로 취급해 버려서 두 숫자를 그냥 합쳐버렸습니다. (문자열의 특징 중 하나입니다.)
a = int(input())
b = int(input())
print(a + b)
그래서 숫자를 입력받을 때에는 int() 함수로 input()을 한번 감싸줍니다.
이렇게 되면 정수를 입력받는다는 의미를 가지게 됩니다. 아마 정상적으로 덧셈을 하여 579가 출력될 것입니다.
더 자세한 것은 바로 아래, 연산자에서 더 다뤄보도록 하겠습니다.
다양한 연산자
파이썬에는 뭐 특별한 연산자라도 따로 있나? 없네..
다행이도 여러 프로그래밍 언어를 배우신 분은 딱히 추가적으로 학습해야 할 부분이 많지 않습니다.
더하기(+), 빼기(-), 곱하기(*), 나누기(/), 나머지(%) 모두 존재합니다. 다만, 증감 연산자(++, ---)는 없습니다.
그리고 나눗셈의 정수 부분만 구하는 // 연산자, 제곱을 해주는 ** 연산자도 있습니다. (기초적인 부분만 다루는 글이므로 비트 연산자는 다루지 않겠습니다.)
a = int(input())
b = int(input())
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** 2)
간단하죠?
print(a > 2)
if a == 10 and b == 10 :
print("두 수는 같습니다.")
다른 언어와 동일하게, 꺽쇠를 통해 표현하는 비교 연산자도 있습니다. 위 코드는 a가 2보다 크다면 True를 출력합니다.
그리고 좀 특이한게, 대부분의 프로그래밍 언어는 관계 연산자에서 &&(AND), ||(OR)를 사용하지만 파이썬은 영단어 그대로 and, or를 사용합니다.
문자열
리스트랑 비슷하네!
a = "Hello, This is Python"
print(a[4])
문자열은 따옴표(')나 쌍따옴표(")로 표현합니다. C++의 string 자료형과 동일합니다.
그리고, 각 글자들에 접근할 수도 있는데, H는 0, e는 1, l은 2, l은 3... 의 값을 가집니다. 이것을 인덱스라고 합니다.
공백도 하나의 공간을 차지합니다. 6, 11, 14번째 인덱스는 공백이 되겠네요.
프로그래밍 언어에서 첫 시작 값은 0이라는 것, 항상 기억하세요!
a = "Hello, This is Python"
b = "I like Python"
print(a + b)
print(a, b)
숫자 입출력 부분에서 보셨다시피, 파이썬은 문자열을 더하는 연산도 가능합니다.
두 문자열을 공백 없이, 이어서 출력해줍니다.
a = "Hello, This is Python"
print(a * 10)
심지어 문자열을 곱하는 연산도 가능합니다!
위 코드의 경우, "Hello, This is Python"이라는 문자열을 10번 출력합니다.
리스트
문자열이랑 비슷하네!
a = [1, 2, 3, 4, 5]
print(a[2])
문자열과 거의 동일한 매커니즘을 가지고 있습니다. (자료구조의 리스트와는 다른 개념입니다.)
똑같이 0부터 시작하는 인덱스를 가지고 있고, 더하기와 곱하기 모두 가능합니다.
차이점이라면, 값을 변경할 수 있습니다.
a = [1, 2, 3, 4, 5]
a[2] = 8
print(a)
이렇게 한다면 인덱스가 2인 3이 8로 변경되어 [1, 2, 8, 4, 5]가 출력됩니다.
a = [1, 2, 3, 4, 5]
del a[1]
print(a)
값을 삭제할 수도 있습니다. del을 사용합니다.
딕셔너리, 튜플, 집합
모두 리스트의 친적, 친구 관계정도 되는 자료형입니다.
book = {"author": "Sunrin", "price": 15000}
print(book["price"])
먼저 딕셔너리입니다. 중괄호를 사용하여 선언하고, 키와 값의 형태를 지니고 있습니다.
약간 C언어의 구조체와 비슷한 성격을 지니고 있습니다.
book = {"author": "Sunrin", "price": 15000}
book["price"] = 25000
print(book)
각 값도 바꿀 수 있습니다. 다만 키 이름(author, price)을 변경하는 것은 허용하지 않습니다.
a = (1, 2, 3, 4, 5)
del a[1]
a[3] = 8
튜플은 리스트와 매우 유사한데, 값들을 수정할 수 없다는 특징을 가지고 있습니다.
그러므로 위의 코드를 실행한다면 오류가 발생합니다.
a = set("Hello")
print(a)
집합은 수학에서 쓰이는 그 집합이 맞습니다. 따로 괄호를 사용하지는 않고 set() 함수를 사용해 선언합니다.
집합에는 순서가 없기 때문에 실행할 때마다 다른 순서로 값이 출력됩니다. 합집합, 교집합 연산도 있습니다.
반복문
반복문 하나로도 별찍기가 가능하다니?
for i in range(5) :
print(i)
짜증나는 별 찍기는 하지 않겠습니다.
파이썬 반복문은 for을 사용해 선언하고, range에 얼만큼 반복할 것인지를 지정합니다.
위 코드는 0부터 4까지, 5개의 숫자를 출력합니다. 5는 출력하지 않습니다.
for i in range(1, 11, 2) :
print(i)
타 반복문과 마찬가지로 최대 3개의 인자를 넣을 수 있습니다.
첫번째 인자는 시작하는 숫자, 두번째 인자는 마지막 숫자, 세번째 인자는 얼마 단위로 i를 증가시킬 건지를 결정합니다.
해당 반복문은 1부터 9까지, 홀수만 출력하는 반복문이 되겠습니다.
for i in range(10, 0, -2) :
print(i)
세번째 인자에는 음수도 들어올 수 있습니다. 10부터 1까지 짝수만 출력하는 반복문입니다.
i = 0
while i < 10 :
print(i)
i += 1
while 문법도 있습니다.
위 코드는 0부터 9까지 출력하는 코드입니다.
'🖥️ 프로그래밍' 카테고리의 다른 글
🍳 Python CookBook - 조건문부터 예외처리까지 (0) | 2023.06.18 |
---|---|
[대회] 하이스쿨 알고리즘 캠프 후기 (0) | 2023.02.17 |
파이썬의 눈, OpenCV - 기초 (0) | 2022.11.14 |
Selenium 기초 - 브라우저 실행하기 (0) | 2022.09.28 |
[미완성] 데이터 분석 - 타이타닉 생존자 예측 (0) | 2022.06.07 |