📢파이썬을 설치한다고?
→일종의 번역팩을 설치한다고 생각하면 된다. 컴퓨터는 101010001 과 같은 언어만 알아듣는다. 파이썬 문법으로 된 것을 101010001로 변환해줄 수 있도록, 번역 패키지를 설치하는 것.
1. 변수 선언과 자료형
a = 3 # 3을 a에 넣는다.
print(a)
b = a # a에 들어 있는 값인 3을 b에 넣는다.
print(b)
a = 5 # a에 5라는 새로운 값을 넣는다.
print(a, b) # 5 3
📢자료형이란 프로그래밍을 할 때 쓰이는 숫자, 문자열 등 자료 형태로 사용하는 모든 것을 말한다! 파이썬에서 어떤 '값'을 쓰는지 알아야 코딩을 할 수 있으니까?!
1) 다양한 형태의 숫자 사용가능 → 숫자간 사칙연산, 나머지, 몫 구하기도 가능
a = 7
b = 2
a+b # 9
a-b # 5
a*b # 14
a/b # 3.5 📍 '/'는 몫을 소수점까지 다 반환
a//b # 3 (몫) 📍 '//'는 몫을 정수로 반환
a%b # 1 (나머지)
a**b # 49 (거듭제곱)
a+3*b # 13 (여러 연산을 한 줄에 할 경우 사칙연산의 순서대로!)
(a+3)*b # 20 (소괄호를 이용해서 먼저 계산할 부분을 표시해줄 수 있어요!)
2) Bool자료형 → 결과를 참/거짓으로 반환
x = True # 참
y = False # 거짓
# 소문자로 쓰면 자료형으로 인식하지 않고 변수명이라 생각해 에러가 납니다~
z = true # name 'true' is not defined
True = 1 # True/False는 변수명으로 쓸 수 없어요!
#📍 `비교연산자`의 결과로 나타내기 위해 사용
4 > 2 # True 크다
5 < 1 # False 작다
6 >= 5 # True 크거나 같다
4 <= 4 # True 작거나 같다
3 == 5 # False 같다
4 != 7 # True 같지 않다
📍 논리연산자 이용 가능
a = 4 > 2 # True
not a # False NOT 연산자로 참을 거짓으로, 거짓을 참으로 바꿔준다.
a and b # False AND 연산자로 모두 참이어야 참을 반환한다.
a or b # True OR 연산자로 둘 중 하나만 참이면 참이다.
2. 문자열 다루기
1) 문자열 → 글도 사용 가능한다는 거쥬****
#큰따옴표 작은따옴표 둘다 문자열을 표현할때 사용
a = "aa"
b = 'aa'
a = 1
b = "a"
c = a
print(a, b, c) # 1 "a" 1
print("I'm happy :)")
2) 문자열 연산
#문자열의 합
first_name = "Harry"
last_name = "Potter"
first_name + last_name # HarryPotter
first_name + " " + last_name # Harry Potter
a = "3"
b = "5"
a + b # 35
🤪문자열과 정수를 더하면 ERROR..!!🤪
a = "3"
a + 5 # 문자열과 숫자형은 더할 수 없어서 에러!
📍문자열의 길이 구하기→ len( )함수 사용
print(len("abcde")) # 5
print(len("Hello, Sparta!")) # 14
print(len("안녕하세요.")) # 6
3) 메소드(method) 활용하기 → 특정자료형 뒤에 .
을 붙이고 쓰는 내장함수들을 말함
*모든 알파벳을 대문자/소문자로 변환
.upper()
.lower()
*특정 문자를 기준으로 문자열을 나누기
.split()
myemail = 'test@gmail.com'
result = myemail.split('@') # ['test','gmail.com']
*특정문자를 다른 문자로 바꾸기
.text()
txt = '서울시-마포구-망원동'
print(txt.replace('-', '>')) # '서울시>마포구>망원동'
4)인덱싱과 슬라이싱
*문자열은 '문자들의 모임'이기 때문에 그 일부를 따로 떼어 부르는 방법 있음. 한 글자 씩 부를 때는 몇 번째인지 '인덱스'를 넣어 불러서 인덱싱이라고 함.
f="abcdefghijklmnopqrstuvwxyz"
f[1] # b 파이썬은 숫자를 0부터 셉니다
*슬라이싱
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 처음부터 끝까지
.split('문자열')
활용하기! myemail = 'abc@sparta.co'
domain = myemail.split('@')[1].split('.')[0]
print(domain)
3. 리스트
1) 리스트(list) → 순서가 있는 다른 자료형들의 모임
a = [1, 5, 2]
b = [3, "a", 6, 1]
c = []
d = list()
e = [1, 2, 4, [2, 3, 4]]
2) 순서가 있으니까 문자열에서처럼 인덱싱과 슬라이싱 사용
a = [1, 3, 2, 4]
print(a[3]) # 4
print(a[1:3]) # [3, 2]
print(a[-1]) # 4 (맨 마지막 것)
3) 리스트의 요소가 리스트라면? 중첩해서 사용!
a = [1, 2, [2, 3], 0]
print(a[3]) # [2, 3]
print(a[3][0]) # 2
📌리스트 메소드 활용하기!
.append()
.sort()
와 .sorted()
a = [2, 1, 4, "2", 6]
print(1 in a) # True
print("1" in a) # False
print(0 not in a) # True
4.딕셔너리
1) 딕셔너리는 {key:value}로 이루어진 자료의 모임.
person = {"name":"Bob", "age": 21}
print(person["name"])
a = {"one":1, "two":2}
# 빈 딕셔너리 만들기
a = {}
a = dict()
2) 딕셔너리 요소는 순서가 없기 때문에 인덱싱 불가!!
person = {"name":"Bob", "age": 21}
print(person[0]) # 0이라는 key가 없으므로 KeyError 발생!
3) 딕셔너리의 값을 업데이트하거나 새로운 쌍의 자료를 넣을 수 있음
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}
4) 딕셔너리의 value는 아무 자료형이나 다 가능, 다른 딕셔너리도 가능!
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
5) 딕셔너리 안에 해당 키가 존재하는 지 알고 싶을 때는 in
사용
person = {"name":"Bob", "age": 21}
print("name" in person) # True
print("email" in person) # False
print("phone" not in person) # True