랜덤한 값 구하기
평소에 랜덤 값 범위를 지정하는게 헷갈렸었는데 이번 강의를 통해 정리해볼 수 있었다.
from random import *
print ( random ()) #0.0부터 1.0 미만의 실수 출력
print ( int ( random () * 10 )) #정수 1부터 9까지 랜덤숫자 출력
print ( int ( random () * 10 + 1 )) #정수 1부터 10까지 랜덤숫자 출력
print ( randint ( 1 , 10 )) #1부터 10이하의 랜덤한 숫자 출력
print ( randrange ( 1 , 10 )) #1부터 10미만의 랜덤한 숫자 출력
문자열 표현과 포맷
#문자열 표현하기
sentence = '''hello my name is python
I can do this !
Python's favorite language is Java!''' #이대로 출력
a = "파이썬님의 몸무게는 70.4kg입니다."
name = "파이썬"
weight = 70.4
print ( name + '님의 몸무게는' + str ( weight ) + 'kg입니다.' )
print ( ' %s 님의 몸무게는 %0.1f kg입니다.' % ( name , weight ))
print ( " {} 님의 무게는 {:0.1f} kg 입니다." . format ( name , weight ))
print ( " {name} 님의 무게는 {weight} kg입니다" . format ( name = "자바" , weight = 70.4 ))
항상 헷갈렸던 포멧 표현방법!
%d = 정수 %s = 문자 %f = 실수형을 의미한다
표현 형식 print(" %s %d %f" %(변수)) print("{} {}".format(변수)) print("{변수1} {변수2}".format(변수1=" ", 변수2=" "))
변수를 바로 넣는 것보다 한줄로 프린트할 내용을 작성할 수 있다는 점이 참 편리한 거 같다.
세 가지 방법 모두를 기억하긴 힘들 것 같고, 첫 번째 방법을 기억해두어야겠다.
랜덤함수와 포멧 표현방법을 사용하는 예제를 풀어보았다.
#예제
#성인이 되어서 취직한 친구들과 1년 중 두 번은 정기적으로 만나기로 하였습니다.
#조건1: 랜덤으로 뽑아야 합니다.
#조건2: 하반기(7~12)와 상반기(1~6)에 한 번씩 만나야 합니다.
#출력문: 정기모임은 상반기 x월 하반기 x월에 진행합니다.
from random import *
first = str ( randint ( 1 , 6 ))
second = str ( randint ( 7 , 12 ))
print ( '정기모임은 상반기 %s 월 하반기 %s 월에 진행합니다.' % ( first , second ))
#출력결과: 정기모임은 상반기 3월 하반기 8월에 진행합니다.
리스트에서 자주 사용되는 연산자들
튜플
tuple1 = 1 , 2 , 3 , 4
tuple2 = ( 'a' , 'b' , 'c' , 'd' )
#튜플 더하고 곱하기
new_tuple = tuple1 + tuple2
print ( new_tuple ) #(1, 2, 3, 4, 'a', 'b', 'c', 'd')
print ( tuple2 * 3 ) #('a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd')
print ( len ( new_tuple )) #8
print ( new_tuple [ 0 ]) # 1
print ( new_tuple [: 3 ]) #(1,2,3)
*튜플과 리스트의 차이점: 리스트의 안의 값은 변경가능, 튜플은 값 변경 불가능
집합자료형 SET
set은 동일한 값은 하나로 취급한다.
set1 = set ( "hello hellen" )
print ( set1 ) #{'n','e','h','o',' ','l'}
list1 = list ( set1 ) #['n','e','h','o',' ','l']
중복되는 문자인 h,l,e는 한 번만 출력된다. set값을 list로 바꾸면 인덱싱이나 슬라이싱이 가능하다
SET의 교집합, 합집합, 차집합
합집합은 '|' 와 union을 써서 구할 수 있다
set1 = set ([ 1 , 2 , 3 , 4 ])
set2 = set ([ 3 , 4 , 5 , 6 ,])
print ( set1 | set2 ) #{1,2,3,4,5,6}
print ( set1 . union ( set2 )) #{1,2,3,4,5,6}
차집합은 '-' , difference로 구할 수 있다.
print ( set1 - set2 ) #{1,2}
print ( set1 . difference ( set2 )) #{1,2}
합집합은 '&', intersection로 구할수 있다.
print ( set1 & set2 ) #{3,4}
print ( set1 . intersection ( set2 )) #{3,4}
딕셔너리
사전명 = {키1 : 값1, 키2 : 값2, 키3 : 값3, ...} 키 = 정수, 문자 등 가능, 리스트 불가능 값 = 리스트 가능 dic = {'a' : 1, 'b' : 2, 'c' :3 } dic['a'] = 1* 키하나에 값이 두 개 이상 될 경우 어떤 값을 불러와야 할지 모르기 때문에 오류 발생
#json 형식
# api = {
# name:"에피노"
# 성별: "남자"
# 전화번호: '0100000000'
# 회원가입일자: '2020-04-03'
# }
형식은 json과 유사하다
fromkeys는 리스트나 튜플을 사전형식으로 바꿔준다.
#fromkeys
list1 = [ 'a' , 'b' , 'c' , 'd' ]
tuple1 = 1 , 2 , 3 , 4
dic1 = {}. fromkeys ( list1 )
dic2 = {}. fromkeys ( list1 , 1 )
dic3 = {}. fromkeys ( tuple1 )
dic4 = {}. fromkeys ( tuple1 , 1 )
print ( dic1 ) #{'a': None, 'b': None, 'c': None, 'd': None}
print ( dic2 ) #{'a': 1, 'b': 1, 'c': 1, 'd': 1}
print ( dic3 ) #{1: None, 2: None, 3: None, 4: None}
print ( dic4 ) #{1: 1, 2: 1, 3: 1, 4: 1}
#함수
dic = { 'a' : 1 , 'b' : 2 , 'c' : 3 }
print ( dic )
print ( dic [ 'a' ]) # 1
#update
dic . update ({ 'f' : 5 })
print ( dic ) #{'a':1, 'b':2, 'c':3, 'f':5}
#del (삭제)
del dic [ 'f' ]
print ( dic )
#keys/values/items/get
print ( dic . keys ()) #dict_keys(['a', 'b', 'c'])
print ( dic . values ()) #dict_values([1, 2, 3])
print ( dic . items ()) #dict_items([('a', 1), ('b', 2), ('c', 3)])
keys(), values()는 리스트 형식으로 값을 출력하고
items()는 튜플형식으로 (키,값) 을 출력한다
zfill은 자릿수를 설정해준다
# zfill
num = 0
while num <= 10 :
print ( "대기번호: " + str ( num ). zfill ( 5 ))
num += 1
#00001,00002,00003,00004,....00010
3자리마다 콤마넣기
#3자리마다 콤마 1,000원
print ( "내월급: {0:,} 원" . format ( 2000000 )) #2,000,000
강의를 마치며..
파이썬은 학교수업에서 매년 수강했지만 여전히 헷갈리는 부분이 많은 것 같다.
유데미 강의를 통해 그동안 헷갈렸던 튜플, 딕셔너리, 리스트 를 집중적으로 공부했다.
while, for문, 함수 같은 문법들도 다시 공부하면서 기초를 다질 수 있었던 시간이었다.
강의 내용을 다 외우지는 못하겠지만 정리해놓은 내용을 활용해 코드를 구현할 수 있을거 같다!
본 후기는 정보통신산업진흥원(NIPA)에서 주관하는 <AI 서비스 완성! AI+웹개발 취업캠프 - 프론트엔드&백엔드> 과정 학습/프로젝트/과제 기록으로 작성 되었습니다. #정보통신산업진흥원 #NIPA #AI교육 #프로젝트 #유데미 #IT개발캠프 #개발자부트캠프 #프론트엔드 #백엔드 #AI웹개발취업캠프 #취업캠프 #개발취업캠프