'python'에 해당되는 글 19건

 ###단축키

import   모듈 호출
math.radians(<각도) 각도  라디안 각도를 변환한다
math.ceil(숫자)   숫자 올림
math.floor(숫자)   숫자 내림
math.pi   3.141592653589793
import 모듈명 as 이름 ...은 모듈을 넣어주고 쓸 이름 정한다 모듈이름을 짧게 만들어준다
form 모듈명 import  사용할모듈   모듈중 호출한거 사용한다
import sys   시작 입력갑 받아오기
from random import ... random, uniform, randrange, choice, choies, sample, shuffle

함수오 값을 가져오기위한 모듈명지정

from datetime import ... datetime, timezone, timedelta 시간 정보 모듈
now.strftime(fmt).format(*"년월일시분초")   시간 정보를 나타냄
__name__    
     

### import

import math

print("math.radians(90) - {0}".format(math.radians(90)))

print("math.ceil(3.2) = {0}"/format(math.ceil(3.2)))

print("math.floor(3.2) = {0}".format(math.floor(3.2)))

print("math.pi = {0}".format(maht.pi))

//math.radian(90) = 1.5707963267948966
//math.ceil(3.2) = 4

### form  ~ import ~

 from math import *
 form math import radians, ceil, floor, pi
 
 print("radians(90) = {0}".format(radians(90)))
 
 print("ceil(3.2) = {0}".format(ceil(3.2)))
 print("floor(3.2) = {0}".format(floor(3.2)))
 
 print("pi = {0}".format(pi))
 

###import  sys

import sys

print("sys.argv => {0} {1}".format(type(sys.argv), sys.argv))

for i, val in enumerate(sys.argv):
	print("sys.argv[{0}] => {1}".format(i,val))

###import random

forma random import random, uniform, randrange, choice, choices, sample, shuffle

print("random() => {0}".format(random()))

print("uniform({0}, {1}) =>{2}".format(1.0, 10.0, unifrom(1.0, 10.0)))
start,stop, step = 1, 45, 2
print("randrange({0}, {1}) => {2}".format(start, stop, randrange(start, stop)))
print("randrange({0}, {1}, {2}) => {3}".format(start, stop, step, randrange(start, stop, step))) //범위 랜덤

data_list = [1, 2, 3, 4, 5]
print("choice({0}) => {1}".format(data_list, choice(data_list))) // 하나선택
print("choice({0}) => {1}".format(data_list, choices(data_list, k=2))) //중복 OK
print("sample({0}) => {1}".format(data_list, sample(data_list, k=2))) // 중복 X

shuffle(data_list) // 섞어서 반환
print("data_list => {0}".format(data_list))

###from datetime import 

from datetime import datetime, timezone, timedelta

now = datetime.now()
print("{0}-{1:02}-{2:02} {3:02}:{4:02}:{5:02}".format(now.year, now.mouth, now.day, now.hour, now.minute, now.second))

fmt = "%Y{0} %m{1} %d{2} %H{3} %M{4} %S{5}"
print(now.strftime(fmt).format(*"년월일시분초"))

##from datetime import datetime

##from pytz import commont_timezones, timezone, utc

form datetime import datetime
from pytz import common_timezones, timezone, utc

for tz in list(common_timezones): //common_timezones 입력값이 있으며 
	if tz.lower().find("paris") >=0: // paris 가있으면 시작 인덱스 값으 반환 없을경우 -1 반환
    	print(tz)
        
tz_utc = timezone(utc.zone)
tz_seoul = timezone("Asia/Seoul")
tz_pacific = timezone("US/Pacific")
tz_paris = timezone("Europe/Paris")


fmt = "%Y-%m-%d %H:%M:%S %Z%z"   /// %Z 객체 나라  %Z UTC시간차이


#UTC 현재 시각
now_utc = datetime.now(tz_utc)
print(now_utc.strftime(fmt))

#Asia/Seoul.strftime(fmt))
now_seoul = now_utc.astimezone(tz_seoul)
print(now_seoul.strftime(fmt))

# US/Pacific 타임존
now_pacific = now_seoul.astimezone(tz_pacific)
print(now_pacific.strftime(fmt))

# Europ/Paris 타임존
now_paris = now_pacific.astimezone(tz_paris)
print(now_paris.strftime(fmt))

 

