이전부터 4차 산업혁명이나 빅데이터 같은 것에 관심은 있었지만 그저 흥미였을 뿐 더 이상 나아갈 생각을 하지 않았었습니다. 단지 교양수업때 배우는 정도로 만족했었죠. 그러나 이번에 IAB융합전공이란 걸 신청하게 되면서 커리큘럼에 따라 파이썬을 배워야 할 수도 있게 되었습니다. 이에 배웠던 내용을 까먹지 않고자 정리해나가려 합니다.
프로그램은 리플을 사용합니다.
문자열 자료형
len(a) : a의 길이. 공백 포함 17자.
a[3] : a의 3번째(파이썬은 숫자를 0부터 세기 때문에 3번째는 e, 0번째는 L)
a[-1] : a의 마지막(맨 첫 글자가 0인 만큼 그 앞은 -1, t)
a[0:7] : a의 0번째부터 7번째 앞까지. :는 범위('Life is'가 해당).
더하기로 문자열을 더할 수도 있음.
a[4:] : a 4번째부터 마지막까지. a의 네번째는 공백이므로 ' is too short'가 해당.
%d - %정수(Integer)
%s - %문자열(String)
%% - %(Percentage) 자체
%숫자 - 전체 길이가 숫자만큼임을 의미.
%10s - 오른쪽정렬 + 문자길이 10자(공백 + hi의 길이 = 10)(KERIA는 제외)
%-10S - 왼쪽 정렬 + 문자길이 10자(hi + 공백 = 10)(KERIA는 제외)
%N.nf - 전체 길이가 N + 소수점 n번째 자리까지 표현(여기서 .는 소수점 포인트로, 소수점 뒤에 나올 숫자의 개수 의미)
format함수를 활용해 이런 식의 입력이 가능하다. 문자열 두 가지만 사용했지만, 숫자나 인덱스 등도 가능하다.
{0:<12} - 왼쪽정렬 + 자릿수 12(Hello 포함이므로 띄어쓰기 7칸)(MINSEOK은 포함 X)
{0:>5} - 오른쪽 정렬 + 자릿수 5(띄어쓰기 3칸 + hi)
{0:^20} - 가운데 정렬 + 자릿수 20(hello keria(11자) 포함이므로 5칸 / 4칸 띄어쓰기)
{0:♡^15} - 가운데정렬 + 자릿수 15 + 빈칸 ♡로 채우기
join - 2020DRX사이에 " ♡ " 를 넣어줌(매 글자마다)
lower, upper - 소문자 / 대문자로 변경
replace(a, b) - a를 b로 변경
split() - ()기준으로 문자열 나누기(아무것도 안 쓴 경우 공백기준이므로 2020DRX가 그대로 프린트됨)
split(' ') - 스페이스바 기준으로 나눔(한 자 한 자 사이에 공백이 있으므로 모두가 개별 문자열이 됨)
딕셔너리 자료형
맨 처음 딕셔너리 S에는 (key값)Doran, Pyosik, Chovy, Deft, Keria 설정 -> 후에 S['Solka']로 'Solka' : 'Drx' 추가 -> del S['Solka']로 삭제
print(S['Chovy'])는 Chovy(KEY)의 값인 HLE(Value)를 표시.
※for은 반복문. 새로운 변수 's'는 S의 key값들을 받아 하나씩 반복. (Doran / Pyosik / Chovy / Deft / Keria 한줄씩 표시)
keys - key들만 모아 표시, values - value들만 모아 표시.
리스트가 필요한 경우 list로 변환시켜줄 수 있음.
items - key와 value의 쌍을 튜플로 묶은 값을 dict_items로 표시.
get - key값으로 value를 얻을 수 있게 해 줌.
in - 그 안에 있는지 없는지 확인. 있다면 True, 없다면 False.
제어문(While)
While : 조건문이 참인 동안은 while문 안의 내용을 반복적으로 수행.
break : 조건 중지 (커피를 10개 이상 주었을 경우 "커피가 다 떨어졌습니다~"라는 문구가 나오며 while문이 깨짐)
세 자리수 곱셈 문제.
a와 b를 입력받아(472, 385)
a값 * b의 일의자리, a값 * b의 십의자리, a값 * b의 백의자리 값, a값 * b값을 표시하면 된다.
h(시간)와 m(분)을 입력받아 45분 전(알람을 맞출 시각)을 알려주어야 하는 문제.
하루의 시작은 자정(0:00)이고 끝은 다음날 자정 1분 전(23:59).
단순히 45분 전이라 하여 m-45와 h-1, m+15만 생각하면 안된다.
0시 30분을 입력시켰을 때 -1시가 되는 기적이 일어나기 때문..^^
그래서 h=0인 경우와 그렇지 않은 경우를 나누고,
또 m이 45이상인 경우와 그렇지 않은 경우를 나누어 조건을 작성하면 된다.
문제 자체를 이해하는 데 시간이 걸렸던 문제.
입력받은 N값은 두고 n이라는 함수를 만들어 While문 안에 활용할 예정이다.
n을 십의 자리와 일의 자리로 나누고 (n//10은 10으로 나눈 몫, n%10은 10으로 나눈 나머지) 나눈 값들을 더해준 걸 total 함수로 명명한다.
이렇게 나온 total값을 활용하여 new_total 함수를 만드는데, new_total의 값은 n값의 일의 자리에 10을 곱한 것과 total의 일의자리를 더한 값이다.
위의 과정을 반복할 때마다 count에 1이 추가되고, 입력받았던 N값이 new_total의 값과 같아질 때 반복을 중단하고 new_total이 n이 된다.
이후 while이 깨지며 반복 횟수를 표시한다.
여태까지의 진도를 갈무리하여 정리하고 있을 무렵, 합격자들에게 연락이 갔다는 소식을 들었습니다.
융합전공은 결국 떨어진 것 같습니다. 아쉽지만 새로운 학문을 조금이나마 배울 수 있어서 나름 즐거웠고, 여러가지 배운 것 같아 뿌듯하기도 합니다. 소위 '찍먹'해 보았다고 어디 가서 말 할 정도는 되지 않을까요? 아니라면 말구요... ㅎㅎ
'STUDY' 카테고리의 다른 글
코드잇 대학생 코딩캠프 - 4차 산업혁명 생존 가이드(1) (2) | 2021.07.26 |
---|---|
코드잇 대학생 코딩캠프 - 프로그래밍 기초 in Python(2) (0) | 2021.07.13 |
코드잇 대학생 코딩캠프 - 프로그래밍 기초 in Python(1) (0) | 2021.07.05 |
코드잇 대학생 코딩캠프 - 컴퓨터 개론 (1) | 2021.06.27 |
뉴비의 파이썬 배우기 (함수, 사용자 입출력) (2) | 2021.04.29 |