반응형

**파이썬 콘솔 입력

input('메시지') 를 호출하면 한 줄의 텍스트를 입력받고 리턴해주는 함수

 

name = input('이름을 입력하세요');

 

**문자열 데이터를 숫자로 변경하기

int('정수 문자열') : 정수로 변환되서 리턴

float('실수 문자열') : 실수로 변환되서 리턴

 

하나의 정수를 입력받기

n = int(input('정수를 입력하세요')) # 별로 좋지 않은 방법

=>이것은 좋지 않는 방법이다.

함수나 메소드는 독립적으로 하는 것이다.

함수에 함수를 호출할 경우는 늦어진다.

함수 안에 함수 일 경우는 재귀

 

s = input('정수를 입력하세요');

n = int(s);

 

inp = input('정수를 입력하세요') #한줄의 문자열을 입력받아

n = int(inp) #정수로 변환하기

print(type(n)) #자료형 확인

 

**파이썬의 제어문

=>제어문은 하나의 블록

코드:

           내부코드

           내부코드

블록과 상관없는 코드

 

 

1.    분기문(갈림길)

if 표현식:

      표현식의 내용이 True 일 때 수행할 내용

elif 표현식:

      앞의 표현식이 False이고 자신의 표현식이 True일때 수행할 내용

elif 중복 작성 가능

else:

      앞의 모든 표현식이 거짓일 때 수행할 내용

 

=>표현식은 데이터가 만들어지면 전부 표현식입니다.

=>True,False가 아니더라도 파이썬에서는 bool로 간주하는 경우가 있는데

숫자 데이터는 0이 아니면 True 이고 0 False로 간주

숫자 이외의 데이터는 데이터가 존재하면 True데이터가 없으면 False

데이터가 없다는 것은 변수 = None

없는 변수 이름을 사용하면 에러 -Undefined입니다.

=>elif else는 상황에 따라서 생략 가능

=>elif 중복 가능하지만 else1번만 나와야 합니다.

 

1.    하나의 문자열을 입력받아서 남자라고 입력하면 man이라고 출력하고 여자라고 입력하면 woman이라고 출력하고 그 이외의 경우는 잘못된 입력이라고 출력해주는 문제

 

person = input("성별을 입력하세요")

if person == '남자':

      print('man')

elif person == '여자':

      print('woman')

else:

      print('잘못 된 입력')

 

연습 : 정수 한개를 입력받아서 3000 이상이면 대형차

        2000- 2999이면 중형차

        그 이외의 경우는 소형차라고 출력

 

inp = input('정수를 입력하세요')

n = int(inp) #정수로 변환하기

if n >= 3000:

    print("대형차")

elif n>= 1000 and n <= 2999:

    print("중형차")

else:

print("소형차")

 

 

 

정수 한개를 입력받아서 3000 이상이고 7000 이면 대형차

        2000- 2999이면 중형차

      1000- 1999 이면 소형차라고 출력

      나머지 경우는 이상한 배기량이라고 출력

 

inp = input('정수를 입력하세요')

n = int(inp) #정수로 변환하기

if n >= 3000 and n <= 7000:

    print("대형차")

elif n>= 2000 and n <= 2999:

    print("중형차")

elif n>= 1000 and n <= 1999:

    print("소형차")

else:

print("이상한 배기량")

 

2.    while -반복문 (Loop, Iterator)

while 표현식:

            표현식이 False가 아니라면 수행할 내용

           =>while은 대부분의 경우 몇 개 인지 알 수 없을 때 사용하는 반복문

실제 while을 사용하는 대부분의 경우는

 

while True:

           if 표현식:

                       break

           반복 수행할 내용

 

파일에 7줄인지 아는 것은 처음 읽고 있으면 읽어라 없으면 그만하라 이런식으로 읽는다.

한줄 씩 가져와서 더이상 읽을 것 없으면 나완다.

7줄인지 아면 for사용하고 몰라서 while이다.

 

 

3.    for - 반복문 (Loop , Iterator)

