[python_dataStructure] 2. 파이썬기초문법

말랑이·2023년 5월 28일

python_dataStructure

목록 보기
2/7
post-thumbnail

1 변수

🧩 변수

  • 컴퓨터 메모리에 데이터를 적재하는 공간
  • 컴퓨터 운영체제가 해당 공간을 확보함 (프로그램 종료 → 메모리반납)

1️⃣ 변수선언방법

  • 변수이름 = 변수에저장할값
  • = (assignment) 기호사용
>>> a = 1 # 정수
>>> b = "python" # 문자열
>>> c = 1.34 # 실수
  • python은 dataType 명시 ❌
  • 메모리공간 RAM → 휘발성

2️⃣ 변수네이밍규칙

  1. 영문자, 숫자, 언더바(_) ✅
  2. 첫글자 → 소문자 ✅
  3. 첫 자리 → 숫자 ⛔️
  4. python keyword → 변수명 ⛔️

2 연산자

1️⃣ 산술연산자

📍 [+ 더하기연산]
a = 20
b = 10
c = a + b

print(c) # 30
📍 [- 빼기연산]
a = 20
b = 10
c = a - b

print(c) # 10
📍 [* 곱하기연산]
a = 20
b = 10
c = a * b

print(c) # 200
📍 [/ 나누기연산]
a = 10
b = 3
c = a / b

