파이썬 문법 기초

파이썬 문법 기초

유안찡 2022. 11. 9. 20:31

1-3. 변수 선언과 자료형

 

 

 

1. 변수 선언 

 

1) 변수의 형태

- 파이썬에서 새 변수를 만들 때는 변수이름 = 값의 형태로 쓴다. 

- a = b와 b = a는 다르다.

 

 

 

2) 변수 예시 

a = 3     # 3을 a에 넣는다. 

print(a)     

b = a    # a에 들어 있는 값인 3을 b에 넣는다. 

print(b)

a = 5     # a에 5라는 새로운 값을 넣는다. 

print(a, b)     # 5 3

 

 

 

3) 변수 설명

 

변수라는 건 어떤 값을 담는 거인데 컴퓨터 입장에서 보면 값이 담긴 위치를 가리키는 거

컴퓨터는 어떤 값을 기억해야 되는데 우리가 다 3, 2라고 썼지. 이건 다 코드잖아요 코드.

근데 컴퓨터 입장에서는 쟤가 아까 3이라고 썼지, a는 3이라고 했지,

3은 a라는 박스에 들어있지 이렇게 기억을 해야 된다. 

이것을 메모리에 올려둔다고 표현한다. 

 

그래서 이 변수는 이 메모리에 올려져 있는 값들을 사실은 이렇게 지적하고 있는 것

 

쉽게 생각하면 값을 담는 박스다 라고 생각하시면 되지만 

조금 더 유식하게 이야기하자면 값을 가리키고 있다고 표현해도 된다. 

 

컴퓨터가 기억하고 있는 이 메모리 공간을 이 변수가 딱 가리키고 있다. 

 

 

 

2. 숫자형 자료형 

 

 

 

1) 자료형의 의미

- 자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것

- 파이썬에서 어떤 값을 쓰는지 알아야 코딩을 할 수 있다. 

 

 

2) 자료형에서 쓸 수 있는 것들

 

(1) 다양한 형태의 숫자

a = 5
b = 4.8

 

 

 

(2) 숫자 간에는 사칙연산이 가능

a = 7
b = 2

a+b   # 9 
a-b   # 5
a*b   # 14
a/b   # 3.5

a+3*b         # 13 (여러 연산을 한 줄에 할 경우 사칙연산의 순서대로!)
(a+3)*b       # 20 (소괄호를 이용해서 먼저 계산할 부분을 표시해줄 수 있어요!)

 

 

 

(3) 변수에 저장된 값에 연산을 한 후 다시 그 값을 같은 변수에 저장할 수 있음 

 

a = 5
a = a + 3 # 5에 3을 더한 값을 다시 a에 저장
print(a)  # 8

a += 3    # 줄여 쓸 수도 있다. 같은 의미!

 

 

 

(4) 나눗셈, 나머지, 거듭제곱

 

a//b  # 3 (몫)
a%b   # 1 (나머지)
a**b  # 49 (거듭제곱)

 

 

 

 

3. Bool 자료형

 

 

 

1) Boolean 자료형의 특징 

- 특별한 자료형으로 참/거짓을 나타내는 불(Boolean) 자료형

 

 

2) Boolean 자료형 예시 

 

x = True   # 참
y = False  # 거짓

# 소문자로 쓰면 자료형으로 인식하지 않고 변수명이라 생각해 에러가 납니다~
z = true   # name 'true' is not defined

True = 1   # True/False는 변수명으로 쓸 수 없어요!

 

 

3) 비교연산자 

 

4 > 2      # True  크다
5 < 1      # False 작다
6 >= 5     # True  크거나 같다
4 <= 4     # True  작거나 같다
3 == 5     # False 같다
4 != 7     # True  같지 않다

 

 

4) 논리연산자

a = 4 > 2  # True
not a      # False    NOT 연산자로 참을 거짓으로, 거짓을 참으로 바꿔준다.

a and b    # False    AND 연산자로 모두 참이어야 참을 반환한다.
a or b     # True     OR 연산자로 둘 중 하나만 참이면 참이다.

 

 

 

 

 

 

1-4. 문자열 다루기

 

 

 

1. 문자열

 

 

1) 문자열이란

- 파이썬에선 글도 데이터로 사용할 수 있는데 이것을 문자열이라고 한다. 

 

# 작은 따옴표 또는 큰 따옴표. 둘 다 같아요!

a = "aa"
b = 'aa'

 

 

2) 따옴표로 감싸야 하는 이유 

