오늘의 주제는
* 실수는 어떻게 구분할까?
1.4, 10.2, ....
* 음수는 어떻게 구분할까?
-2, -4
에서 부터 시작된다.
성적처리프로그램을 만들 던 중
입력으로 들어오는 값 중
음수, 실수(소수점자리수)를 어떻게 구분할까? 라는 문제제기가 되었다.
먼저 음수와 실수의 특징들을보면
음수일 경우
-10, -2, ...... ( 맨 앞에 대쉬(-)로 시작하고 이어서 숫자가 나오는 경우 )
실수일 경우
23.2 ( 숫자나오고 .(점) 문자 후 바로 숫자 )
이러한 문자열들을 구분할 수 없을까?
먼저, str.isdigit() 함수에서는 정수인지만 판별 할 수 있다.
먼저 자료 타입을 더 공부해본다.
파이썬에서 제공하는 자료 타입
- list, tuple, set, dictionary
리스트
- 데이터들의 순서열(sequence)
- 리스트내의 원소들의 값을 변경 할 수 있다. *
- 인덱스 : 0부터 시작한다.
- 표현 : [ ] 이 기호 안에 입력한다.

(리스트 예시, 값을 변경하는 모습)
튜플
- 리스트와 거의 동일 (차이점 : 투플내 원소들을 변경할 수 없다.)
- 문자열은 튜플이다. (문자열은 변경되지 않는다.) *
- () 소괄호로 표시한다.
- 문자열도 튜플이기 때문에 변경할 수 없다.

(튜플을 정의하고 출력하는 모습, 값을 변경하는 경우 에러가 발생한다.)
* 리스트나 튜플의 특징을 이용하면 음수나 실수를 구분 할 수 있다.
이러한 특징 중 내장함수들을 잘 이용해야한다.
https://docs.python.org/3/library/index.html
위의 홈페이지에 들어가보면
파이썬에 관련된 문서들을 찾아볼 수 있다.

(파이썬 공식홈페이지 참조)
순서열에서 사용가능한 연산자들
순서열 -> 문자열, 리스트, 튜플 등등
x in s -> 순서열 검색 s 문자열 내에 x순서열이 존재하는지 체크하는 연산자
s * n -> s 순서열을 n번 반복 (n은 숫자)
s[i] -> s 순서열 내 i번째 원소 가리키는 표시.
s[i:j] -> i번째에서 j번까지 잘라냄 j번을 포함하지 않는다. j번전까지 해서 잘라짐.
len(s) -> s의 길이를 표현
s.index -> 순서열이 시작하는 위치
s.count -> 얼마나 있는지 카운팅함 (안되는 경우도 있다.)

(연산자 사용 예시)
- 슬라이스 가능 -> 슬라이스는 원 자료를 변형시키는 것이 아니라
잘라진 새로운 자료을 만드는 것이다.
* sample = [1, 2, 3, 4, 5]
sample은 위 리스트의 주소를 가지고 있는 참조 변수이다.
그런데 슬라이스는 새로운 자료를 만드는 것이므로
슬라이스해서 입력하면 기존 자료가 변하지 않는다. -> 그래서 튜플도 슬라이스가능한 것이다.

(참조변수로 사용되는 리스트 변수이름)
* partition을 이용해 실수를 체크해보겠다.
-> 파티션은 기준으로 부터 3개의 튜플로 반환한다.

(str.partition(x) 사용 예시)
* 동시지정문 이용
(n, x, m) = '1.4'.partition('.')

(동시지정문으로 .partition 된 결과를 입력받는 모습)
* partition 은 문자열에서만 제공하는 메소드이다.
다른 리스트나 이런데서 사용할 수 없다.
모듈 -> 함수를 모아둔 파일을 모듈이라고 한다.
* 파이썬에서의 함수 작성
입력에 대해 출력이 없으면 프로시져라고 부르고
있으면 함수라고 부른다.
1. 함수(function)
- 출력을 나타내면 함수라고한다.
2. 프로시져(procedure)
- 입력에 대해 출력이 없으면 프로시져라고한다.
3. 메서드(method)
- class 내에 선언된 함수를 정의하면 메서드라고 한다.
-> 결국 세개가 다 같은 맥락이다. 만드는 방법도 같다.
파이썬에서의 함수 정의
ex)
f(x) = 2x + 10 정의
이 함수를 파이썬에서 그대로 표현한다면
def f(x):
return 2* x + 10

(함수 표현)
여러개의 값을 동시에 return도 가능하다. -> 파이썬에서는 동시지정이 가능하기 때문이다.

(동시지정문으로 하나의 함수에서 여러값을 return받는 모습)
위의 기능들을가지고
isneg() -> 음수판별
isfloat() -> 실수판별
함수를 만들 수 있을 것이다.
다음시간에 만들어 보겠다 :)