hiseowon
2022.04.11
@hiseowon님이 새 포스트를 작성했습니다.
[스터디14일차] 클래스, 객체, 메소드
클래스 안에 함수 정의하고 하는게 좀 헷갈림 연습 많이 해봐야할 듯. class Waffle: name = "seowon" choco = Waffle() print(choco.name) class Waffle: name = "banana" kim = Waffle() kim.name = "choco" print(kim.name) origin = int(input("금액을 입력하세요:")) discount = int(input("얼마를 할인하나요?:")) a = discount*0.01 final = int(origin-(origin*a)) print("최종금액은",final,"원 입니다") class Calculator: def init(self,price,discount): self.price = price self.discount = discount def getResult(self): return self.price - (self.price*self.discount/100) price = int(input("원가를 입력하세요")) discount = int(input("할인율을 입력하세요")) calculator = Calculator(price, discount) price("최종금액은",calculator.getResult(),"입니다")
hiseowon
2022.04.07
@hiseowon님이 새 포스트를 작성했습니다.
[스터디12일차] 집합 자료형 학습하기(파이썬 only)
set은 중복데이터는 안됨. 자동으로 제외시킴 set을 {}로 표현할때는 데이터가 하나는 있어야 함 set은 파이썬에서만 사용하며, 인덱스 접근이 안됨. 합집합, 교집합,차집합 가능 a = set([5,2,3,4,5,6,7]) b = set("apple") c = {1,1,1,4,5,66,6,6} print(a) print(type(a)) print(b) print(type(b)) print(c) print(type(c)) 합집합을 나타날 때는, 파이프를 쓰거나 유니온 함수 씀 a = set([1,2,3]) b = set([2,3,5]) print(a|b) print(a.union(b)) print(b.union(a)) 교집합을 나타낼떄 &, intersection() 차집합을 나타낼떄 a-b, b-a, difference() #quiz 문자열에서 공백을 기준으로 단어를 구분하고, 중복단어를 삭제한 다음, 결과를 오름차순으로출력 a = input("문자를 입력해주세요:") b = a.split(' ') b = set(b) b = list(b) b.sort() for i in b: print(i, end= " ") 음 사실 마지막에 for 반복문을 안쓰고 그냥 print(b)를 했는데, 굳이 for문을 써야할까..했다가, 정답예시에 [ ] 리스트 형태로 출력이 아닌 데이터값을 바로 보여주는 거라 for문을 써야되는 거였다.
hiseowon
2022.04.06
@hiseowon님이 새 포스트를 작성했습니다.
[스터디11일차] 튜플 자료형 활용하기
튜플에 대해 배움, 그러다 사용법에 대해서는 좀더 연습이 필요할 듯. 리스트와 비슷하나 데이터 자체를 변경할 수 없음 심화문제는 좀더 이해가 된 후 풀어봐야할 듯 #새로 알 게 된 것 한 가지 데이터를 튜플로 저장할 때, a=(1,)처럼 콤마를 추가해야함. 튜플 데이터는 괄호 () 생략도 가능. a=1,2,3 = (1,2,3) 인덱싱, 슬라이싱은 가능 그러나 튜플 인덱싱에서 데이터를 변환할 수는 없음. 불변의 데이터만을 가지며, 삭제 삽입 변경등 변화를 주는건 안됨. 때문에 값이 변경될 여지가 없는 곳에 많이 사용함. RGB 같이 항상 고정값을 가져가는 곳 튜플은 여러형태 값을 한번에 저장 가능함 a = 10 b = 20 c,d=a,b print(c,d) = 10,20 #최소값, 최대값 함수 튜플형태로 구하기 def minmax(ex_lst): return min(ex_lst),max(ex_lst) a = [1,2,3,4,5] result = minmax(a) print(result) print(type(result))
hiseowon
2022.04.05
@hiseowon님이 새 포스트를 작성했습니다.
[스터디10일차]리스트 자료형 공부하기
파이썬 자료형 중에 가장 중요한 리스트 특징에 대해 알게 됨 생각보다 할 수 있는 기능들이 많고, 거의 자료형 중에 만능 같은..!! 확실히 문제를 푸는데 있어 반복문을 사용하는데 아직 익숙치 못함. 많은 문제를 풀어봐야 할듯.해설을 보면이해가 되는데, 막상 코드 작성이 어려움 .ㅠㅠ #새로 알게 된 것 리스트는 원하는 자료형을 다 담을 수 있음(숫자형,, 문자열 등) 리스트 안에 데이터를 저장 혹은 삭제 할 수 있음. 비어있는 리스트도 만들어서 활용할 수 있음 value = [] 2차원 리스트 = [[1,2,3],[4,5,6]] 가능, [1,2,3] 이 리스트[0]이며, [4,5,6]이 리스트[1]임 #리스트 응용함수 굉장히 다양함 list.append() - 리스트에 데이터 삽입(마지막 인덱스에) list.insert(3,6) -리스트에 원하는 인덱스에, 값 삽입 list.remove(6) - 리스트에 6이라는 값 삭제 list.sort() - 오름차순으로 정렬(문자열 영문 알파벳 순) list.reverse()-리스트값 거꾸로 정렬 del a[i] -삭제 예약어라고 함. a리스트에 i번쨰 인덱스 값을 삭제함 #퀴즈 풀기 요거 잘 이해하지 못함... for x in range(len(a)): if x%2==0:1 a[x]=0 print(a) a = [3,6,2,4,53,1] a.sort() a.reverse() print(a) #심화퀴즈 sum=[] for i in range(7): a = int(input("점수를 입력하세요:")) sum.append(a) result = 0 for j in sum: result = result+j print("평균", int(result/7)) sum = [] result = 0 for i in range(7): sum.append(int(input("점수를 입력해주세요"))) result = result+sum[i] print("평균", int(result/7))
hiseowon
2022.03.31
@hiseowon님이 새 포스트를 작성했습니다.
[스터디 7일차] for, while 반복문 기초 학습하기
저번 파이썬 때 많이 헷갈렸던 for while 반복문을 다시 학습함 역시나 한번에 잘 이해는 되지 않았지만, 문제 풀면서 조금씩 이해가 됨 코드 안에 또 코드가 있고, 해당 코드가 윗줄에 귀속되어 있는.. 이런걸 이해하느 조금 더 쉽게 느껴짐 문제를 여러개 풀어보면서 익혀야 될듯 #range () 함수 다양하게 사용해보기 for i in range(1,10,2): print(i) range(10): 0부터 9까지 range(1,10): 1부터 9끼지 range(1,10,2): 1부터 9까지, 2간격만큼 , 간격은 음수로도 가능함 for i in range(10,0,-1): print(i) x=3 for i in range(1,x+1): print(i) # for i in range(10): # print(i) # 구구단 만들기, 중첩 반복문 활용 # for i in range(2,10): # for j in range(1,10): # print(i*j,end=" ") # print() # 2줄은 1줄에 속한 코드, # 3줄은 j가 바뀔때마다, 띄어쓰기가 되면서 바뀜. # 4줄은 1번 코드에 속한 코드. i가 바뀔떄마다 print()를 하면 최종 결과에 대해 문단 바꿈이 됨 ] # from re import X # for i in range(1,6): # for j in range(1,i+1): # print(j,end="") # print() # x=1 # while x<=3: # print(x) # x=x+1 # num = 0 # while num <10: # num = num + 2 # print(num) hit = 0 while hit < 5: hit = hit + 1 print("나무를",hit,"번 찍었습니다") if hit == 5: print("나무가 쓰러집니다")
hiseowon
2022.03.30
@hiseowon님이 새 포스트를 작성했습니다.
[스터디 6일차]
휴 다썼는데 인증 오류떠서 다시쓰는 중...(짜증) 오늘도 input활용해 프로그램을 만들었고 if와 비교연산자를 더 많이 활용함! 자료형에 대해서도 체크하면서 하니 어제 배운걸 복습해가는 의미가 있었음. #새로 알게 된 것 비교 연산자는 문자열도 가능함 print('A'=='A') 입력 시, True if -> elif -> else  순으로 사용. else가 사이에 오면 에러뜸 round함수, 반올림 외 소숫점 자리수까지 정할 수 있음. round(num,1)첫째 자리수까지 보여줌) #small quiz money = 6000 if money >= 5000: print("결제가 가능합니다") else: print("결제가 불가능합니다") print("다른 상품으로 변경해주세요!") 들여쓰기 잘하자, 6번째 줄의 print는 이미 조건문을 빠져나온 후 개별로 출력이 되는 #small quiz temp = 35 if temp > 32: fan = False aircon = True elif temp < 32: fan = True aircon = False print("지금 에어콘을 트나요?", aircon) print("지금 선풍기를 트나요?",fan) 이렇게 조건문안에, 변수를 불리안형으로 정의하면 나중에 저렇게 출력할때, 쓸수 있구나~! 아 조건문안에 변수를 쓸 수 있군.ㅎㅎ #오늘의 과제 세과목 점수 평균 50점 이상: 합격, 50점 미만: 불합격 실행결괴1 국어 점수를 입력하세요: 수학 점수를 입력하세요: 영어 점수를 입력하세요: 평균 점수는 63점으로 합격입니다. #내가 만든 것 a = int(input("국어 점수를 입력하세요:")) b = int(input("수학 점수를 입력하세요:")) c = int(input("영어 점수를 입력하세요:")) d = int(a+b+c)/3 if d>= 50: print("평균점수는",int(d),"점으로 합격입니다!") else: print("평균점수는",int(d),"점으로 불합격입니다!") int(d)로 점수 정수로 예쁘게 표현~ #오늘의 과제(2) BMI 프로그램 만들기 BMI= 몸무게(kg)/(키(m)*키(m)) 실행결과1 키를 입력하세요: 몸무게를 입력하세요: BMI 지수가 ...으로 저체중/과체중/정상/비만입니다. 25이상 비만 23~25미만 과체중 18.5~23미만 정상 18.5미만 저체중 a = int(input("몸무게를 입력해주세요:")) b = int(input("키를 입력하세요:")) b_1= b*0.01 c = (a/(b_1*b_1)) bmi = round(c,1) if bmi >= 25: print(bmi,"지수로 비만입니다") elif 23 <= bmi and bmi <25: print(bmi,"지수로 과제중입니다") elif 18.5 <= bmi and bmi <23: print(bmi,"지수로 정상입니다") elif bmi < 18.5: print(bmi,"지수로 저체중입니다") 키는 m니까 0.01곱해서 cm로 변환해줌! 파이썬에서 반올림할떄는 라운드함수를 쓰는데, 뒤에 콤마 숫자를 쓰면 소숫점 자리수를 지정할 수 있음 #오늘의 과제(3) 윤년찾기 만들기 윤년은: 4의 배수이지만, 100으로 나눠 떨어지지는 않는 숫자. 그러나 400으로는 나눠떨어지면 윤년임 실행결과 연도를 입력하세요: 1988년은 윤년입니다. year = int(input("연도를 입력하세요:")) if (int(year)%4==0) and not (int(year)%100==0): print(year,"년은 윤년입니다") elif (int(year)%400==0): print(year,"년은 윤년입니다") else: print(year,"년은 윤년이 아닙니다") if 구문에서는 바로 숫자형 자료형이 올 수 없는건가?ㅇ.ㅇ 이건 좀 헷갈린다. ( ) 튜플형태로만 쓸 수 있는걸까..!!
hiseowon
2022.03.29
@hiseowon님이 새 포스트를 작성했습니다.
[스터디 5일차] input, split, if 구문 활용해보기!
오늘 굉장히 많은 부분을 알게됐다. 특히나 자료형에 대해! 항상 자료형이 개발에 있어 왜 중요한지? 명확하게 와닿지 못했고, 그냥 정해진대로 쓰기만 했는데, 왜 에러가 나는지, 왜 이걸 int나 str 혹은 ()로 [] 따로 표시해줘야하는지 몰랐는데, 이번 퀴즈를 풀어보면서 조금 이해하게 되었다! 5일차에는 input을 활용해 프로그램을 입력 프로그램을 만드는 거였는데, 굉장히 재밌었음! #새로 알게된 것들 슬라이싱 split split는 문자열 슬라이싱해 리스트 형태로 저장해주는 기능[ ] 요런형태로 저장 split는 문자열만 슬라이싱이 가능해 숫자는 안됨. [:] 리스트 형의 자료형에서 순서로 슬라이싱 하는 방법 a = ['사과', '배', '감', '귤'] print(a[0]) 사과 print(a[0:3] 사과 배 감 print(a[:2]) 사과 배 print(a[2:]) 감 귤 input input으로 입력받은 것은 모두 문자열로 저장된다 때문에 숫자형이나 실수로 저장하려면 별도 int(input()), float(input())을 사용해야함. #small quiz a = int(input("정수를 입력하세요:")) print(a + 10) -> 에러남! 문자열로 저장하기 때문에, 문자열+숫자형 오류! #생년월일 변환기 만들기 btd = input("생년월일을 입력해주세요:") print(btd) a = btd[0:4] b = btd[4:6] c = btd[6:8] print(a,"년" ,b,"월",c,"일 생이네요!") 슬라이싱을 이용하긴 했는데, 사실 정답에서는 어제 배운 연산자를 활용하길 바랬다... 그냥 쉬운길도 있으니까...ㅎㅎ 아! 여기서는 굳이 숫자형으로 변환해줄 필요가 없었어서, 문자열로 출력~ #심화문제 - 반올림 계산기 만들기 [결과문] 숫자를 입력해주세요: 10.5 10.5를 반올림하면, 11입니다. 나 혼자 해본 거... (실패) number = float(input("숫자를 입력해주세요:")) if number[2:] <=5: print(number,"를 반올림하면",number+1,"입니다") -> 내가 하고 싶었던 거, 숫자소숫점 자리로 입력하고 세번째 숫자가 소숫점 다음 숫자일테니 -> 그 숫자가 5보다 크면 +1을 해준다라는 뭔가 접근방식은 틀리지 않았던 것 같은데..! -> 아래 해설을 보고 생략된 과정들을 알게됨!! 전에 반올림 함수를 본 것 같아서, round 활용해 봄(성공) number = float(input("숫자를 입력해주세요:")) print(round(number)) round 함수는 소숫점 자리를 없애고, 반올림을 해주는 기능을 갖고 있음! ##🙏해설 추천 답안(진짜 천재라고 생각함ㅠㅠ) number = float(input("숫자를 입력해주세요:")) a = int(number+0.5) print(number,"반올림하면",a,"입니다") 코드해석 1줄: number라는 변수👀는 숫자를 입력해주세요로 출력을 받음(이때 형태는 입력가능한 형태는 실수) 2줄: a라는 변수는 number에 +0.5를 더한 것 값을 정수로 저장한 것 . 정수로 저장하기 때문에 소숫점 X 3줄 : 결과문 출력 **2줄이 가장 중요한데, 실수+0.5를 더하면 다음자리수로 넘어가서 자동으로 반올림이 됨. 대단.. ##🙏해설 추천 답안2(내가 원래 시도하고자 했던 것, 생각보다 과정이 길었음) 요걸 해석하다 보니까, 자료형 구조에 대해 상세하게 알게됨. 추천답안 ver.2를 만들어봄! ver.1(original) number = float(input("숫자를 입력해주세요:")) num_list = number.split('.') num_b = list(num_list[1]) if (float(num_b[0])<5): x = num_list[0] else : x = int(num_list)+1 print(number,"를 반올림하면",x,"입니다") ver.2(자료형 이해하고, 조금 변형해서 만들어본 것!) number = input("숫자를 입력해주세요!:") num_list = number.split('.') print(type(num_list)) num_b = int(num_list[1]) print(type(num_b)) if num_b < 5: x = num_list[0] print(type(x)) print(x) else: x = int(num_list[0])+1 print(number,"를 반올림하면",x,"입니다") 중간중간에 자료형 타입이 궁금해서 계속 print(type())해보면서 어떤 형태로 저장되는지 확인하면서, 하니까 엄청 잘 이해가 됐다. 아~ 이렇게 split사용하니까 []형태의 list로 저장되는구나, 아까 list로 저장된 것중에 내가 [0]번째 데이터만 가져왔기 때문에 str 자료형으로 되어있는거구나 등등 하나씩 상세하게 자료형 구조를 알 수 있어서, 왜 에러가 나는지, 알수 있어서, ㅠㅠ 드디어 자료형의 중요성을 알게 된 좋은 계기였다...
hiseowon
2022.03.28
@hiseowon님이 새 포스트를 작성했습니다.
[스터디 4일차] 산술 연산자 (기초)
덧셈, 뺄셈, 나누기, 몫, 나머지 등 파이썬에서 계산하는 법 기초 배움 이해가 어렵진 않았으나, 퀴즈 푸는데 있어 연습을 통해 다양하게 연산자를 활용해보는 게 좋을 것 같음. 연습문제 코드를 만드는 것에서 굉장히 단순하게 코드를 짬. 확장성있게 고민하는 게 필요. #코드를 짤 때, 문제에 필요한 값들이 무엇이 있는지 나열해본다. 각 값들이 어떠한 과정으로 나와야 하는지 고민해본다. 각 값들을 변수로 정의한다. *확장성을 고려해 정답 외에 다른 값들도 적용 가능한지 테스트해본다. 단순 정답을 출력하는 것외에, 다른 값을 대입해도 사용가능한 코드로 만들어보자! #오늘의 연습 홀짝 구분하기 전에 input을 배운 기억이 나서, if 활용해 만들어봄. number = int(input("숫자를 입력해주세요!")) if number %2 == 0: print("짝수입니다") elif number %2 ==1: print("홀수입니다") 구구단 만들기(교재 그대로 따라해봄) 전에 for 반복문 +range(1,10)으로 만들어 봤던 것 같은데, 교재에 나온 방법으로 일단 따라해봄, 이후 for 구문 나올 때 다시 해바야겠다. a = 5 print(a,"*1=",a*1) print(a,"*2=",a*2) print(a,"*3=",a*3) print(a,"*4=",a*4) print(a,"*5=",a*5) print(a,"*6=",a*6) print(a,"*7=",a*7) print(a,"*8=",a*8) print(a,"*9=",a*9) #오늘의 퀴즈풀기 주어진 금액의 필요한 1000원짜리, 100원짜리, 10원짜리 개수 표시하기 [결과물] 3420원을 계산하려면, 1000원 지폐 3장 100원 동전 4개 10월 동전 2개가 필요합니다. 👀내가 만든 거(처음) 책에서 비추하는 방법으로 나왔다.. 햐햫.. money = 3420 print(money,"를 계산하려면") print("1000원:", money//1000,"장" ) print("100원:", (money-3000)//100, "개"), print("10원:",(money-3400)//10, "개가 필요합니다") ✍️해설보고 다시 해본거 역시나 단순하게 고민하는..! 좀더 확장성 있게, 변수를 대입해 사용하는 방법으로 고민해보자! 요런건 연습문제 같은걸로 👀많이 접해봐야 생각이 확장될 것 같다.ㅠㅠ money = 5000 a = money//1000 b = (money%1000)//100 c = (money%100)//10 print("1000원:", a, "장") print("100원:", b, "개") print("10원:", c, "개") print(money,"는 총 1000원:",a,"장, 100원", b, "개", "10원",c,"개가 필요합니다")
hiseowon
2022.03.25
@hiseowon님이 새 포스트를 작성했습니다.
[스터디4일차 - 자료형 기초]
[자료형] 자료형을 type()을 활용해 바로바로 어떤 형태인지 알 수 있어서 좋았다. 기존 교과에서도 자료형을 가장 많이 보긴 했는데, 사실 매번 까먹는 부분이기도 했고, 왜 중요한지 잘 와닿지 못했던 것도 있었음. 조금 더 명확하게 자료형 종류에 대해 알 수 있었음. 물론 사용법이나, 딕셔너리, 튜플 등에 대한건 뒤에가서 더 확인 해봐야 할 듯 [변수] 변수에 대해서도 명확하게 인지할 수 있었음. 변수 = 특정 데이터를 담아두는 장소! 공간 그러나 동일한 변수값이 덮어쓰기가 되는 부분에 있어 수학의 equal과 혼동이 됨. 이건 잘 기억하고 이해하자. #사실 오늘 기억할 것 하나 print(a,b)했을 때, 예상값을 15 15로 예상. a=10인데 뒤에 b=가 a값을 가졌으니 10, 근데 뒤에 a=15이기 때문에 a=15=b라는 수학적 사고방식으로 생각하게 됨. a = 10 b = a a = 15 print(a,b) 사실 =은 equal이 아니라, 코딩에서의 =은 오른쪽 값을 왼쪽에 저장(대입)한다는 뜻! 때문에, a = 10 , b = a 값으로 저장이기 때문에 위에 (a=10을 저장한다는 것이고), a = 15는 15가 a 값으로 저장된다라는 뜻 고로 print(a,b) 는 15 10으로 출력!
hiseowon
2022.03.24
@hiseowon님이 새 포스트를 작성했습니다.
[스터디 2일차] print 출력 사용하기
기존에 봤던 책보다 상세하게 다양하게 print()출력 형태를 설명해줘서 좋았음. 문제도 풀면서 하니 이해도 잘되고, 되게 쉽지만 실수하기 쉬운 부분인 것 같음. print()사용은 전에 다른책에서도 봐서 쉽게해 볼 수 있었음! sep, end 의미를 정확하게 알게됨. ""문자열 안에 동일한 ""기호 사용하기 ""큰따옴표로 문장을 시작했으면, 사이에 ''작은따옴표를 사용해 ''출력 가능 print("hello,world!") print("작은따옴표 '이것을' 출력하고 싶을떄") print('작은따옴표', "'이것을'",'출력합니다') print('작은따옴표 '이것을' 출력하고 싶을때') -> Error 앞에 세 줄은 정상 hello,world! 작은따옴표 '이것을' 출력하고 싶을떄 작은따옴표 '이것을' 출력합니다 마지막 줄은 에러 forgot a comma?라니 너무 귀여운 에러다:) SyntaxError: invalid syntax. Perhaps you forgot a comma? seowon@Seowons-MacBook-Pro sparta % /usr/local/bin/python3 /Users/seowon/sparta/study00.py  File "/Users/seowon/sparta/study00.py", line 5   print('작은따옴표 '이것을' 출력하고 싶을때') # end =줄바꿈 print("haha") print("hoho") print('nice to meet you', end=" ") print('줄바꿈 안되어야 정상',end=" ") print("만약에 이렇게 한다면?") end="" , end 이후 문장이 띄어쓰기 없이 바로 이어서 출력 end=" ", end 이후 문장이 한 칸 띄우고 이어서 출력 end=" ", end 이후 문장이 두 칸 띄우고 이어서 출력 end="^^", 마지막 문장 바로 이어서 ^^ 출력 됨 #줄바꿈2 print("나는\n파이썬이\n좋아요!") print("나는","파이썬이","좋아요") print("나는"+"파이썬이"+"좋아요") print("나는 파이썬이 좋아요") \n은 줄바꿈 디폴트 문자열 사이 +는 띄어쓰기 없이 출력됨 문자열 사이 , 콤마는 띄어쓰기 있이 출력됨 #sep print("1989","2","23""은 나의 생일입니다",sep="-") print("1989","2","23""은 나의 생일입니다",sep="\n") sep="" 안에 작성한 대로 쉼표 사이에 실행된다 #이스케이프 문자? 이건 책에서 못봤던 것 같은데, 구글링해봐야지 #3줄 출력문 만들어보기 완성문 <to-do-list> ========================================== - 온보딩채널 컨셉안 작성 및 공유하기 [우선순위 : 상] - 공채 입사안내문 제작 [우선순위 : 중] - 30분 나가서 달리기 [우선순위 : 하] ========================================== 1안 오늘 배운 거 활용해보기 처음에 print("=*30")이라고 써서, =30개가 아니라, =*30 텍스트로 출력된 ㅎㅎ print("<to-do-list>") print("="*30) print("-""온보딩채널 컨셉안 작성 및 공유하기""[우선순위","상]", sep=":") print("-""공채 입사안내문 제작""[우선순위","중]", sep=":") print("-""30분 나가서 달리기""[우선순위","하]", sep=":") print("="*30) 2안 sep, end 둘다 써보기 print("<to-do-list>") print("="*30, end="\n-") print("온보딩채널 컨셉안 작성 및 공유하기""[우선순위","상]", sep=":", end="\n-") print("공채 입사안내문 제작""[우선순위","중]", sep=":", end="\n-") print("30분 나가서 달리기""[우선순위","하]", sep=":") print("="*30) 결과는 정상!
hiseowon
2022.03.23
@hiseowon님이 새 포스트를 작성했습니다.
[스터디1일차] - VS Code 설치하기
원래 파이참을 사용하고 있었는데, 조금 무겁기도 하고, 다른 코드 에디터를 사용해보고 싶어서 Visual Studio Code 설치! 확실히 가벼운 느낌이다. 딱히 설치과정에서 어려움은 없었고, 라이센스 같은 것도 필요없고, 무료다! 다만, mac OS에서 설치하다보니 terminal app에서 python --version이라고 입력하니, 2.7버전이 뜬다. mac은 기본 파이썬이 설치되어 있다고. 전에 파이참 쓸때도 자동으로 2.7버전이 셋팅 되어 있었는데, 이것때문에 그런가보다! terminal app>python3 이라고 입력해주면, python3을 사용하는 것으로 변경완료! 셋팅을 끝냈으니, 이제 실전:)