- 따옴표로 감싸지 않으면 변수이름을 뜻하기 때문에 꼭 구분해서 써야합니다!

 

 

 

 

2. 문자열 연산 

 

 

1) 문자열 더하기 

 

- 문자열 간의 더하기는 두 문자열을 이어붙인 문자열을 반환합니다. 

 

first_name = "Harry"
last_name = "Potter"

first_name + last_name  # HarryPotter
first_name + " " + last_name  # Harry Potter

a = "3"
b = "5"
a + b    # 35

 

 

 

2) 문자열과 정수를 더하면 에러 

 

a = "3"
a + 5    # 문자열과 숫자형은 더할 수 없어서 에러!

 

 

3) 문자열의 길이는 len() 함수를 써서 구할 수 있다. 

 

print(len("abcde"))           # 5
print(len("Hello, Sparta!"))  # 14
print(len("안녕하세요."))      # 6

 

 

 

4) 특정 문자를 기준으로 문자열을 나누기

 

# 이메일 주소에서 도메인 'gmail'만 추출하기
myemail = 'test@gmail.com'

result = myemail.split('@') # ['test','gmail.com'] (뒤에 배울 '리스트'라는 자료형이에요 :))

result[0] # test (리스트의 첫번째 요소)
result[1] # gmail.com (리스트의 두 번째 요소

result2 = result[1].split('.') # ['gmail','com']

result2[0] # gmail -> 우리가 알고 싶었던 것
result2[1] # com

# 한 줄로 한 번에!
myemail.split('@')[1].split('.')[0]

 

 

 

 

5) 특정 문자를 다른 문자로 바꾸기

 

txt = '서울시-마포구-망원동'
print(txt.replace('-', '>')) # '서울시>마포구>망원동'

 

 

 

 

 

6) 인덱싱

 

- 문자열은 '문자들의 모임'이기 때문에 그 일부를 따로 떼어 부르는 방법이 있습니다. 한 글자 씩 부를 때는 몇 번째인지 '인덱스'를 넣어 불러서 인덱싱이라고 합니다.

 

f="abcdefghijklmnopqrstuvwxyz"
f[1]   # b 파이썬은 숫자를 0부터 셉니다

 

 

 

 

7) 슬라이싱 

 

f[4:15]  # efghijklmno           f[4]부터 f[15] 전까지, 총 15-4=11개!

f[8:]    # ijklmnopqrstuvwxyz    f[8]부터 끝까지, 앞의 8개 빼고!
f[:7]    # abcdefg               시작부터 f[7] 전까지, 앞의 7개!

f[:]     # abcdefghijklmnopqrstuvwxyz  처음부터 끝까지

 

 

 

 

8) split('문자열')

 

myemail = 'abc@sparta.co'

domain = myemail.split('@')[1].split('.')[0]
print(domain)

 

 

 

 

 

 

1-5. 리스트와 딕셔너리

 

 

 

 

 

1. 리스트 (list)

 

1) 리스트 기초

 

a = [1, 5, 2]
b = [3, "a", 6, 1]
c = []
d = list()
e = [1, 2, 4, [2, 3, 4]]

 

 

2) 리스트의 길이도 len() 함수

 

3) 순서가 있기 때문에, 문자열에서처럼 인덱싱과 슬라이싱을 사용할 수 있습니다!

 

4) 리스트의 요소가 리스트라면? 중첩해서!

 

 

 

 

2. 리스트의 더 많은 기능들!

 

1) 덧붙이기

 

2) 정렬하기

 

3) 요소가 리스트 안에 있는지 알아보기

 

 

 

 

3. 딕셔너리 (dictionary)

 

 

1) 딕셔너리 기초 

 

- 딕셔너리는 키(key)와 밸류(value)의 쌍으로 이루어진 자료의 모임입니다. 영한사전에서 영어 단어를 검색하면 한국어 뜻이 나오는 것처럼요!

 

 

2) 빈 딕셔너리 만들기

 

a = {"one":1, "two":2}

# 빈 딕셔너리 만들기
a = {}
a = dict()

 

 

 

 

3) 딕셔너리의 요소에는 순서가 없기 때문에 인덱싱을 사용할 수 없어요.

person = {"name":"Bob", "age": 21}
print(person[0])   # 0이라는 key가 없으므로 KeyError 발생!

 

 

 

 

4) 딕셔너리의 값을 업데이트하거나 새로운 쌍의 자료를 넣을 수 있습니다.

 

person = {"name":"Bob", "age": 21}

person["name"] = "Robert"
print(person)  # {'name': 'Robert', 'age': 21}