=>반복할 횟수를 알거나 데이터의 모임을 순회할 떄 사용

for 임시변수 in 데이터의 모임:

            반복할 내용

=>데이터의 모임에서 하나씩 순서대로 꺼내서 임시변수에 대입하고 내용을 반복

=>데이터의 모임인지 확인하는 방법 : dir을 이용해서 사용가능한 속성 중에서 __iter__가 있으면 이 데이터는 순회가능한 데이터의 모임

 

 

li = [100,200,300]

 

for imsi in li:

            print(imsi)

 

li = [100,200, 300]

print(dir(li)) #__iter__

li = [100,200, 300]

#print(dir(li)) #__iter__

for imsi in li:

    print(imsi)

 

 

 

4.    range

range(시작값, 종료다음 값, 간격) : 시작값 부터 간격 단위로 종료값까지 순회하는 순서열을 생성해서 리턴해준다.

 

print(dir(range(0,10,1)))

 

 

 

 

for imsi in range(0,10, 1):

print(imsi)

 

range(종료다음값): 시작값은 0으로 간격은 1로 설정을 해줍니다.

 

연습문제 1) while을 이용해서 아래와 같은 문장을 출력(신문기사 패턴)

i = 1

while i <= 3:

    print("article",i)

i = i+1

 

 

연습문제 2) for를 이용해서 아래와 같은 문장을 출력

num = 1

num = 16

num = 31

num = 46

for  i in range(1, 5, 1) :

    print("num=" , 15 * i - 14)

 

for  i in range(0, 4, 1) :

print("num=" , 15 * i +1)

 

 

 

=>위와 같은 형태를 출력해보는 이유는 웹에서 데이터를 수집할 때 많은 양의 데이터는 대부분 페이징 처리가 되어 있어서 페이지에 해당하는 URL패턴을 찾아서 프로그램에서 수집할 수 있도록 해주어야 합니다.

 

https://kin.naver.com/search/list.nhn?query=%ED%8C%8C%EC%9D%B4%EC%8D%AC&page=2

https://kin.naver.com/search/list.nhn?query=%ED%8C%8C%EC%9D%B4%EC%8D%AC&page=3

 

 

5.    제어문의 중첩

=>제어문 안에 제어문 사용이 가능

 

6.    break continue

1)    break: 가장 가까운 반복문을 종료하는 제어문

2)    continue: 가장 가까운 반복문의 다음 수행으로 이동하는 제어문

ð  반복문 안에서 if와 함께 사용

ð  파이썬에서는 반드시 if 와 함께 사용

 

for i in range(1,4, 1) :

      if i % 2 == 0:

                 break;

print(i)

ð  짝수가 되면 반복문을 중단하는 것이므로 1만 출력

 

for i in range(1,4, 1) :

      if i % 2 == 0:

                 continue;

print(i)

ð  짝수가 되면 다음 반복으로 넘어가라는 의미이므로 1,3 출력

 

데이터 수집 같은 것들을 할 때 특정 조건을 만날 때 까지만 수집

회사이름으로 올라온 신문기사를 스크랩할 것인데 오늘 날짜에 해당하는 기산만 스크랩하고 하는 경우에는 조건을 만들어서 break를 시켜 주어야 합니다.

 

댓글 수집을 하는 경우 하나의 아이디가 여러 개의 댓글을 남겼다면 이런 경우는 첫번째 데이터만 읽고 나머지는 패스 해버려야 합니다.

이런 경우는 continue를 사용합니다.(조작할 가능성이 높기 때문이다.)

 

똑같은 것이 있으면 댓글 달면 두개씩 똑같은 것있으면 다음으로 넘어가라 continue를 사용한다.

광고에서는 똑같은 ip에서 글이 두개 이상 있으면 읽지 말아라

break는 이것은 하지 말자 : 중복이다.

 

7.    for ~ break ~ else

for 표현식:

      if 표현식:

                 break:

else:

      수행할 내용

