[파이썬] 기본 문법 정리(변수,자료형,문자열,리스트,딕셔너리)

고정원·2021년 3월 9일
0

파이썬

목록 보기
2/5

📢파이썬을 설치한다고?
→일종의 번역팩을 설치한다고 생각하면 된다. 컴퓨터는 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

📌리스트 메소드 활용하기!

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

📢[파이썬] 기본 문법 정리(조건문,반복문,함수) 이어서 보러가기

profile
해결문제에 대해 즐겁게 대화 할 수 있는 프론트엔드 개발자

0개의 댓글