Today I Learned (TIL)/Python

[TIL] 파이썬 문법 기초 - 1주차 기초

신짜린 2024. 6. 27. 10:33

1. 변수 선언과 자료형

- 변수 선언

a = 3        # 3을 a에 넣는다.
print(a)
b = a        # a에 들어 있는 값인 3을 b에 넣는다.
print(b)
a = 5        # a에 5라는 새로운 값을 넣는다.
print(a, b)  # 5 3

 

- 숫자형 자료형

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 (소괄호를 이용해서 먼저 계산할 부분을 표시해줄 수 있어요!)
-----------------------------------------------------------------------------------------------
a = 5
a = a + 3 # 5에 3을 더한 값을 다시 a에 저장
print(a)  # 8

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

 

- Bool 자료형

x = True   # 참
y = False  # 거짓

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

True = 1   # True/False는 변수명으로 쓸 수 없어요!
# 보통은 '비교연산자'의 결과로 나타내기 위해 쓰여요.
# 불 자료형에는 논리연산자를 이용할 수 있습니다.

 

2. 문자열 다루기

- 문자열

# 작은 따옴표 또는 큰 따옴표. 둘 다 같아요!
a = "aa"
b = 'aa'
-----------------------------------------------------------------------------------------------
# 따옴표로 감싸지 않으면 변수이름을 뜻하기 때문에 꼭 구분해서 써야합니다!
a = 1
b = "a"
c = a
print(a, b, c) # 1 "a" 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
-----------------------------------------------------------------------------------------------
a = "3"
a + 5    # 문자열과 숫자형은 더할 수 없어서 에러!
-----------------------------------------------------------------------------------------------
# len() 함수를 이용해서 문자열의 길이를 구할 수 있습니다!
print(len("abcde"))           # 5
print(len("Hello, Sparta!"))  # 14
print(len("안녕하세요."))      # 6
-----------------------------------------------------------------------------------------------
# 모든 알파벳을 대문자/소문자로 바꾸기
sentence = 'Python is FUN!'

sentence.upper()  # PYTHON IS FUN!
sentence.lower()  # python is fun!
-----------------------------------------------------------------------------------------------
# 이메일 주소에서 도메인 '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]
-----------------------------------------------------------------------------------------------
# 특정 문자를 다른 문자로 바꾸기
txt = '서울시-마포구-망원동'
print(txt.replace('-', '>')) # '서울시>마포구>망원동'

 

3. 리스트와 딕셔너리

- 리스트: 순서가 있는 다른 자료형들의 모임

a = [1, 5, 2]
b = [3, "a", 6, 1]
c = []
d = list()
e = [1, 2, 4, [2, 3, 4]]
-----------------------------------------------------------------------------------------------
# len()함수 사용해서 리스트 길이 재기
a = [1, 5, 2]
print(len(a))   # 3

b = [1, 3, [2, 0], 1]
print(len(b))   # 4
-----------------------------------------------------------------------------------------------
# 순서가 있어 문자열처럼 인덱싱과 슬라이싱 사용 가능!
a = [1, 3, 2, 4]
print(a[3])  # 4
print(a[1:3]) # [3, 2]
print(a[-1]) # 4 (맨 마지막 것)
-----------------------------------------------------------------------------------------------
# 리스트의 요소가 리스트라면? 중첩해서!
a = [1, 2, [2, 3], 0]
print(a[2])      # [2, 3]
print(a[2][0])   # 2
-----------------------------------------------------------------------------------------------
# 덧붙이기
a = [1, 2, 3]
a.append(5)
print(a)     # [1, 2, 3, 5]

a.append([1, 2])
print(a)     # [1, 2, 3, 5, [1, 2]]


