한 주가 다시 시작이 되었다.
오늘 하루도 파이팅을 해서 시작하도록 하자!
일단 파이썬을 배우기 전에 파이썬을 설치하는 방법부터 배워보자.
https://www.python.org/downloads/windows/
Python Releases for Windows
The official home of the Python Programming Language
www.python.org
파이썬을 다운로드 받는 사이트이며 우리가 배우게 될 파이썬의 버전은 3.8 버전이다.
버전이 너무 높으면 실행에 오류가 나는 경우가 발생하기 때문에 사용하는 버전에 맞추어 설치를 해주는 것이 좋다고 한다.
그다음으로는 PyCharm을 설치하면 되는데
https://www.jetbrains.com/ko-kr/pycharm/download/?section=windows
파이참은 파이썬을 사용하기 편하게 하는 프로그램이다.
그렇기에 파이썬과 함께 설치를 해주는 것이 좋다.
위와 같이 파이참에서 프로그램을 만들어줄때 설정해 주어야 하는 부분이다.
파이썬 명령어 알아내는 법
강의에서는 구글링을 적극 추천을 한다.
모르는 것 찾아보는 방법
이런식으로 인터넷에 검색을 하면 알 수 있다.
a와 b는 동일한 문자 형식의 2를 가지고 있으며 덧샘의 값은 22가 나온다.
len명령어는 문자의 총길이를 나타내는 값이며 print의 결과 값으로는 10이 출력이 된다.
문자열 나누기
다음으로는 글자중에서 원하는 부분만 출력을 하는 방법은 아래와 같다.
★ 결과 ★
이렇게 나오는데 내가 처음에 생각했던 것은
[:3]은 앞에 3글자만 가져와 달라고 생각해서
asd인 것으로 예상대로 나왔으나
[3:] 은 뒤에서 3글자라고 생각을 하여서 dva로 나올 것이라고 예상을 했습니다.
하지만 결과 값으로는 qwfsdva라는 3번째 이후의 결과 값을 나오게 된 것으로 보아서
내가 이해한 것으로는 [:]을 나눌 때 :을 기점으로 숫자를 어디에 적어야 하는지는 잘 생각을 하여서 표기를 해야겠다고 생각이 들었습니다.
추가로 사이의 값만 출력하는 것도 가능합니다.
★ 결과 ★
이걸 보고 나서 이제 제대로 이해를 하게 되었는데
: 은 표시가 될 내용 부분으로 이해를 하면 되고
: 의 앞부분에 숫자를 적으면 그 자릿수 다음으로 문자를 표기를 해 달라는 말이고
: 의 뒷부분에 숫자를 적으면 전체 자릿수를 기준으로 표기한 자릿수까지 표기를 해달라는 말인 것으로 이해를 했다.
예시를 들자면
'안녕하세요 박현준입니다'
라는 글자를 적었을 때
[5:8]이라고 적으면 5번째 이후인 '박'부터 8번째 자리인 '준'까지 표기를 해야 하므로
'박현준'이라는 글자가 출력이 됩니다.
특정 문자를 기준으로 문자를 나누기
앞에서는 내가 문자의 길이를 기준으로 나누기를 했지만 모든 문자의 길이를 알야 하는 문제와 문자의 길이가
달라지면 다시 길이에 맞추어 나누어 주어야 하는 문제가 있기 때문에
특정 문자를 기준으로 나누어 주는 방법이 있다.
그것을 split을 이용하는 방법으로
★ 결과 ★
내용을 보면 이메일에 항상 포함이 되어 있는 @을 기점으로 왼쪽과 오른쪽 글자를 나누어 리스트에 넣어주는 방법이다.
이중에서도 내가 원하는 리스트의 값을 가져올 때에는
★ 결과 ★
중괄호를 이용하여 원하는 리스트의 번호를 가져올 수 있다
※ 참고※
리스트를 꺼낼 때에는 0번부터 시작을 한다는 것을 잊지 말도록 한다.
여기서 뒤에 split을 한번 더 넣어줄 수도 있다.
★ 결과 ★
필요한 주소만 가져오기 위해서 0번을 골라주면
★ 결과 ★
이렇게 스파르타라는 주소만 빼서 가져올 수 있다는 것이다.
문제 풀이
전화번호의 지역번호를 출력하는 방법
★ 결과 ★
전화번호에서 '-'를 기준으로 스플릿을 해주면 총 3개의 리스트가 생성이 되는 것을 알 수 있다.
그중에서 우리가 필요로 하는 리스트는 0번이므로
★ 결과 ★
[0]을 뒤에 넣어주면
02라는 값을 가져올 수 있게 된다.
리스트 활용하기
★ 결과 ★
리스트에는 숫자, 문자, 참/거짓, 또는 리스트까지 넣어줄 수 있다.
print문을 보면 리스트 3번을 출력해 주고 값이 리스트니 그 리스트 중 1번을 꺼내 달라고 해서
감이 출력이 되었습니다.
리스트 추가하기
이미 선언이 되어있는 리스트에 내가 원하는 리스트의 값을 추가로 넣어주는 명령어인
append를 사용하여 값을 추가로 넣어줄 수 있다.
★ 결과 ★
이때 추가된 값은 맨 마지막줄에 추가로 붙어진다.
※ 파이참의 단축키 ※
ctrl + D를 하면 지금 커서가 있는 줄을 아래에 똑같이 복사를 해준다.
추가로 줄복사를 할 때 줄을 드래그할 필요 없이 커서를 놓고 ctrl + c를 해주면 그 줄이 복사가 된다.
★ 결과 ★
리스트 형식도 : 을 이용하여 필요한 부분의 리스트만 부분 출력하는 것이 가능하다.
-1을 값으로 넣는다면??
★ 결과 ★
신기하게도 맨 마지막의 값이 나오게 된다.
이대로 -2,-3,-4를 넣으면 뒤에서 2번째 3번째 4번째의 값이 나오게 되는 것으로 보아
-를 붙이면 뒤에서부터라는 표현 방식이라는 것을 알 수 있다.
len을 붙인다면?
★ 결과 ★
리스트의 총길이의 값이 나오게 된다.
리스트의 값을 순서대로 정렬을 하고 싶다면?
★ 결과 ★
sort를 이용하면 정렬을 해서 값을 표기할 수 있다.
🔑추가적으로
reverse를 붙여주면 반대로 역순으로도 표기가 가능하다
★ 결과 ★
🔑 리스트 찾기 기능
★ 결과 ★
in을 사용하면 리스트 안에 원하는 값이 있는지 판단하여 있으면 True 없으면 False를 출력한다.
딕셔너리 활용하기
★ 결과 ★
딕셔너리는 key 키 와 답으로 나오는데 알맞은 키 값을 입력하면 거기에 해당하는 데이터 값을
출력하여 주는데 딕셔너리 안에서도 리스트를 넣어줄 수 있다.
딕셔너리 리스트 출력방법은 위와 같으며 먼저 키값인 friend를 입력하고 리스트 순서를 입력해 주면
그 값에 해당하는 값을 출력하여 준다.
★ 결과 ★
이미 만들어진 딕셔너리 안에 추가로 새로운 키와 값을 넣어주는 것도 가능하다.
리스트와 동일하게 딕셔너리 내부 유무 확인도 가능하다.
★ 결과 ★
리스트 안에 딕셔너리도 가능하다.
★ 결과 ★
1번 리스트에 age키 값을 가져오시오.
문제 풀이
리스트 중에서 smith의 과학점수를 출력하여 주시오
★ 결과 ★
먼저 리스트 형식으로 되어 있는 번호에서 2번을 골라주고 거기에 스코어 딕셔너리를 골라준 다음에 과학점수를 키값으로 넣어주면 90점이라는 점수가 출력이 된다.
조건문 만들기
★ 결과 ★
조건문을 사용할 때에는 들여 쓰기를 아주 유심히 봐야 한다.
: 를 쓰고 한 줄을 띄울 때
들여 쓰기를 한 부분은 모두 조건문의 결과 값으로 출력이 되는 부분이 되는데
들여쓰기 줄이 달라지면 해당이 되지 않기 때문에 오류가 발생을 하거나
다른 곳에서 출력이 될 수 있기에 유심히 보면서 해야 한다.
★ 결과 ★
elif를 사용하면 다른 조건을 걸어줄 수도 있다.
반복문을 이용해 보자
★ 결과 ★
과일이라는 리스트를 하나씩 꺼내어 aaa변수에 집어넣어서 반복문을 실행 시는 것이다.
그리고 리스트가 끝이 나면 반복문이 종료가 된다.
리스트의 번호 순서를 넣어주고 싶을 때 좋은 방법
enumerate 랑 for 앞에 i 변수를 넣어주면 리스트 순서를 i의 값에 넣어주면서 반복문을 실행시켜준다.
문제 풀이
Q. 리스트에서 짝수만 출력하는 함수 만들기★ 결과 ★
리스트에 맞추어 하나씩 꺼내어 주고 거기에서 비교조건문을 걸어 참일 경우에 값을 출력하여 준다.
Q. 리스트에서 짝수의 개수를 출력하기
★ 결과 ★
카운트 변수를 하나 넣어주고 조건에 해당하는 값을 찾았을 때마다 카운트에 추가하는 조건을 넣어주고
마지막으로 반복문이 끝난 후에 카운트의 값을 출력하여 주면 된다.
Q. 리스트 안에 있는 모든 숫자 더하기
★ 결과 ★
반복문에서 카운트에서 하나씩 더해주는 방법으로 문제를 해결하였습니다.
Q. 리스트 안에 있는 자연수 중 가장 큰 숫자 구하기
★ 결과 ★
하나씩 꺼내서 결괏값이랑 비교를 하고 그 값이 비교값보다 크다면 비교값이 현재의 값을
넣어주는 식으로 하면 가장 큰 값을 넣어줄 수 있다.
함수의 사용
함수를 선언하고 우리가 언제든지 필요한 실행문이 필요로 할 때 꺼낼 수 있는 상자 같은 느낌이다.
★ 결과 ★
hello() 함수를 만들고
밖에서 함수를 두 번 호출하면 두 번의 함수가 출력이 되는 것이라고 보면 된다.
함수를 계산하는 용도로도 사용을 할 수 있다.
함수 안에는 계산을 하는 식만 넣어주도록 하고 함수를 호출할 때 값을 넣어주고
결과 값을 받아오는 식으로 생각을 하면 된다.
또 다른 방법으로는 값 결과까지 함수 안에서 설정하여하는 법도 가능하다.
값을 넣고 그 안에서 조건을 받은 다음에 출력하는 방식도 있다.
return 명령문은 다시 값을 되돌려 주어야 하는 일에 사용을 하므로 함수에 꼭 들어가지 않아도 된다.
이처럼 밖에서 값을 사용할 때에는 retrun값을 넣어주어서 값을 밖에서 사용할 수 있다.
주민등록증에 성별 알아맞추는 함수 만들기
TUPLE 튜
일반적인 리스트 형식
하지만 a의 괄호를 ()으로 변경을 해주면
기본적인 결과 값 자체는 잘 나온다 하지만 주석처리 된 결과 값을 변경하는 것을 넣어준다면?
에러가 발생을 한다.
이것은 튜플의 특징으로 리스트를 변경하지 못하게 고정으로 사용하고 싶을 때 사용한다.
SET 집합
set 명령문은 중복을 제거하고 순서대로 정렬하여 집합을 만들어 주는 명령문이다.
이외에도 교집합 합집합도 가능하다.
교집합은 & 합집합은 |(shift + \)을 한다는 것을 기억해 두자
또한 차집합도 가능하다.
- 를 이용하여 a집합에 b집합과 동일한 내용이 있다면 제외시켜주는 것도 가능하다.
f-string
문자와 숫
위에 오류가 생기는 이유는 score는 문자가 아니라 숫자이기 때문에 문자들과 함께 사용을 할 수 없어
str()을 붙여서 문자화시켜주어야 합니다.
하지만 이것보다 간단하게 적는 방법이 있는데 그것은 f-string을 사용하는 것입니다.
print()를 실행 시 문자열 앞에 f를 붙여준다음에 변수를 넣어주는 곳에 {}괄호를 넣어주어 변수를 바로 사용 할 수
있는 것인데 문자, 숫자 상관없이 무엇이든 넣어줄 수 있는 것이 이것에 장점이라고 할 수 있습니다.
TRY 예외
리스트와 딕셔너리를 실행시 모든 딕셔너리가 완전하지 않은 상태에서 출력을 시키면
이와 같이 bobby 부분에서 오류가 발생을 하는데 이때 try를 사용해 주면
에러인 상황에는 excrpt구문을 실행시켜 에러를 넘어갈 수 있게 됩니다.
이렇게 표시를 하면 어디서 에러가 났는지 알 수 있지만
너무 남용을 해서 모든 에러를 패스하게 되면 나중에는 에러를 잡는 것이 힘들어지므로
최대한 에러를 수정하면서 만들어 가도록 한다.
파일 불러오기
py파일을 두 개 이상 사용할 때 다른 파이썬 파일에서 필요한 함수를 가져오는 방법
먼저 내용이 될 함수들을 만들어준다.
그다음에 그 함수를 사용할 py파일에서 맨 위에 from 파일명 import 함수명(*은 모두를 가져온다)을 적어주면
해당 파일에서도 같은 함수를 사용해 줄 수 있다.
내용 줄여 쓰기
if
기존의 방식대로 홀수 조건식을 만들어보면
이렇게 값이 나오는데
이걸 줄일 수 있는 방법으로는
이렇게 가로로 줄여서 적을 수 있다
해석을 하자면
짝수라고 적어줘 만약에 num의 나머지 값이 0과 같다면 아니면 뒤에 있는 홀수라고 표기해 줘라고 할 수 있다
for
for문 또한 줄여서 사용할 수 있다 먼저 아래와 같은 반복문이 있다면?
이렇게 한 줄로 요약을 할 수 있다.
a변수를 2로 곱해달라 a_list를 가져와서 a의 변수에 하나씩 넣어서 반복하는 곳에
MAP, FILTER, LAMBDA 식
map
list에서 특정값으면 변환해서 넣어주는 용도로 사용한다.
map에서 첫 번째 괄호는 리스트에서 꺼내온 값을 변환하는 방식이고
두 번째 괄호는 변경을 위한 리스트를 넣는 곳이다.
map을 통해 리스트에서 데이터를 하나하나씩 빼내어 조건문 함수에서 판단을 한 뒤에 값을 변화시켜 다시 가져온다
값을 가져온 상태는 아직 리스트화되어 있지 않기 때문에 list()에 넣어주어서 리스트화시키면 우리가 볼 수 있는
상태로 변환이 되어 나온다.
lambda
위에서 작성한 함수와 map을 더욱더 간단하게 만들어 줄 수 있는 명령문이 lambda이다
앞에서 적어줬던 내용이 한 줄로 요약을 할 수 있는 것이다.
map안에 lambda를 적고 map형식과 비슷하게 people 리스트 안에 있는 값들을
변수 person을 새로 만들어서 하나씩 넣어준 다음 반복문을 해준다고 보면 된다.
filter
필터는 if문의 해당 값만 가져오는 것이랑 비슷하지만 반목문과 함께 사용할 수 있다는 장점이 있다.
앞에서 사용했던 람다와 함께 이용해서 people에서 하나씩 가져와 person변수에 넣고
바로 조건문을 만들어 나이가 20 이상인 리스트만 가져오게 만들었다.
함수의 매개 변수
위와 같은 식이 있다고 치자
함수를 호출할 때 함수에 선언해 놓은 변수에 맞추어 값을 넣어준다면
위치가 변하였지만 값이 동일하게 나온다는 것을 알수 있다.
함수의 식에서 미리 값을 넣어둔다면 기본값이라고 생각을 하면 편하다.
함수 호출시 값이 들어오지 않았다면 B의 값은 자동적으로 2로 반영을 해서
5의 값을 내보내준다.
앞에 말대로 값을 넣어준다면 기본값이 아닌 함수호출시 넣어준 값이 들어가므로
위와 같은 값이 나오게 된다.
*args
함수선언에 *args를 넣게 된다면 무제한값을 넣을 수 있다는 건데
리스트나 딕셔너리 같이 칸이 있는 것들에
반복문을 사용할 때 쓸 수 있다.
**kwargs
넣어주는 변수들을 딕셔너리 형식으로 변환하여 만들어준다.
클래스의 사용
게임을 할 때 몬스터의 피를 나타내는 값을 적을 때 각 몬스터의 체력을 각 몬스터가 가지고 있는 것 처럼
클래스를 사용하면 m1 = Monster() 라고 했을때 다음부터 "m1."을 적으면 Monster클래스 안에 있는 함수를
사용 할 수 있게 된다고 생각하면 될 것 같다.
클래스에는 각각의 변수에 self를 앞에 붙여 줌으로서 그 클래스마다 변수를 일일히 붙여줄 필요가 없이
태그가 부착이 되면서 m1이면 m1의 데이터 값만 수정이 되는 것이고
m2면 m2의 값만 수정이 되는 것이라고 생각을 하면 된다.
'코딩 교육 TIL' 카테고리의 다른 글
2024-02-21 AI 코딩 TIL (1) | 2024.02.21 |
---|---|
2024-02-20 AI 코딩 TI (0) | 2024.02.20 |
2024-02-08 AI 코딩 TIL (0) | 2024.02.16 |
2024-02-07 AI 코딩 TIL (0) | 2024.02.16 |
2024-02-06 AI 코딩 TIL (0) | 2024.02.16 |