person["height"] = 174.8
print(person)  # {'name': 'Robert', 'age': 21, 'height': 174.8}

 

 

 

 

5) 딕셔너리의 밸류로는 아무 자료형이나 쓸 수 있어요. 다른 딕셔너리를 넣을 수도 있죠!

 

person = {"name":"Alice", "age": 16, "scores": {"math": 81, "science": 92, "Korean": 84}}
print(person["scores"])             # {'math': 81, 'science': 92, 'Korean': 84}
print(person["scores"]["science"])  # 92

 

 

6) 딕셔너리 안에 해당 키가 존재하는지 알고 싶을 때는 in을 사용합니다.

 

person = {"name":"Bob", "age": 21}

print("name" in person)       # True
print("email" in person)      # False
print("phone" not in person)  # True

 

 

 

 

 

 

1-6. 조건문

 

 

 

 

1. if 문

 

1) if문이란?

- 조건을 만족했을 때만 특정 코드를 실행하도록 하는 문법

 

 

2) if문 예시

 

money = 5000
if money > 3800:
    print("택시 타자!")

 

 

 

2. else 문

 

1) else문이란? 

- 조건을 만족하지 않을 때 다른 코드를 실행하고 싶을 때 쓰는 문법 

 

 

2) else문 예시

money = 2000
if money > 3800:
    print("택시 타자!")
else:
    print("걸어가자...")

 

 

 

 

3. elif 문 

 

1) elif문이란? 

- 다양한 조건을 판단할 때 elif를 쓴다. 

 

2) elif문 예시 

age = 27
if age < 20:
    print("청소년입니다.")
elif age < 65:
    print("성인입니다.")
else:
    print("무료로 이용하세요!")

 

 

 

 

 

1-7. 반복문

 

 

 

1. for문 

 

1) for문 예시 

 

fruits = ['사과', '배', '감', '귤']

for fruit in fruits:
    print(fruit)

 

 

2) for문 + 조건문 

 

people = [
    {'name': 'bob', 'age': 20},
    {'name': 'carry', 'age': 38},
    {'name': 'john', 'age': 7},
    {'name': 'smith', 'age': 17},
    {'name': 'ben', 'age': 27},
    {'name': 'bobby', 'age': 57},
    {'name': 'red', 'age': 32},
    {'name': 'queen', 'age': 25}
]

 

for person in people:
    if person['age'] > 20:
        print(person['name'])

 

 

 

3) enumerate, break

 

* enumerate : 번호로 열거

* break : 숫자 전까지만 출력 

 

fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']

 

for i, fruit in enumerate(fruits):
    print(i, fruit)
    if i == 4:
        break

 

 

 

 

 

 

 

1-8. 반복문 - 연습문제

 

Q. 리스트에서 짝수만 출력하는 함수 만들기

 

 

 

Q. 리스트에서 짝수의 개수를 출력하기

 

 

 

Q. 리스트 안에 있는 모든 숫자 더하기

 

 

 

Q. 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기

 

 

 

 

 

 

1-9. 함수

 

 

1. 함수

 

1) 함수의 정의 

- 프로그래밍에서의 함수는 같은 동작을 하는 것 

- 그래서 반드시 뭘 안 넣어도 될 수도 있고, 안 나와도 될 수도 있다. 

- 함수는 반복적으로 사용하는 코드들에 이름을 붙여놓은 것이다. 

 

 

2) 조건문에 넣을 값을 바꿔가면서 결과를 확인할 때 쓰면 편하다. 

 

def bus_rate(age):
if age > 65:
    print("무료로 이용하세요")
elif age > 20:
    print("성인입니다.")
else:
    print("청소년입니다")

bus_rate(27)
bus_rate(10)
bus_rate(72)

 

 

3) 단순 출력 뿐만 아니라 결과 값을 돌려주도록 함수를 만들 수도 있다. 

 

def bus_fee(age):
if age > 65:
    return 0
elif age > 20:
    return 1200
else:
    return 0     


money = bus_fee(28)
print(money)

 

 

 

4) 주민등록번호를 입력받아 성별을 출력하는 함수 만들기 

 

def check_gender(pin):
    num = int(pin.split('-')[1][0])
    if num % 2 == 0:
        print('여성')
    else:
        print('남성')

my_pin = "200101-3012345"
check_gender(my_pin)

 

 

 

 

2-1. 파이썬 문법 뽀개기 - 심화

 

심화 수업에서 다룰 내용들

 

 

 

 

 

 

 

2-2. 튜플, 집합