=>elseforbreak에 걸리지 않고 전부 수행한 후 종료되었을 때 수행할 내용

for i in range(1,4,1):

           if i % 2 == 0:

                       break

else:

           print("반복문을 전부 수행")

 

ð  이 경우는 2에서 break를 만나서 반복문이 종료되었으므로 else내용을 수행하지 않음

반복문을 수행하다가 문제가 생겼다면 멈춰라

 

 

for i in range(1,4,1):

           if i % 4 == 0:

                       break

else:

           print("반복문을 전부 수행")

 

ð  이 경우는 break를 만나지 않고 반복문이 종료되었으므로 else 내용을 수행

반복문을 수행하다가 문제가 생기지 않았다면 계속 하라

 

이 두가지 경우는 머신러닝은 아니지만 업무 상으로 한다.

이런것은 연차 를 사용하는 것은 매일 찍다가 안 찍으면 쉴 수 없다.

게임은 출석 이벤트 할 경우 1주일 연속 나오면 뭐 주는 것 등 ...

분석은 사용한지 별로 없다.

하지만 구글 analystice에서는 해준다.

 

 

** Function(함수)

=>자주 사용하는 코드를 독립적인 모듈로 만들어 둔 것

=>별도의 메모리 영역을 할당 받아서 코드를 실행

 

1.    종류

1)    Maker Function : 처음부터 제공되는 함수

2)    User Define Function: 사용자가 만든 함수

3)    3rd party Function: 제조사가 주지 않고 내가 만들지 않은 함수로 이 함수들은 패키지를 다운로드 받아서 설치해야만 사용이 가능

 

2.    Python에서 함수를 표현

이름(매개변수) -> 리턴타입

 

이름(매개변수): 이 경우는 이 함수가 데이터를 리턴하지 않는 경우에 가능성이 높음

아래 설명문에서 리턴을 한다고 작성하는 경우도 있습니다.

 

3.    용어

ð  매개변수는 함수를 호출할 때 넘겨주어야 하는 데이터

ð  리턴은 함수를 수행하고 난 후 남겨주는 데이터

ð  리턴이 있으면 출력을 할 수 있고 변수에 저장해서 재사용 가능

ð  리턴이 없으면 출력도 못하고 변수에 저장도 안됨

 

4.    함수의 사용법 확인

help(함수명)

 

help(max)

->가 있기 때문에 뭔가를 준다.

help(list.sort)

->return None이다  반드시 데이터를 받는다 .그래서 sort해서 준다.

리턴이 없다면 내가 데이터를 줘야하고 그 데이터는 변경되여서 온다.

리턴을 안해주면 내거 받을 수 었다.

 

ð   return 이 없는 함수는 내 데이터를 받아서 데이터에 작업을 수행합니다.

 

li = [100,300,200]

print(li.sort())

 

li = [100,300,200]

li.sort()

print(li)

li자체가 정렬된다.

 

python에서는 help 꼭 해주기를 바란다. 예측이 가능하다.

 

5.     파이썬에서는 함수가 일급 객체

ð  파이썬에서는 함수도 하나의 데이터

ð  함수()은 함수를 호출해서 실행하는 것입니다.

ð  함수는 함수가 저장된 곳의 참조를 의미합니다.

 

li = [100,300,200]

li.sort #에러가 안난다.

print(li.sort)

#<built-in method sort of list object at 0x000001870D6CE180>

built-in 함수가 만들어진것이다.

함수의 주소를 쓰버린 것이다.

 

6.    빌트 인 함수 확인

dir(__builtins__)

 

파이썬에서 __ 있는 것은 예약어 (시스템이 사용하는 것)

print(dir(__builtins__))

아래의 것들은 처음부터 주는 함수이다.

 

 

 

반응형

'Study > Python' 카테고리의 다른 글

python-13  (0) 2020.10.26
python-12  (0) 2020.10.26
python-10  (0) 2020.10.26
Python-9  (0) 2020.09.12
python-8  (0) 2020.09.12

+ Recent posts