print(c) # 3.3333333333335 (소수점아래 출력)
📍 [// 정수 몫]
a = 10
b = 3
c = a // b

print(c) # 3
📍 [% 나머지연산]
a = 10
b = 3
c = a % b

print(c) # 1
📍 [** 누승연산]
a = 10
b = 3
c = a ** b

print(c) # 1000

2️⃣ 관계연산자

결과값은 True or False로 출력

코드의미
>크다
>=크거나같다
<=작거나같다
==같다
!=같지않다

3️⃣ 논리연산자

논리 값을 판단해주는 연산자

코드의미
and논리곱
or논리합
not논리부정

4️⃣ 복합대입연산자

연산자동치
a += 10a = a + 10
a -= 10a = a - 10
a *= 10a = a * 10
a /= 10a = a / 10
a %= 10a = a % 10
a //= 10a = a // 10
a **= 10a = a ** 10

5️⃣ 연산자 우선순위


3 자료형

1️⃣ 숫자형 (Number)

🧩 숫자형 : 숫자 형태로 이루어진 자료형

항목python example
정수123, -345, 0
실수123.45, -1234.5, 3.4e10
8진수0o34
16진수0×2A

2️⃣ 문자열 (String)

🧩 문자열 : 문자, 단어 등으로 구성된 문자들의 집합

a = "Life is too short, You need Python"
b = "a"
c = "123"
"" or '' # 공백가능

3️⃣ 리스트 (List)

🧩 리스트 : 자료형의 집합을 표현할 수 있는 자료형

  • 집합 : 데이터의 묶음
  • 자료형 : 정수, 실수, 문자열
odd = [1, 3, 5, 7, 9]
  1. 하나의 리스트 → 여러가지 자료형 섞어 사용 가능
  2. 기존의 데이터가 저장된 상황 → 특정데이터 추가, 삭제, 검색 용이

4️⃣ 튜플 (Tuple)

📎 리스트와 튜플 차이점

리스트튜플
괄호[ ]( )
생성•수정•삭제 ✅변경 ⛔️

📎 튜플 특징

t1 = ()
t2 = (1,)
t3 = (1, 2, 3)
t4 = 1, 2, 3
t5 = ('a', 'b', ('ab', 'cd'))
  • 1개의 요소만 가질 때 → 무조건 요소 뒤에 콤마(,) 붙이기 🚨
    • t2 = (1,)
  • 괄호 생략 가능 ✅
    • t4 = 1, 2, 3

5️⃣ 딕셔너리 (Dictionary)

🧩 딕셔너리 : Key와 Value의 여러 쌍 {Key : Value}

📍 {Key1 : Value1, Key2 : Value2, Key3 : Value3 •••}

dic = {'name' : 'mallang', 'age' : '22', 'birth' : '0412'}
a = {1 : 'hi'}
b = {'a' : [1, 2, 3]}
  • 각 요소는 쉼표로 구분
  • 딕셔너리 자료형 Key, Value → 자료형 상관없이 모두 가능 ✅

6️⃣ 집합 (Set)

🧩 집합 : 집합에 관련된 것을 쉽게 처리함

  • 중복값 ⛔️ + 순서 ❌
📍 set() 리스트
s1 = set([1, 2, 3])
>>> s1 # {1, 2, 3}

📍 set() 문자열
s2 = set("Hello")
>>> s2 # {'e', 'H', 'l', 'o'}
  • set()으로 생성
  • 순서 및 중복값 허락하지 않음
  • 출력값 → {}에 둘러싸여 출력됨

4 조건문

🧩 if 조건문
① 조건문 True ➡️ if 블럭 수행
② 조건문 False ➡️ else 블럭 수행

>>> a = 10

>>> if a % 2 == 0: # 조건문 True
		print("짝수입니다")  # 실행
	else:
		print("홀수입니다")

>>> 짝수입니다

5 반복문

1️⃣ while 반복문

🧩 while 반복문 : 조건문 True인 동안 → while문 아래 문장 반복수행

>>> treeHit = 0

>>> while treeHit < 10:
		treeHit += 1
        print("나무 %d번 찍었습니다." % treeHit)
        
        if treeHit == 10:
        	print("나무 넘어갑니다.")

>>> 나무를 1번 찍었습니다.
	나무를 2번 찍었습니다.
	나무를 3번 찍었습니다.
	나무를 4번 찍었습니다.
	나무를 5번 찍었습니다.
	나무를 6번 찍었습니다.
	나무를 7번 찍었습니다.
	나무를 8번 찍었습니다.
    나무를 9번 찍었습니다.
	나무를 10번 찍었습니다.
	나무 넘어갑니다.

2️⃣ for 반복문

🧩 for 반복문
for 변수 in 리스트•튜플•문자열
➡️ 리스트•튜플•문자열 [1st 요소 ~ last 요소] → 차례대로 변수에 대입

📍 예제1
>>> a = [(1, 2), (3, 4), (5, 6)] // 리스트

>>> for (first, last) in a:
		print(first + last)

>>> 3
	7
    11
    
📍 예제2
# 총 5명의 학생이 시험을 보았는데 시험 점수가 60점 이상이면 합격이고
# 그렇지 않으면 불합격이다.
# 합격인지 불합격인지 결과를 보여 주시오.
>>> grades = [90, 25, 67, 45, 80]
>>> num = 0

>>> for grade in grades:
		num += 1
        if grade >= 60:
        	print("%d번 학생 합격" % num)
        else:
        	print("%d번 학생 불합격" % num)

>>> 1번 학생 합격
	2번 학생 불합격
	3번 학생 합격
	4번 학생 불합격
	5번 학생 합격

6 함수

🧩 def 함수

  • def : 함수를 만들때 사용하는 예약어
  • 함수명 : 프로그래머가 임의로 만들 수 있음
  • (매개변수) : 함수에 입력으로 전달되는 값을 받는 변수
📍 함수구조
>>> def 함수명(매개변수):
		<수행할문장①>
        <수행할문장②>

📍 add 함수 정의하기
>>> def add(a, b): # 매개변수로 a, b 두개의 값을 받음
		return a + b # 입력받은 두 값을 더해 반환

📍 add 함수 호출하기
>>> a = 3
>>> b = 4
>>> c = add(a, b) # add(3, 4) return 값 → c 변수에저장

>>> print(c) # 7

📎 매개변수와 인수

구분의미
매개변수함수에 전달된 값을 저장하는 변수
인수함수에 전달하는 값
📍 a, b → 매개변수
>>> def add(a, b):
		return a + b
        
📍 3, 4 → 인수
>>> print(add(3, 4))

7 클래스

📍 클래스생성
>>> class FourCal:
		def setdata(self, first, second): # 초기값입력
        	self.first = first
            self.second = second
        def add(self): # 메서드
        	result = self.first + self.second
            return result
        def mul(self): # 메서드
        	result = self.first * self.second
            return result
        def sub(self): # 메서드
        	result = self.first - self.second
            return result
        def div(self): # 메서드
        	result = self.first / self.second
            return result
📍 객체생성
>>> a = FourCal()
>>> b = FourCal()

>>> a.setdata(4, 2)
>>> b.setdata(3, 8)

1️⃣ 생성자

🧩 생성자 : 객체가 생성될 때 → 자동으로 호출되는 메서드 (객체 초기값 설정 시 사용)

__init__ 메서드

>>> class FourCal:
		def __init__(self, first, second): # 생성자
        	self.first = first
            self.second = second
        •••

2️⃣ self 매개변수

  • 객체 호출 → 호출한 객체 자신이 전달되기 때문에 self라는 이름를 사용한 것
  • 메서드 첫번째 매개변수 self 명시적으로 구현 → python만의 특징

8 python 기초문제풀이

📍 변수문자열
# 1. 변수a 문자열에서 0번째와 10번째 문자를 출력하시오.
>>> a = 'The Cyber University of Korea'
>>> print(a[0], a[10]) # T U

# 2. 변수adress 뒤 3자리만 출력하시오.
>>> address = "종로구 북촌로 106"
>>> print(address[8:]) # 106
>>> print(address[-3:]) #106

# 3. 전화번호에서 하이픈을 제거하고 출력하시오.
>>> num = "010-1234-5678"
>>> answer = num.replace("-", "")
>>> print(answer) # 01012345678

📍 리스트
# 1. 슬라이싱을 활용해 리스트 앞 절반을 nums1,
#    뒤 절반을 nums2에 저장하시오.
>>> nums = [3, 5, 7, 11, 16, 18, 32, 64]
>>> nums1 = [0:4] # 이상 : 미만
>>> nums2 = [4:]
>>> print(nums1) # [3, 5, 7, 11]
>>> print(nums2) # [16, 18, 32, 64]

# 2. 다음 리스트의 출력결과를 예시와 같이 출력하시오.
# rank = ['마케팅부', '경영관리부', '고객관리부', '생산부', '서비스부']
# 마케팅부/경영관리부/고객관리부/생산부/서비스부
>>> rank = ['마케팅부', '경영관리부', '고객관리부', '생산부', '서비스부']
>>> join_string = "/".join(rank)
# join메서드 : "원소하나끝날때마다붙일것".join(list변수명)
>>> print(join_string) # 마케팅부/경영관리부/고객관리부/생산부/서비스부
>>> print(type(join_string)) # <class 'str'>

# 3. 리스트에서 for문을 사용해 문자 첫글자를 대문자로 바꾸시오.
>>> my_list = ["hello", "world", "hi", "python"]
>>> for i in my_list:
		a = i[0].upper() + i[1:]
        print(a) # Hello World Hi Python

📍 반복문
# 1. range()구문을 이용해 sample_list를 아래와 같이 출력하시오.
#    가 나 [0] [1]
#    나 다 [1] [2]
#    다 라 [2] [3]
>>> sample_list = ["가", "나", "다", "라"]
    # i에 0~3까지 차례로 들어감
>>> for i in range(0, len(sample_list) -1):
		print(sample_list[i], sample_list[i + 1])

📍 함수
# 1. 하나의 리스트를 입력받아 홀수만 출력하는 함수를 정의하시오.
>>> def print_even(def_list):
		for i in def_list:
        	if i % 2 != 0:
            	print(i)

📍 클래스
# 1. 사칙연산함수를 메서드로 하는 Calc 클래스를 만드시오.
>>> class Calc():
		def __init__(self, a, b): # 생성자
        	self.a = a
            self.b = b
        def add(self):
        	return self.a + self.b
        def sub(self):
        	return self.a - self.b
        def mul(self):
        	return self.a * self.b
        def div(self):
        	return self.a / self.b
profile
🐰 I'm Sunyeon-Jeong, mallang

0개의 댓글