#__name__

def plus(x, y):
	return x + y
    
    
def minus(x, y):
	return x - y
    
if __name__ == "__main__":
	print("plus(3, 2) => {0}".format(plus(3, 2)))
    print("minus(3, 2) => {0}".format(minus(3, 2)))
    
    
    
    
    //// 아직 잘 모르겟다
    //메인에 서언된 def 에서 이름을 찾으면 실행한다는 건가???

#패키지 사용

from package_mycalc import

op1, op2 = 2, 3

result = module_mycalc_1.plus(op1, op2)
print("plus({0}, {1}) => {2}".format(po1, po2, result))

result = module_mycalc_1.minus(op1, op2)
print("minus({0},[1})=> {2}".format(op1, op2, result))

result = module_mycalc_2.multiply(op1, op2)
print("multiply({0}, {1}) => {2}".format(po1, po2, result))

result = module_mycalc_2.divide(op1, op2)
print("divide({0},[1})=> {2:.2}".format(op1, op2, result))

##로또번호 생성기

import random

lotto = random.sample(range(1, 46, 1), 6)
print(sorted(lotto))   // sorted 오름차순 정열 함수

def imput_start()
	start = 0
    try:
    	start = int(input("로또 번호의 시작 번호를 입력하세요 (기본값: 1): "))
    except:
    	start = 1 
    finally:
    	return start
        
def input_end():
	end = 0
    try:
    	end = int(input("로또 번호의 끝작 번호를 입력하세요 (기본값: 45): "))
    except:
    	end = 45
    finally:
    	return end
        
def input_count():
	count = 0
    try:
    	count = int(input("로또 번호의 시작 번호를 입력하세요 (기본값: 1): "))
    except:
    	count = 6
    finally:
    	return count
        
        
