20250109 모각코 활동 1회차
오늘의 목표 : 연산자, 조건문, 반복문, 함수 복습
연산자
수식 : 하나의 값으로 평가될 수 있는 표현. 수학적 관계를 나타내는 것이 아님. 연산자와 피연산자로 구성.
- 연산자 : 어떤 연산을 나타내는 기호
- 피연산자 : 연산의 대상이 되는 숫자나 변수를 의미
산술 연산자:
- 거듭제곱(지수)는 높은 우선순위를 가짐
- 거듭제곱 표현 시 왼쪽부터 계산됨..!! abc (<-방향)
- 지수자리에는 실수도 들어올 수 있다
| 유형 | 기호 |
|---|---|
| 덧셈 | + |
| 뺄셈 | - |
| 곱셈 | * |
| 지수 | ** |
| 나눗셈(정수) | // |
| 나눗셈(실수) | / |
| 나머지 | % |
비교연산자:
- 부울BOOL형 T F의 값을 가짐
- 붙어있는 그 자체로 하나임.
- 참 거짓 값을 갖게 된 비교연산자 덩어리들을 변수에집어넣을수도 있음.
| 기호 | 의미 |
|---|---|
| == | 두 피연산자의 값이 같으면 T |
| != | 두 피연산자의 값이 다르면 T |
| > | 왼피가 오피보다 크면 T |
| < | 왼피가 오피보다 작으면 T |
| >= | 왼피가 오피보다 크거나 같으면 T |
| <= | 왼피가 오피보다 작거나 같으면 T |
논리연산자:
- 부울BOOL형 T F의 값을 가짐
| 표현 | 의미 |
|---|---|
| A or B | AB 둘 다 F여야 F |
| A and B | AB둘 다 T여야 T |
| not A | 개굴개굴(청개구리라는뜻.. "아니다~") |
복합 할당 연산자:
- 붙어있는 그 자체로 하나임.
- 비트 단위연산자에도 적용 가능
| A 연산자 B | 예시 |
|---|---|
| += | A = A + B |
| -+ | A = A - B |
| *= | A = A * B |
| /= | A = A / B |
| //= | A = A // B |
| %= | A = A % B |
| **= | A = A ** B |
비트 연산자:
- 숫자를 2진수로 변환해서 비트 단위로 연산하는 연산자
| 연산자 | 의미 |
|---|---|
| & | AND |
| ` | OR |
| ^ | XOR |
| << | 왼쪽 시프트 |
| >> | 오른쪽 시프트 |
? 시프트 ?
- 비트를 왼쪽 또는 오른쪽으로 이동시키는 것.
- 왼쪽 시프트 : 비트를 왼쪽으로 밀고 오른쪽에 0을 채워넣음 (값이 두 배)
- 오른쪽 시프트 : 비트를 오른쪽으로 밀고 왼쪽에 0을 채워넣음(값이 절반)
그 외:
- 0제외 모든 수 : T
- 0 : F
- 문자 : T
- 공백문자 "" : F
- None : F
연산자 우선순위:
| 순위 | 연산자 |
|---|---|
| 1 | () |
| 2 | ** |
| 3 | ~, +, - (음수, 양수) |
| 4 | *, /, %, // |
| 5 | +, - (덧셈 뺄셈) |
| 6 | AND (비트연산) |
| 7 | XOR, OR (비트연산) |
| 8 | <=, <, >, >= |
| 9 | ==, != |
| 10 | =, %=, /=, //=, -=, +=, *=, **= |
| 11 | Is, is not |
| 12 | In, not in |
| 13 | not, or, and (논리연산) |
조건문
순차구조 : 여러 명령이 순차적으로 실행되는 구조
선택구조 : 여러 개 중 하나의 명령문을 선택하여 실행하는 구조
반복구조 : 동일한 명령이 반복되면서 실행되는 구조
조건식 : 조건을 만족하는지 그렇지 않은지를 판정하는 식, 부울형으로 평가됨
| 코딩의 형태 | 특징 |
|---|---|
| if 조건식 : (실행할 내용의 식) elif 조건식 : (실행할 내용의 식) else: (실행할 내용의 식) |
- If는 조건에 의한 실행 구조를 알리는 예약어, - 조건식은 블록을 실행할 조건 - (실행할 내용의 식)은 조건에 따라 실행될 코드 블록이다 1. 조건식을 평가한 결과가 True 이면 실행할 내용이 실제로 실행됨. 2. 들여쓰기 반드시 해야함 3. 블록: 특정한 동작을 위해 코드가 모여있는 상태 4. 배타적 조건 : if -(if가 거짓이면)- elif -(if, elif가 거짓이면)- else 5. if문 안에 또 if문 넣기 가능 |
반복문
반복
- 횟수 제어 반복(for문) : 반복 횟수 지정
- 조건 제어 반복(while문) : 특정 조건 만족시 계속 반복
| 코딩의 형태 | 특징 |
|---|---|
| for i in (시퀀스형의 무언가) : (실행할 내용) |
- for은 횟수에 따른 반복 구조를 알리는 예약어. - i는 블록의 반복을 제어하는 변수. 시퀀스의 값이 차례로i에 들어가게 됨. - 시퀀스형의 무언가 : 리스트, 문자열, range() - 실행할내용은 반복적으로 수행될 for블록 이다. |
| While (조건식) : (실행할 내용) if 조건식: break |
- while은 조건에 따른 반복 구조를 알리는 예약어 - 조건식은 하위 블록을 실행할 조건. 조건식이 참일동안 반복된다. - 실행할내용은 반복적으로 수행될 while블록이다. - while문 밖에 s=0 변수를 만들어두고 누적하여 값을 더하는 방식을 사용하면, 일정한 횟수동안 반복할 수 있다. - if 조건식을 사용해서 break를 사용해주면, 무한루프를 빠져나오게 할 수 있다. |
range()함수 : 숫자 시퀀스를 생산하는 공장임.
- range(start=0,stop,step=1) : start와step은 따로 지정하지 않으면 0과 1로 지정. 반드시 지정해야하는 값은 stop값.
break : 반복 루프를 즉시 빠져나감.
continue : 루프를 빠져나가지 않고 아래쪽 문장을 건너뛰기만 함.
함수
객체와 메소드와 함수:
- T =turtle.Turtle() -> T라는 변수로 거북이 객체를 생성
- T.shape("turtle") -> 거북이 객체 T에 shape()라는 명령을 내림 이 때 shape()는 메소드
- t.forward(100) -> 거북이 객체 T에 forward()라는 명령을 내림 이 때 forward()는 메소드
- print('helloworld') -> 'helloworld'라는 문자열을 출력하기 위한 명령을 내리는 print()함수.
- 함수 : 여러 개의 매개변수를 가질 수 있고, 이 매개변수를 통해 일을 함. 객체가 없더라도 일을 할 수 있고, print()처럼 단독으로 사용 가능. 함수()
- 메소드 : 매개변수 가질 수 있음. 클래스의 일부로 메소드가 존재하며( 아마 메소드가 클래스의 일부로서 존재한다는 뜻 같음 ) 객체가 있어야 일을 할 수 있음. 객체.메소드() 느낌으로 사용해야함
함수의 장점:
- 코드의 재사용성 증가
- 가독성 향상
- 유지보수 용이
문자열 다루기(텍스트 처리)
-
a='abcde'=>문자열
-
문자열 안에 있는 개별 문자들을 추출하는 작업이 기본적. (문자열을 문자로 분해)
-
문자열은 인덱스로 접근 가능
-
인덱스(0~)/음수인덱스(-1~)
-
슬라이싱 :
[이상:미만] -
문자열 리스트 변환 :
list('a') -
문자열을 단어로 나누는 작업
a.split()-> 띄어쓰기를 기준으로 구분a.split('.')-> '.' 을 기준으로 구분- => 즉, split()의 괄호 안에는 기준이 들어가는 거임.
-
단어들을 다시 붙이는 작업
''.join(문자들)-> 문자들이 붙음'-'.join(문자들)-> 문자들이 -을 사용하여 붙여짐.
-
문자열의 출현 횟수 계산
a.count('찾고싶은녀석')
-
문자열이 무엇으로 시작/끝 이 나는지 확인
a.startswith()=> 시작 . 부울형으로 결과가 나옴a.endswith()=> 끝 . 부울형 결과 나옴