# 더하기 연산과 비교!
a += [2, 7]
print(a)     # [1, 2, 3, 5, [1, 2], 2, 7]
-----------------------------------------------------------------------------------------------
# 정렬하기
a = [2, 5, 3]
a.sort()
print(a)   # [2, 3, 5]
a.sort(reverse=True)
print(a)   # [5, 3, 2]
-----------------------------------------------------------------------------------------------
# 요소가 리스트 안에 있는지 알아보기
a = [2, 1, 4, "2", 6]
print(1 in a)      # True
print("1" in a)    # False
print(0 not in a)  # True

 

- 딕셔너리: 키(key)와 벨류(value)의 쌍으로 이루어진 자료의 모임

person = {"name":"Bob", "age": 21}
print(person["name"])
------------------------------------------------------------------------------------------------
# 딕셔너리의 요소에는 순서가 없어 인덱싱이 불가능합니다.
person = {"name":"Bob", "age": 21}
print(person[0])   # 0이라는 key가 없으므로 KeyError 발생!
------------------------------------------------------------------------------------------------
# 딕셔너리의 값 없데이트 또는 새로운 쌍의 자료를 넣을 수 있습니다.
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}
------------------------------------------------------------------------------------------------
딕셔너리의 벨류로는 아무 자료형이나 쓸 수 있어요. 다른 딕셔너리를 넣을 수도 있죠!
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
------------------------------------------------------------------------------------------------
# 딕셔너리 안에 해당 키가 존재하는지 알고 싶을 때는 in을 사용합니다.
person = {"name":"Bob", "age": 21}

print("name" in person)       # True
print("email" in person)      # False
print("phone" not in person)  # True
------------------------------------------------------------------------------------------------
# 딕셔너리는 리스트와 함께 쓰여 자료를 정리하는데 쓰일 수 있습니다.
people = [{'name': 'bob', 'age': 20}, {'name': 'carry', 'age': 38}]

# people[0]['name']의 값은? 'bob'
# people[1]['name']의 값은? 'carry'

person = {'name': 'john', 'age': 7}
people.append(person)

# people의 값은? [{'name':'bob','age':20}, {'name':'carry','age':38}, {'name':'john','age':7}]
# people[2]['name']의 값은? 'john'

 

4. 조건문

- if문

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

 

- else와 elif

# 조건을 만족하지 않을 때 다른 코드를 실행하고 싶을 때 쓰는 문법입니다.
money = 2000
if money > 3800:
    print("택시 타자!")
else:
    print("걸어가자...")
-----------------------------------------------------------------------------------------------
# 다양한 조건을 판단할 때는 elif를 쓰면 좋아요!
age = 27
if age < 20:
    print("청소년입니다.")
elif age < 65:
    print("성인입니다.")
else:
    print("무료로 이용하세요!")

 

5. 반복문

- for문

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

for fruit in fruits:
    print(fruit)

 

- for문: enumerate, break

fruits = ['사과', '배', '감', '귤','귤','수박','참외','감자','배','홍시','참외','오렌지']
for i, fruit in enumerate(fruits):
    print(i,fruit)
# 앞에 5개만 출력해보기
for i, fruit in enumerate(fruits):
    print(i, fruit)
    if i == 4:
        break

 

6. 함수

def hello():
	print("안녕!")
    print("또 만나요!")

hello()
hello()
-----------------------------------------------------------------------------------------------
# 조건문에 넣은 값을 바꿔가면서 결과를 확인할 때 쓰면 편합니다.
def bus_rate(age):
		if age > 65:
		    print("무료로 이용하세요")
		elif age > 20:
		    print("성인입니다.")
		else:
		    print("청소년입니다")

bus_rate(27)
bus_rate(10)
bus_rate(72)
-----------------------------------------------------------------------------------------------
# 단순한 출력 뿐만 아니라 결과 값을 돌려주도록 함수를 만들 수도 있어요!
def bus_fee(age):
		if age > 65:
		    return 0
		elif age > 20:
		    return 1200
		else:
		    return 0     

money = bus_fee(28)
print(money)