def print_lotto(start, end, count):
	lotto = random.sample(rage(start, end +1, 1), count)
    print("행운의 로또 번호는 ", end="")
    print(sorted(lotto0, end="")
    for i, num in enumerate(sorted(lotto)):
    	if i ==len(lotto) - 1:
        	print("{0} ".format(num), end="")
        else:
        	print({0}, ".format(num), end="")
     
	print("입니다")
    
    

### import lotto

import lotto

start = lotto.input_start()
end = lotto.input_end()
count = lotto.input_count()

lotto.print_lotto(start, end, count)

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

Python 튜플  (0) 2020.01.28
리스트 조작법  (0) 2020.01.24
Python 구문오류와 예외  (0) 2020.01.11
가변함수에 대하여  (0) 2020.01.11
실행 관련 함수  (0) 2020.01.11
블로그 이미지

Or71nH

,

###단축키

SyntaxError   뭔가 파이썬이 해석못하게 되있다는뜻
IdexError   범위가 넘어간 경우
if 제어 :    
    isdigit()   숫자일 경우 True
try 제어 :   되나안되나 검사
except : 예외처리 안되면 실행
else : 예외발생하지 않았을떄 잘되면 실행
finally : 예외발생과 상관없이 실행 언제나 끝나고 실행
except Exception as ex: 거의 마즈막에씀 예외객체 오류 에 대한 정보를 알려줌
except ValueError as ve: 숫자에러있을때 값이 숫자아니면 에러
except ZeroDivisionError as ze: 분모에러있을때 분모가 0일때 에러 
raise 에러코드   강제 에러 만들기

### isdigit()

width=input()
height =input()
area = 0

if width.isdigit() and height. isdigit():
	area = int(width) * int(height)
    print("{0} x {1} = {2}".format(width, height, area))
else:
	print("숫자가 아닌 값이 입력 되었습니다.")
    

 

 

### try

width=input()
height =input()
area = 0

try :
	area = int(width) * int(height)
    print("{0} x {1} = {2}".format(width, height, area))
except:
	print("숫자가 아닌 값이 입력 되었습니다.")
    

### else

width=input()
height =input()
area = 0

try :
	area = int(width) * int(height)
except:
	print("숫자가 아닌 값이 입력 되었습니다.")
else:	
    print("{0} x {1} = {2}".format(width, height, area))

### finally

width=input()
height =input()
area = 0

try :
	area = int(width) * int(height)
except:
	print("숫자가 아닌 값이 입력 되었습니다.")
else:	
    print("{0} x {1} = {2}".format(width, height, area))
finally:
	print("finally 코드 블록은 예외 발생 여부에 상관 없이 실행됩니다.")
    

### except Exception as ex

width=input()
height =input()
area = 0

try :
	area = int(width) * int(height)
except Exception as ex:
	print("{0}: {1}".format(type(ex), ex)))
else:	
    print("{0} x {1} = {2}".format(width, height, area))
finally:
	print("finally 코드 블록은 예외 발생 여부에 상관 없이 실행됩니다.")
    

###raise

def calc_area(w, h):
	if w.isdigit() and h.isdigit():
    	resturn int(w) * int(h)
    else:
    	raise ValueError("숫자가아닌값이 입력되었습니다.")
        
print("사각형의 면적을 구해봅시다.")

width = input("폭을 입력하세요: 0")
height = input("높이를 입력하세요: ")

try:
	area = clac_area(width, height)
expect ValueError as ve:
	print("{0}: {1}".format(type(ve), ve))
expect Exception as ex:
	print("{0}: {1}".format(type(ex), ex))
else:
	print("{0} x {1} = {2}".format(width, height, area))
  

###연습

def input_index():
	num =0
    try:
    	num = int(input("인덱스로 사용할 숫자를 입력하세요: "))
    except ValueError as exception
    	raise exception
    else:
    	return num
        
def print_in_bounds(list, index):
	value - 0
    try:
    	value = list[index]
    except:
    	print("{0} {1}".format(type(exception),exception)
        index = len(list) -1
        print("인덱스는 0 ~ {0}까지 사용할 수 있습니다."format(index))
        value = list[index]
    finally:
    	print("[{0}]: {1}".format(data_list))
        
data_list = list(range(1, 11))
print("data_list: {0}".format(data_list))
try:
	num = input_index()
    print("[{0}]: {1}".format(num1, data_list[num1]))
except IndexError as exception:
	print(exception)
except ValueError as exeption:
	print("{0} {1}".format(type(exception),exception))
except Exception as exception:
	print(exception)
    

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

리스트 조작법  (0) 2020.01.24
Python 표준 모듈과 활용  (0) 2020.01.14
가변함수에 대하여  (0) 2020.01.11
실행 관련 함수  (0) 2020.01.11
Python 변환함수  (0) 2020.01.11
블로그 이미지

Or71nH

,

###표

chr(정수)   문자로 변환
ord(문자)   유니코드 값 (10진수)변환
hex(10진정수)   16진수 변환
int(문자&부동소수) 숫자같이 생긴애들 정수로 변환
float(문자&정수) 숫자같이 생긴애들 소수로 변환
str(객체) 암거나 문자로 변환함
dir(속성정보) 무엇을 할수있나 보여줌 메소드 정보를 출력해줌
globals()   현재의 전역 심볼 테이블을 보여주는 딕셔너리를 반환하는 함수
locals()   현재의 지역 심볼 테이블을 보여주는 딕셔너리 를 반환 하는 함수
id(...) 특정 문자의 주소값 이값을 불러오는 주소를 찾음
isinstance()   포함되나?
insubclass()   부분인가?
     

### dir()

print("dir() => {0}".format(dir()))
//지역 스코프에 대한 정보를 리스트 객체로 반환
data_str = "Hello Python!"
print("dir(data_str) = {0}".format(dir(data_str)))
// 문자열이 가지고 있는 많은 메소드 정보를 리스트 객체에 담아 반환
data_list = [ 10, 20, 30, 40, 50]
print("dir(data_list) => {0}".format(dir(data_list)))
//정수형 리스트 객체가 가지고 있는 메소드 정보들을 리스트 객체에 담아 반환
data_dict = {"key1": 10, "key2" :20, "key3": 30}
print("dir(data_dict) => {0}".format(dir(data_dict)))
//객체가 가지고 있는 메소드 정보들을 리스트 객체에 담아반환



///... 결과는 넘 빡셈 해보셈

###globals() , locals()

class MyClass:
	pass
    
def test_fn(param):
	def inner_fn():
    	pass
    val1 = 5
    val2 = 8
    for item in locals().items():
    	print("\t{0} : {1}".format(item[0], item[1]))
        //첫번째 항목인 키를, 두번째 항목인 값을 접근해 지역 정보 출력
        
value1 = 10
value2 = 20 
obj1 = MyClass()

g = dict(globals())

print("globals()")
for item in g.items():
	print("\t{0} : {1}".format(item[0], item[1]))
    
prnt("\n\nlocals()")
test_fn(10)

잘 이해 안됫음

 

### id()

x = 10
print("{0} x의 주소 값: {1}".format(type(x), hex(id(x))))

y = 10
print("{0} y의 주소 값: {1}".format(type(y), hex(id(y))))

//<class 'int'> x의 주소 값: 0x751e6f00
//<class 'int'> y의 주소 값: 0x751e6f00

####isinstance(), ussubclass

class Parent:
	pass
    
class Child(Parent):
	pass
    
p = Parent()
c = Child()

print("p 객체는 Parent 클래스의 인스턴스입니까? {0}".format(isinstance(p, Parent)))
print("c 객체는 Child 클래스의 인스턴스입니까? {0}".format(isinstance(c, Child)))
print("c 객체는 Parent 클래스의 인스턴스입니까? {0}".format(isinstance(c, Parent)))
print("p 객체는 Child 클래스의 인스턴스입니까? {0}".format(isinstance(p,Child)))

print("Child 객체는 Parent 클래스의 서브클래스입니까? {0}".format(issubclass(Child, Parent)))

//p 객체는 Parent 클래스의 인스턴스입니까?  True 
//c 객체는 Child 클래스의 인스턴스입니까?    True
//c 객체는 Parent 클래스의 인스턴스입니까?    True
//p 객체는 Child 클래스의 인스턴스입니까?    False
//Child 객체는 Parent 클래스의 서브클래스입니까?    True

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

가변함수에 대하여  (0) 2020.01.11
실행 관련 함수  (0) 2020.01.11
Python 수칙연산 함수  (0) 2020.01.08
중복제거  (0) 2020.01.07
Python 가위바위보  (0) 2020.01.07
블로그 이미지

Or71nH

,

###수칙연산

abs(값) 값은 숫자 값을 절대값으로 변환한다
divmod(값,나누기 숫자)

값은 나누고 싶은 숫자 

나누기  숫자는 숫자를 몇으로 나눌건지

변수로 저장이되며 몫 과 나머지를 가진다

결과변수 = {몫.나머지}

pow(값,제곱값) 재곱승의 값 값에 제곱을 하여 반환
all(..., ..., ...,) 안의 모든값이 true or False 로 취급함 0,"", NULL, None 값이 있으면 False 반환
any(..., ..., ...,) 안의 모든값이 true or False 로 취급함 모든 항목이 0,"", NULL, None 값이 있으면 False 반환
enumerate(...) ... => list, tuple, 문자열  리스트같은 애들을 for 함수로 돌리기 편하게 해준다
filter(함수,리스트 변수) 함수중 bool 형으로 만드는것 값이 true 인 값만 리스트에 남는다
filter(lambda,리스트 변수) lambda n: n % 2 == 0 if 같은느낌이다 true 인 값만 리스트에 남는다
list(...)   리스트로 변환해 반환 하는 함수
tuple(...)   튜플로 변환해 반환하는 함수
set(...)   셋으로 변환해 반환하는 함수(
enumerate(dict(...))   딕셔너리로 변환해 반환하는 함수
map(수식, 리스트 변수) 수식은 변환할 공식 수식에 맞게 값들을 대입해 결과값으로 리스트 변수를 만든다
lambda x: x.upper() 소문자 대문자로 바꿈
max(...)   최대값을 반환한다
min(...)   최소값을 반환한다
range(시작 ,까지 ,얼마씩 )   시작부터 끝이 될때까지 지정 수만큼 증가/감소 시킨다
sorted(리스트 변수)   순서를 낮은 값부터 정렬함
reversed(리스트 변수)   순서를 반대로 바꿈
zip(묶을 변수, 묶을 변수, ....)   순서대로 같이 묶음

### divmod

val1, val2 = 9, 5
result_tuple = divmod(val1, val2)

print("divmod({0}, {1}) => 몫 : {2}, 나머지: {3}". format(val1, val2, *result_tuple))

// divmod(9,5) => 목 : 1, 나머지: 4

 

### any

val = [False, "", None]
print("any({0}) => {1}".format(val, any(val)))

//any([False, "", None]) => False

###enumerate

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

for idex, val  in enumerate(data_list):
	print("data_list[{0}]: {1}".format(idx, val))
    
print("-"*25)

for obj in enumerate(data_list):
	print("{0}: {1}, {2}".format(type(obj), obj[0], obj[1]))
    
print("-"*25)

for obj in enumerate(data_list):
	print("{0}: {1}, {2}".format(type(obj), *obj),
    
 // <class 'tuple'>: 0, 10
 // <class 'tuple'>: 1, 20
 // <class 'tuple'>: 2, 30
 // <class 'tuple'>: 3, 40
 // <class 'tuple'>: 4, 50
 

###filter

def iseven(num):
	return num %2 == 0 

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

ret_val = filter(iseven, numbers)
# re_val = filter(lambda n: n % 2 == 0, numbers)
print("{0}".format(type(ret_val)))
print("{0}".format(list(ret_val)))

//<class 'filter'>
//[2, 4, 6, 8, 10]

### 변환함수

data_str = "Hello"

data_list = list(data_str)
print("list('{0}') => {1} {2}".format(data_str, type(data_list), data_list))

data_tulpe = tuple(data_list)
print("tuplre({0}) => {1} {2}".format(data_list, type(data_tuple), data_tuple))

data_tuple = tuple(data_tuple)
print("set({0}) => {1} {2}".format(data_tuple, type(data_set), data_set))

data_set = dist(enumerate(data_set))
print("dict({0}) => {1} {2}".format(data_set, type(data_dict), data_dict))


//list('hello') => <class 'list'> 'H', 'e', 'l', 'l', 'o']
//tuple(['H', 'e', 'l', 'l', 'o']) => <class 'tuple'> ('H', 'e', 'l', 'l', 'o')
//set(('H', 'e', 'l', 'l', 'o')) => <class 'set'> {'e', 'l', 'o', 'H'}
//dict({'e', 'l', ''o', 'H'}) => <class 'dict'> {0: 'e', 1: 'l', 2: 'o', 3: 'H'}

###map()

data_list = list("abcdef")

result = list(map(lambda x: x.upper(), data_list))

print("list(map(lambda x: x.upper(), {0})) => {1} {2}".format(data_list, type(result), result))


//list(map(lambda x: x.upper(), ['a', 'b', 'c', 'd', 'e', 'f']))
=> <class 'list'> ['A', 'B', 'C', 'D', 'E', 'F']

###serted()

data_list = [3, 8, 12, 2, 5, 11]

asc_result = sorted(data_list)

print("{0} {1}".format(type(data_list), data_list))
print("{0} {1}" .format(type(asc_result), asc_result))

print("-" * 35)

desc_result = list(reversed(asc_result))
print("{0} {1}".format(type(data_list, data_list))
print("{0} {1}".format(type(asc_result), asc_result))  //오름차순
print("{0} {1}".format(type(desc_result), desc_result)) // 내림차순

##zip()

data_list1 = [1, 2, 3]
data_list2 = [4, 5, 6]
data_list3 = ["a", "b", "c"]

print("list(zip({0}, {1}, {2})) => {3}".format(data_list1, data_list2, data_list3, list(zip(data_list1, data_list2, data_list3))))

// list(zip([1,2,3], [4,5,6], ['a', 'b', 'c'])) => [(1, 4, 'a'), (2, 5, 'b'), (3,6, 'c')]


// dict(zip(data_list3, data_list1))

 

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

실행 관련 함수  (0) 2020.01.11
Python 변환함수  (0) 2020.01.11
중복제거  (0) 2020.01.07
Python 가위바위보  (0) 2020.01.07
Python 함수 개념  (0) 2020.01.06
블로그 이미지

Or71nH

,

###단축키

def 함수이름():   받을 값과 함수 이름
    명령문   실행하고 싶은거
    return ... ... 돌려줄값 돌려줄 값
def 함수이름(*변수이름): *언팩 연산자 튜플(리스트)처럼 배열로 저장되어 사용할 수 있다
def 함수이름(변수이름, *변수이름): 첫제값 만 한값 받고 2번째부터 튜플(리스트) 처럼 저장

변수도 넣고 리스트도 넣고 싶을때는 순서를 리스트를 뒤에 쓰면된다

def 함수이름(**변수이름): 딕셔너리형 식의 가변 매개 변수 이름과 내용을 둘다 출력해주는 함수만들기 (사전)
    global 변수 전역변수 선언 그니깐 함수안에 변수를 밖에서도 쓸수 있게 제일 높은곳에 저장해둠
함수( lambda a, b: a+b): 미리 계산해서 넣어준다 변수 하나를 받을 수 있는 함수에 전처리를 해준다

함수1():

    함수2():

        return

    return함수2()

클로저 함수 숨기기??

### def

def clac_sum(x, y):
	return x + y 

a, b = 2, 3 
c = calc_sum(a, b)
d = calc_sum(a, c)

print("{0}".format(c))
print("{0}".format(d))

### def 함수이름(변수이름, *변수이름):

def calc_sum(precision, *params):
	if precision == 0:
    	total = 0
    elif 0 < precision < 1:
    	total = 0.0
    
    for val in parrams:
    	total += val
    return total
    
re_val = calc_sum(0, 1, 2)
print("calc_sum(0, 1, 2) 함수가 반환한 값: {0}".format(ret_val))

### def 함수이름(변수이름, *변수이름):

def calc_sum(precision1, precision2, *params):
	if precision1 == 0:
    	total1 = 0
    elif 0 < precision1 < 1:
    	total1 = 0.0
    
    if precision2 == 0:
    	total2 = 0
    elif 0 < precision2 < 1:
    	total2 = 0.0
        
        
    for val in params:
    	total1 += val
        total2 += val
    return total1, total2
    
re_val = calc_sum(0, 0.1, 1, 2)

print("calc_sum(0, 0.1, 1, 2) 함수가 반환한 값: {0}".format(*ret_val))
print("calc_sum(0, 0.1, 1, 2) 함수가 반환한 값: {0}".format(ret_val[0], ret_val[1]))

### def 함수이름(**변수이름):

def use_keyword_arg_unpacking(**params):
	for k in params.keys():
    	print("{0}: {1}".format(k, params[k]))
        
print("use_keyword_arg_unpacking()의 호출")
use_keyword_arg_unpacking(a=1, b=2, c=3)

결과값 

a: 1

b: 2

c: 3

 

뭔가 약속 어긴거 같은데.????

 

### def 함수이름(x, y, operator="+"):

def calc(x, y, operator="+"):
	if operator == "+":
    	return x + y
    else:
        return x - y
        
ret_val = calc(10, 5)

### print("calc(minus,10, 5)의 결과 값 : {0}".format(ret_val))

def calc(operator_fn, x, y):
	return operator_fn(x, y)
    
def plus(op1, op2):
	return op1 + op2
    
def minus(op1, op2):
	return op1 - op2
    
ret_val = calc(plus, 10, 5)
print("calc(plus, 10, 5)의 결과 값: {0}".fomat(ret_val))

ret_val = calc(minus, 10, 5)
print("calc(minus, 10, 5)의 결과 갑: {0}".format(ret_val))

 

### calc(lambda a, b: a + b, 10, 5)

def calc(operator_fn, x, y):
	return operator_fn(x, y)
    
ret_val = calc(lambda a, b: a + b, 10, 5)
print("calc(plus, 10, 5)의 결과 값: {0}".fomat(ret_val))

### 클로저

def outer_func():
	id = 0
    
    def inner_func():
    	nonlocal id
        id += 1
        return id
    
    return inner_func

make_id = outer_func()
print("make_id() 호출의 결과: {0}".format(make_id()))
print("make_id() 호출의 결과: {0}".format(make_id()))
print("make_id() 호출의 결과: {0}".format(make_id()))

'+++++SW 일일 공부+++++ > SW Expert Aademy' 카테고리의 다른 글

중복제거  (0) 2020.01.07
Python 가위바위보  (0) 2020.01.07
Python while  (0) 2020.01.05
Python for문  (0) 2020.01.05
Python 주석 달기  (0) 2020.01.04
블로그 이미지

Or71nH

,