본문 바로가기
🖊️Programming Language/📌Python

[Python] 파이썬 개념 Study

by 빛나고요 2021. 7. 6.
BIG

Study. Python

[Python 기초 교육 내용 정리]

 

📌for 반복문

# 1부터 100가지의 짝수의 합
hap = 0  # 누적합 변수의 초기화
for i in range(0, 101, 2):
  hap += i  #hap = hap + i
print(hap)
  • 위와 같이 누적합을 구할 때는 꼭 변수를 초기화시켜주어야 함

 

📌자료구조

  •  한꺼번에 모아둔 느낌

1) 리스트(list)

- 순서 O

- 수정 O

- [] 사용

#aa = []  #빈 리스트
aa = [10, 20, 30, 40, 50, 60, 70]

# len(aa) # len: 총개수 = 길이

#인덱싱
print(aa[0])
print(aa[-1])  # == print(aa[6])

#슬라이싱
print(aa[:4])  # == print(aa[0:4:1])
print(aa[4:0:-1])
print(aa[:])  # == aa[0:len(aa)] == aa[:len(aa)]  처음부터 끝까지 
print(aa[::-1])  #거꾸로 끝부터 처음까지

- append() 함수

# 주문리스트에 "바닐라라떼" 추가하기
print(order)
order.append("바닐라라떼") #.append() => 리스트에 값 추가
print(order)

['아이스아메리카노', '돌체라떼', '그린티푸라푸치노']

['아이스아메리카노', '돌체라떼', '그린티푸라푸치노', '바닐라라떼']

 

print(order)
order.sort(reverse=True)  #reverse=True => 역순으로 정렬
print(order)

['그린티푸라푸치노', '돌체라떼', '바닐라라떼', '아이스아메리카노']

['아이스아메리카노', '바닐라라떼', '돌체라떼', '그린티푸라푸치노']

 

- for문과 range

aa = [10, 20, 30, 40, 50]

for i in range(0, 5, 1):
  print(aa[i])

 

10

20

30

40

50

 

aa = [10, 20, 30, 40, 50]

for i, a in enumerate(aa, start=1): # start=1 => 1부터 시작
  print(i, a)

1 10

2 20

3 30

4 40

5 50

 

- 리스트 컨프리헨션(list comprehension)

1) 일반적인 방법

# 화씨온도를 섭씨온도로 변경하기
# 섭씨온도 = 화씨온도 * 9/5 + 32

temp = [0, 10, 15, 32, -5, 27, 3]
temp2 = []  #appends

hwa = 0
for t in temp:
  temp2.append(t* 9/5 + 32 )
print(temp2)

2) 새롭게 배운 방법 (for과 if를 안에서 한 번에 다 해결하는 방법)

temp = [0, 10, 15, 32, -5, 27, 3]
temp2 = [t* 9/5 + 32 for t in temp if t > 10.0]  #temp에서 t를 하나씩 가져와서 10.0보다 큰지 확인하고 크면 (t* 9/5 + 32) 계산
print(temp2)

 

2) 튜플(tuple)

- 순서 O

- 수정 X

- () 사용

- append() 함수 사용 불가능

aa = [10, 'abc', True]
bb = [10, 10, 10]
aa + bb

[10, 'abc', True, 10, 10, 10]

 

3) 딕셔너리(dictionary)

- 순서 X

- {} 사용

- key와 value가 한 쌍

emp = {'사번': 1000, '이름':'이이이', '부서':'전산실', '연봉':5000} 
print(emp)
print(type(emp))  # type 확인

{'사번': 1000, '이름': '이이이', '부서': '전산실', '연봉': 5000}

<class 'dict'>

- key값을 이용하여 value값 출력

emp['연봉']

5000

 

- key와 value 추가

emp['주소'] = '대구'
print(emp)

{'사번': 1000, '이름': '이이이', '부서': '전산실', '연봉': 5000, '주소': '대구'}

 

- key와 value값 따로 모으기

emp.keys() #key값만 모으기

dict_keys(['사번', '이름', '부서', '연봉', '주소'])

 

emp.values() #값만 모으기

dict_values([1000, '이이이', '전산실', 5000])

 

- items()

emp.items()

dict_items([('사번', 1000), ('이름', '이이이'), ('부서', '전산실'), ('연봉', 5000), ('주소', '대구')])

 

- 깔끔하게 출력

for k, v in emp.items():
  print(k, ":", v)

사번 : 1000

이름 : 이현정

부서 : 전산실

연봉 : 5000

주소 : 대구

 

📌 함수(function)

  • 반복적인 작업을 뭉쳐서 코드를 간결하게 만들어주는 도구
  • def function_name() : 의 양식으로 함수를 정의

- 함수 사용 예시

# 두 수를 입력받아 덧셈한 후 결과를 리턴해주는 사용자정의함수 생성
# 함수 이름 - myAdder()
# 입력 매개변수 - 2개 => v1, v2
# 출력값 - 입력받은 매개변수를 더한 값 = v1 + v2

def myAdder(v1, v2):
  hap = v1 + v2
  return hap

for i in range(3):
  a, b = map(int, input("숫자 입력>").split())
  res = myAdder(a, b)
  print(res)

숫자 입력>32 12

44

 

- 람다 함수

  • 함수의 이름 없이 사용할 수 있는 익명의 함수(그래도 이름은 있어야 가능)
f = lambda v1, v2 : v1 + v2  # v1, v2 부분은 입력, v1 + v2 부분은 연산 & 출력
f(10, 20)

30

 

- map()

list(map(int, ['10', '20'])) # 10과 20 둘 다 int를 취하라

[10, 20]

 

📌 모듈

  • 함수 < 모듈 < 패키지
  • 모듈의 종류
    • 1) 내장 모듈 : import 모듈명
    • 2) 사용자 정의 모듈 : import 모듈명
    • 3) 외장 모듈 : pip install 모듈명 -> import 모듈명

 

🔷 로또 추첨기

# 한줄로 하는 로또 추첨
import random

random.sample(range(1, 46), 6)

 

🔷 모듈 import방법 4가지

# 1)
import random
random.randint(1, 6)

# 2) 
import random as rd
rd.randint(1, 6)

# 3) 
from random import randint
randint(1, 6)

# 4)
from random import *
randint(1, 6)

댓글