-
[내일배움캠프] 11/8 화요일 TIL 회고록카테고리 없음 2022. 11. 8. 22:39
오늘은 팀 변경이 있어서 매우 떨리고 설렜다. 신기하게도 난 또 10조가 걸렸다.
9시가 됐는데 한분이 안와서 기다리고 있었는데 매니저님이 오셔서 전화를 해주신다고 하셔서 기다렸다.
몇분 뒤 다시 매니저님이 오셔서 전화기가 꺼져있다고 해서 그냥 4명이서 진행했다.
팀원 중 한명은 10월 말 사전캠프때 같은 팀이었던 분이어서 굉장히 반가웠다 ㅋㅋㅋ
각자 TMI를 하는데 다 전공자 아니면 개발 직군에서 일을 해보셨던 분들이셔서 되게 놀랐고 신기했다.
팀장은 사다리타기로 정했는데 내가 걸렸다.. ㅠㅠ 잘 할수 있을지.. 모르겠다. 열심히 해봐야지.
오늘은 공유해주신 시간표대로 파이썬 문법 기초 1주차를 들었다.
1-0, 1-1, 1-2 필수 프로그램 설치, 파이썬 기초 문법 뽀개기, 파이썬 시작하기
파이썬, 파이참 설치, 파이참 새 프로젝트 만들기를 했다.
1-3 변수 선언과 자료형
a= 5 숫자형
a= '5' 문자형
x = True # 참 y = False # 거짓 # 소문자로 쓰면 자료형으로 인식하지 않고 변수명이라 생각해 에러가 납니다~ z = true # name 'true' is not defined True = 1 # True/False는 변수명으로 쓸 수 없어요!
1-4 문자열 다루기
a= "3" 문자형
a + 5 문자형 + 숫자형은 더할 수 없다.
a = "3" a + 5 # 문자열과 숫자형은 더할 수 없어서 에러!
문자열의 길이는 len() 함수를 써서 구할 수 있다.
print(len("abcde")) # 5
인덱싱, 슬라이싱
f="abcdefghijklmnopqrstuvwxyz" f[1] # b 파이썬은 숫자를 0부터 셉니다
슬라이싱
f[4:15] # efghijklmno f[4]부터 f[15] 전까지, 총 15-4=11개! f[8:] # ijklmnopqrstuvwxyz f[8]부터 끝까지, 앞의 8개 빼고! f[:7] # abcdefg 시작부터 f[7] 전까지, 앞의 7개! f[:] # abcdefghijklmnopqrstuvwxyz 처음부터 끝까지
특정 문자열로 자르고 싶을때 split('문자열')을 사용한다.
퀴즈1 문자열의 앞의 반만 출력하기. sparta 앞의 세글자인 spa 만 출력하기
먼저 name과 result , 출력하기 위한 print(result) 를 만들었다.
spa 만 출력해야하니 .split('문자열') 을 사용하여 잘라보았다.
name= 'sparta' result = name.split('r') print(result)
실행하면 잘 잘라졌다. 0번째 문자열이 spa고 첫번째 문자열이 ta 니 0번째 문자열을 가져온다.
split('r') 뒤에 [0] 을 붙여줬다.
name= 'sparta' result = name.split('r')[0] print(result)
실행 결과
근데 강의에서는 이렇게 풀었다. 상관 없겠지..??
text = "sparta" print(text[:3])
두번째 문제. 전화번호의 지역번호 출력하기 phone = "02-123-1234"
지역번호 02만 출력해야하니 .split('문자열')로 자르면 될 것 같다,
phone ="02-123-1234" result = phone.split('-') print(result)
실행 결과
0번째 문자열 02, 두번쨰 문자열 123, 세번째 문자열 1234니 0번째 문자열을 가져온다.
phone ="02-123-1234" result = phone.split('-')[0] print(result)
실행 결과
1-5 리스트와 딕셔너리
리스트: 순서가 중요하게 값을 담는 코드 (ex: 0번째는 ... 1번째는 ... 2번째는 ...)
딕셔너라: key:value로 값을 담는 방법에 대한 자료형
1. 리스트
a_list = ['사과','배','감'] print(a_list[0]) # a_list 중에 0번째만 출력해라
리스트는 리스트 안에 또 리스트를 만들 수 있다.
a_list = [2,'배',False,['사과','감']]
추가로 만들어진 리스트를 출력하고 싶으면 3번째 값이니까 print(a_list[3]) 으로 출력하면 된다.
print(a_list[3]) # a_list 중에 3번째 값을 출력해라
a_list에서 사과만 가져오고 싶으면 3번째 리스트에 0번을 가져오면 된다.
a_list = [2,'배',False,['사과','감']] print(a_list[3][0]) # a_list 중에 3번째에 0번째 값을 출력해라
실행 결과
해당 코드를 이용하면 리스트에 추가 할 수 있다.
a_list.append()
a_list.sort() : a_list 를 정렬해서 출력 해 준다
a_list = [1,5,6,3,2] a_list.sort() # a_list를 정렬해서 출력 해 준다. print(a_list)
a_list.sort(reverse = True) a_list를 내림차 순으로 정렬 해 준다.
나중에 알고리즘을 풀 때 나올 수 있으니 꼭 외워두기!
a_list = [1,5,6,3,2] a_list.sort(reverse=True) # a_list를 내림차 순으로 정렬 해 준다. print(a_list)
a_list 에 값이 있는지 없는지 확인 해 주는 함수
a_list = [1,5,6,3,2] result = (값 in a_list) # 값이 a_list 에 있으면 True, 없으면 False print(result)
딕셔너리 퀴즈 : name: smith 의 science 값만 출력하기
먼저 people에서 smith 값만 가지고 와야하니 people[2] 를 해준다. (0번째: bob, 첫번째: carry 두번쨰: smith )
result = people[2]
값을 가져 왔으면 이제 science 값을 가져와야하니 먼저 score 값을 가져온다.
result = people[2]['score']
이제 여기서 science 값만 가져오면 끝!
result = people[2]['score']['science']
전체 코드
people = [ {'name': 'bob', 'age': 20, 'score':{'math':90,'science':70}}, {'name': 'carry', 'age': 38, 'score':{'math':40,'science':72}}, {'name': 'smith', 'age': 28, 'score':{'math':80,'science':90}}, {'name': 'john', 'age': 34, 'score':{'math':75,'science':100}} ] result = people[2]['score']['science'] print(result)
1-6 조건문
들여쓰기가 굉장히 중요하다.
money =3000 if money > 3800: # money가 3800보다 크면 print('택시를 타자') else: # money가 3800보다 작으면 print('택시를 타지 말자')
elif문
처음 보는 함수인데 별로 그렇게 자주 쓰이진 않을 것 같다.
money =1000 if money > 3800: # money가 3800보다 크면 print('택시를 타자') elif money > 1200: # money가 3800보단 작은데 1200보단 크면 print("버스를 타자!") else: # money가 1200보다 작으면 print('걸어가자!')
1-7 반복문
enumerate 문과 break 문
for i, person in enumerate(people): # enumerate 문은 요소의 순서를 적어주는 함수 for문 옆에 i가 숫자가 됨 name = person['name'] age= person['age'] print(i,name,age) # i 도 같이 출력되게 함. if i > 2: # 만약 i가 2보다 크면 break # break: 종료문 , 멈춘다.
1-8 반복문 연습문제.
1. 짝수만 출력하기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4] for num in num_list: # for문 (반복문) if num % 2 == 0 : # 만약 num을 2로 나눈 수의 나머지가 0이면 print(num) #num 출력
2. 짝수의 개수를 출력하기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4] result = 0 # 숫자 0을 result 로 선언 for num in num_list: # for문 (반복문) if num % 2 == 0: # 만약 num을 2로 나눈 수의 나머지가 0이면 result += 1 # result에 1을 더한다. print(result) # result 출력
처음에 혼자 만들어 봤을때
이런식으로 나와서 한참 헤맸는데 알고보니 그냥 들여쓰기를 해서 그랬던 거였다.
보면 print(result)가 for문에 들어가있다. 들어가 있으면 안된다.
이래서 들여쓰기가 참 중요하구나..를 알게됐다 ㅋㅋㅋ..
3. 리스트 안에 있는 모든 숫자 더하기
이건 금방 풀었다.
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4] result = 0 # 숫자 0을 result 로 선언 for num in num_list: # for문 (반복문) result = result +num # result에 num 을 더한 값을 result 로 반복해서 넣어줌 print(result) # result 출력
4. 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기
num 이 1이고 maxNum이 0이니까 num이 maxNum보다 크니까 maxNum이 1이되고 다시 for문에 의해 계속 돈다
maxNum이 6이되고 num이 6이될때 num 이 크지 않고
똑같아지니까 for문 종료, maxNum이 6이니까 print(maxNum) = 6 출력
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4] maxNum= 0 # maxNum= 0으로 선언 for num in num_list: # for문 (반복문) if num > maxNum: # num이 maxNum 보다 크면 maxNum = num # maxNum과 num 이 같으면 print(maxNum) # maxNum 출력
1-9 함수
이건 처음 배우는거라 몇번 더 연습해야 할 것같다.. 점점 어려워진다 ㅠㅠ
def bus_rate(age): if age > 65 : # 만약 age가 65보다 크면 0 출력 return 0 elif age >20: # 만약 age가 20보다 크면 0 출력 return 1200 else: # age가 65보다 작고 20보다 작으면 750 출력 return 750 myrate = bus_rate(15) #bus_rate(숫자)를 myrate로 선언 print(myrate) # return 해서 나온 값을 myrate에 저장 후 출력
1-9 함수 퀴즈 : 주만등록번호를 입력받아 성별을 출력하는 함수 만들기
문제 샘플
def check_gender(pin): print('') check_gender('150101-1012345') check_gender('150101-2012345') check_gender('150101-5012345')
먼저 성별 구별은 주민등록번호 뒷자리 첫번째 숫자가 홀수면 남자, 짝수면 여자이다.
그러므로 '150101'-'1012345' 에서 .split('-') 으로 -를 자른 후 또 여기서 앞자리 1만 가져오면 된다.
가져올 숫자를 저장할 변수를 gender라 선언하고 뒷자리 첫번째 문자를 가져온다
gender = pin.split('-')[1][0]
실행 결과
앞자리를 잘 빼왔으니 이제 나누기 2를 해서 나머지가 0이면 여성, 1이면 남성이라고 출력을 하면 된다.
근데 중요한건 빼온 1은 숫자 1이 아니라 문자열 1이다.('150101-1012345' 에서 빼와서 실제 빼온 값은 '1'이다.)
문자열을 숫자로 바꾸려면 int() 함수를 쓰면 된다.
if 문을 사용해서 gender가 2로 나눴을때 0이면 여자, 1이면 남자가 나오도록 코드를 짜주면 끝!
def check_gender(pin): gender = pin.split('-')[1][0] if int(gender) % 2 == 0: print("여성입니다") else: print("남성입니다") check_gender('150101-1012345') check_gender('150101-2012345') check_gender('150101-5012345')
오늘 해야하는 진도까지 다 했다.
웹개발 종합반떄 배운 것이 있는건지 재밌게 한 것 같다.
퀴즈를 주실때마다 막 설렜다 ㅋㅋㅋ 물론 어려우면 답답하고 힘들었지만..
또 내가 팀장이 돼서 떨린다..
나랑 팀원 한 분 제외하고 다 대학 전공자 아니면 관련 업무를 하고 오신분들이라서 긴장된다ㅋㅋㅋㅋ
열심히 해야지!
내일은 파이썬 이어서 전부 다 듣고, 시간이 남으면 어제 들었던 자바를 이어 들어야겠다.
TMI: 열심히 쓰고 있었는데 제 실수로 전부 날라가서 다시 썼습니다 ㅋㅋ ㅠㅠ