이야기 할 것들 

  • 우물밖을 벗어나자 
  • 네트워크 ,파일
  • 개행문자 



우물 밖을 벗어나자 


내가 지금까지 배운걸 보면 작은 컴퓨터안에서 만드는 것이지만  

외부 데이터를 활용하면 좀더 다양한것들을  할 수있다  ( 우리가 배운건 컴퓨터 안에서 사용법. 다양한 데이터베이스들은 컴퓨터 밖에 있다. )


코드작성을 넘어 네트워크에 접속해서 이런 외부데이터를 가지고 활용하는 법을 익히자 .  이것을 익히려면 네트워크, 데이터베이스 , 파일,등등에 대해 알아야 한다. 

첫걸음으로 '파일' 에 대해 배우자(개념은 인터넷검색 ㄱㄱ) 



파일 


대표적으로 본 여러줄 글의 묶음을 문서파일 이라고 한다. 

내가 지금까지 예제를 풀기 위해  만들었던 파일들이 다 파일이다


파이썬을 이용한 코드 작성중 

open( ) 을 이용해 외부 파일을 가져온다,  이 함수는 실제 파일을 읽기 가능하게 한다 . (파일 핸들을 반환합니다)

-> 참고.  실제로 파일을  그대로 보여주는 것이 아니다.  


open함수의 매개변수는 열고자 하는 파일명 이다.


오픈함수로 파일핸들을 반환해서 우리가 만든 변수에 저장된다 

에시

         x = open('Korea.txt') 


(참고 ,파일안의 내용을 반환하는것이 아니다.  파일핸들을 반환하는것이다.)


파일핸드란? 

파일을 읽을 수도 있고, 파일안에 내용을 쓸 수도 있는것을 의미한다.



개행문자 \n


개행문자 : 다음줄로 가야하는것을 알려주는 문자    ( \n) 

파일을 읽는데 중요한것이 개행문자이다 .  


(참고.  \n 도 하나의 문자이다 ) 

(x\ny) 를 출력하면 

x

이다 .  

이것의 인덱스는  x 0번째,  \n 1번째, y 2번째이다.

이야기 할 내용 

  • 문자열의 특징
  • 메소드? 라이브러리? 
  • 예시를 들어 연습



문자열의 특징 



타입이 문자열일때 각 문자는 정해진 자리와  독립된 인덱스가 있다 (좌표를 갖고 그 좌표는 0에서 시작합니다.)

이걸로 문자열 안의 각 문자를 색인할 수있다. 


예시. 



(b라는 문자는 0번째 자리,,,,, ) 


이것으로 

문자열이 얼마나 긴지 볼 수 있다.  print( len('banana')).   ->  6 

이건 길이는 나타내는것이다 . 좌표를 나타내는것이 아니다  (print(len('banana'))  -> 5.    마지막 좌표는 '5'



문자열에 이런 인덱스는 반복과 조건 루프를 이용해 다양한 활용을 할수 있다. 

문자 있는지 없는지   (예.  k in 'korea'  -> True )

문자 찾기 .      (예.  x ='Korea'   x.find('ea')  -> 3.   ( 3번째 자리라는걸 찾았다 ,  찾는게 없으면 -1을 반환) 


  

메소드 


아무 문자열을 만드는 순간 그 문자열 안에  어떤라이브러리가 포함된다.. ( 이 라이브러리안에는 다양한 메소드를 가지고 있다  )  

그래서 메소드를 사용할 수 있는것이다. 



메소드 : 특수한 형태의 함수호출

원래는 함수에 매개변수(인자)를 입력해서 호출을 했었다. (예를 들면  print( x ).)

메소드는. ' . ' 을 이용해 호출을 한다.(예를 들면 x.find('re') ) 

 

(메소드 좀더 자세한 예시.)

       greet = 'Hello' 

       print( greet.lower). => 소문자 버전 'hello".       



자주쓰는 메소드들


x = 'korea' 를 예로 든다 . 

메쏘드 쓸때 원본훼손 없이 사용 하자.  y = x,upper( ) 이런식으로 새 변수를 만들고 담자 )    


문자 찾기. x.find('re').          ->.2

대문자로 바꾸기 x.upper()    -> KOREA

소문자로 바꾸기 x.lower().    -> korea

바꿔치기. x, replace('a','e').   - > 'koree

여백지우기  x.stripe ( ).  <왼쪽만 , x.lstripe(). 오른쪽만 x.rstrip()   -> ('그냥 공백이 사라져요')

시작여부 확인. x.startswitch('k').  - > True





예시로 연습하자 ( 메소드를이용한 원하는 문자 추출하기) 


(여기서 추출한건 문자열이다 계산시 float( ) 를 쓸것! 


이야기할 내용


  • 함수소개
  • 함수예시
  • 함수는 사실  전부터 쓰고 있었다.
  • 함수에서 쓰이는 인자(=매개변수), return문


<함수>


함수란? : "코드를 저장했다 재사용하는것이다 ."

함수를 쓰는이유는 :  " 같은 작업을 반복시키지 않는것 " 이다. 


예를들어  : 

1.  우리가 쓰던 다섯줄의 코드가 있고  그 코드가 하는 작업을 다시 하고 싶을때  같은 줄의 코드를 다시 입력하고 싶지 않아한다. 

2.  그렇게 쓰던 코드가 프로그램에서 다른 열두곳에서 존재한다면 열두군데 모두 찾아서 고쳐야한다.

 


--> 다시쓸 코드를 저장해두고  호출해서 재사용하는 것이  함수가 작동하는 방식이다. 



<기본적인 함수 형태 >



  • If 구문과 비슷하다 (들여쓰기 내여쓰기)
  • def 로 시작해서 함수를 새로 정의해서 기록(저장)해둠
  • 함수이름인 thing() 을 입력하면 함수를 내보냄
  • 익숙해져야할 부분은 우리가 만든 함수는 실제로 실행되는 부분이 아니라는 점 -> 기억하는 단계라고 보자 .  (저장단계)


<사실 전부터 쓰고 있었다.>


사실 우리는 처음부터 함수를 사용하고 있었다 (예. print(), int() input( ) ......   . -->이것들이 다함수 

결과적으로 우리가 임의로 함수를 만드는것은 우리가 새로운 예약어를 만들어사용하는것이다 





<인자가 들어가는 함수>

함수를 저장하고  호출한다면 인자,매개변수를 입력해서  그함수가 하는 일을 다양하게  할 수 있다.  


예시


<설명 >
greet라는 이름으로 나라면 인사를 호출하는 함수를 저장했다. 
매개변수(lang)에 조건을 두어 다양한 인사를 호출하게 만들었다 .


<반환문 'Return'>
 
함수에 무언가를 집어 넣었다면, 무언가를 다시 가져 오는것이 반환의 개념이다 . 
함수에  무엇을 하던간에  무엇을 호출할지 , 남길지 ,반환할지 지정 할수 있는 문이다.
반환문은 두가지 일을 하는 구문이다 . 



첫번째로 하는일 : 종료. (break 문과 같은점) 
-반환문을 만나면 그아랫줄 코드 읽는 것을 멈추고   함수의 호출을 종료한다
 

두번째로 하는일: 매개변수로 간주된다 .(break문과 다른점)
- 매개변수로 간주되어 반환하고 자 하는 값을 반환하고 종료한다. 
- return은 표현의 잔여값으로 무엇을 남길지 표시할 수 있다.  


(예를 들면)


우리가 쓰는 함수를 쓸때  호출하는 표현식의 관계없이 return으로 출력을 제어하는 방법을 보고있다. 

<return 대해 조금더 알자> 



 (예시 2)



내장 함수 max( ) 를 예시를 든다면,(max = 인자안의 값중 가장큰 값을 호출하는 내장함수) 
max( 'hello world') 를 호출한다면 인자값(int)이 'hello world'가 되고 ...

1.그 변수(int)안 어딘가에
2.(blah ,blah) 반복문을 돌려 무언가를 찾아낸 다음에 
3. return 을 통해 우리에게 다시 무엇을 돌려보내고 싶은지 말하고 있다.




< 결론 >
  •  함수란 쓰던 코드를 한곳에  저장해둔것 ( 필요할때 호출해서 쓸 수 있고,  오류날시 쉽게 찾을 수 있다. )

  • 파이썬을 배우면서 우리는 함수를 쓰고 있었다. (input( ) ,,,, print( ) 
  • 어떤함수의 인자값에 무엇을 입력했을때 무엇을  반환할지 return 으로 지정할 수있다. 
  • return은 써도되고 안써도된다 . 
  • 코드를 작성할때 반복해서 적는것에 지칠때 함수를 쓰자. 









이야기할 내용들 (반복문) 

  • 반복문 소개 
  • while문 과 while 반복문을 통한 무한루프
  • for in 반복문
  • 루프 관용구 
  • '==' 와 ' is' 의 차이 

 < 반복문 > 
어떤것을 반복실행 할때 편하라고 쓰는문 

1.  반복문은 while문,   for in 문. 이 있다. 
2.  반복루프는 '무한루프'가 있고 '유한루프'가 있다, 



<while 문 예시>

기본적인 while문 형태

1
2
3
4
5
6
= 5
while n > 0 : 
    print(n)
    n = n -1 
print('반복문 끝!')
print(n)
cs
  

>>>해석

5
4
3
2
1
반복문 끝!
0

 



while문으로 만든 무한루프

 (continue조건에 있으면 무시하고반복문 진행, break조건에 있으면 종료) 


1
2
3
4
5
6
7
8
while True :
    line = input(' > ' )
    if line[0== '#' :
        continue
    if line == 'done' :
        break
    print(line)
print('반복문 끝!')
cs


>>>해석

> 하이

하이


> #하이 


> 안녕하이 

안녕하이


>done

'반복문 끝!'




<for  in 반복문  >


기본적인 for in 문의 형태


1
2
3
for i in [54321] : 
    print(i)
print('반복문 끝!')
cs

>>> 해석

5
4
3
2
1
'반복문 끝!'


for i  in  [  ] 에서  'range'를 이용해  조건을 다양하게 쓸 수가 있다

1
2
3
for i in range(10):  ... > 0에서 9까지 1씩 증가한다. 즉, [0,1,2,3,4, ..., 9] ... 
for i in range(0102):  ... > 0에서 9까지 2씩 증가한다. 즉, [0,2,4,6,8] ...
for i in range(100-1): ... > 10에서 1까지 1씩 줄어든다. 즉, [10,9,8, ... 1] ... 

c



 ' is' 와 ' is not' 


반복문에서 조건을 만들때 is 를 사용하면 더 엄격하게  조건을 둘 수 있다, 

참,거짓을 따지는 ' == ' 와 같지만 'is'는 자료형까지 같은지  확인한다  


 0 == 0.0  의 결과는 True

 0 is 9,0 의 결과는 False 





이야기 할 내용들 . 

  • 조건문 소개 
  • 여러 조건을 넣을때, 주의할 점 
  • try / except문 소개


<조건문 소개>

우리는 파이썬코드를 작성할때 
조건문 if 를 이용해서 두가지 방향으로 갈 수있다 



조건문의 기본형태는 if로 시작하며 끝나는것을 나타내기 위해서 들여쓰기를 한다. 잘못쓴다면 오류가 난다.(블록의 형태를 만듦)


예. 기본적인 형태




조금 더 복잡한 조건문을 작성할때 (조건을 추가하고 싶을때) elif로 추가하고 else로 끝을낸다 


<여러 조건을 넣을때 주의할점> 


1. 조건이 겹치면 실행이 안된다

예. ( 여기서 else는 실행이 안됨.)


1
2
3
4
5
6
7
8
= input("숫자를 입력하시오")
= int(a)
if x < 2:
    print('작네')
elif x >= 2:
    print('크네')
else:
    print('응')
cs

2. 조건의 순서를 잘정해야한다.
예. ( x <20 밑에있는 조건은 실행이 안됨.)

1
2
3
4
5
6
7
8
9
10
11
= input("숫자를 입력하시오")
= int(a)
if x < 2:
    print('작네')
elif x < 20:
    print('20')
elif x < 10:
    print('10')
else :
    print('끝')
 
cs


< try/ except > 


의도치 않은 코드실수나 원하지 않는 input값을 받았을때 코드실행을 안될수 있는데 
이런 우려가 되는 코드부분은 try문으로 감싸고 바로밑에 except문으로 문제발생시 실행하고자 하는 코드를 작성함해서 오류검증 혹은 대응할 수 있다.
예.
1
2
3
4
5
6
7
8
9
10
11
= input('정수를 입력하시오')
try:
    x = int(a)
except:
    x = -1
 
if x > 0:
    print('잘하셧습니다')
else:
    print('정수가 아닙니다')
 
cs
 
 


이야기할 내용들 

  • 어떤 연산자는 어떤 값(상수의 타입)을 사용하냐에 따라 다르게 동작한다
  • 서로다른 타입값을 사용할때 어떻게 달라질까?? 



<사전 지식 >

먼저 상수의 기본적인 종류는  크게 세가지가 있다 ( 상수에서 나올 수 있는 타입 ) 

  • 정수형 ( int)
  • 부동소수점형 (float) 
  • 문자형(str) 


type(123)
>>> int
 
type(123.0)
>>> float
 
type('123')
>>> str

cs


< 어떤 연산자는 어떤 값을 사용하냐에 따라 다르게 동작한다.>


파이썬에서 어떤 연산자는 어떤 값타입에 사용하냐에 따라 다르게 동작합니다.  (대표적인 연산자는 + )
 

1. int형, float형 같이 숫자형에서 '+' 는 덧셈역할을 한다. 

2. 문자열 str형에서는'+'는  문자열 끼리 붙이는 역할을 한다,

에.


type(123)
>>> int
 
type(123.0)
>>> float
 
type('123')
>>> str
cs


<서로다른 타입값을 사용할때 어떻게 달라질까??>


1. 정수형(int) 와 부동소수점형(float) 를 연산하면 합하면 float형이 나온다. 


2. 숫자와 문자를 합하면 에러가나온다


= 3      
= 4.0    
= a + b
 
>>> 7.0 
 
= 1
= 'python'
= a + b
 
>>> Traceback (most recent call last):
 File “<stdin>“, line 1in <module>
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
cs


3. 타입을 바꿀 수 있다. int( ) , float( ) , str( ) 

그러나 특이한점을 알아두자 

  • int(123.456) 하면 소수점이 절삭되서 나온다.

  • int('123.456') 처럼 소숫점이든 문자열에 int로 변환하면 에러가 뜬다.  but 소숫점이 없다면 에러는 안뜬다.

  • a = input ( ) 을 항때 ( ) 에  123.456을 입력한다면  a = '123.456' 문자형으로 나타난다.  


int(123.456)    float(123)
>>> 123          >>>123.0
 
int('123.456')  int('123')
>>> error        >>>123
 
= input( 123.456)
= '123.456'
cs




목차


1.변수 

  • 변수의 기본모양

  • 변수에서 "=" 를 해석할때

  • 변수 예시

  • 변수 이름 지을 떄  주의할

2.예약어

3.상수

4.결론 ( 연습) 


  



변수  (variable)


 메모리를 할당한. 공간.  하나의  포스트잇이라 생각하자 . 



<변수의 기본모양>


1
(만든 변수 이름) = (변수에 들어갈 데이터) 
cs




<프로그램에서 "=" 의 의미 >


수학에서 ="같다"라는 뜻이지만 프로그래밍 언어에서 = 는 "새롭게 정의한다" 혹은 "집어 넣는다라고 해석하자



<변수의 예시>


1
2
= 1 
= x + 1 
cs
  1. 'x'라는 변수에 상수1을 넣는다 라고 해석한다.   
  2. 변수 'x' 에 x+1이라는 데이터를 새롭게 집어 넣는다. 
  •  'x 는 1 과 같다' 라고  해석하지 말자 
  • (나중에 수학에서  "같다"라는 표현은  pytohn에서는 '==' 로 표현하기에 미리 '=' 의미를 구분지어서 알아두자.  
  • 상수 : 변하지 않는수  문자열이 될수 있고 , 숫자가 되기도 한다. (예시.  3 , 123,  "hello world" ,"123") 


<변수 이름 지을 때 주의할 점 >
  • 예약어와 같은 이름을 쓰지 말자.  (print , class .......)
  • 숫자로 시작할 수 없다. 
  • 언더스코어 ( _ ) 를 제외한 모든 특수문자로 시작할 수없다 


예약어 (Reserve word)  


어떤 의미가 이미 들어간 언어로 

특별한 의미가 있기에 쓰지 말라고 정해둔 언어다 . 

(예시.  print. , class  등)

따라서 예약어들은 변수를 선언할때 사용하면 안된다 .

(예시.   class = "1반"  으로 쓰면 안된다.


# print 는 예약어입니다 

print (c);
 
# 잘못된 표현 (예약어는 변수이름이 될 수 없다. )
print = " 1 "   
cs

상수  (constant)

변하지 않는수  문자열이 될수 있고 , 숫자가 되기도 한다. (예시.  3 , 123,  "hello world" ,"123") 


 

결론 (연습해보자) 

1
2
3
4
5
= "hungry"
= 2
= 3
= a * b
print(c) 
cs



  1.  "a" 라는 변수를  만들고 "hungry" 라는 상수를 넣는다 .

  2.  "a" 라는 변수에  2라는 상수를 새로 집어넣는다. 

  3.  "b" 라는 변수를  만들고 3이라는 상수를 대입한다. 

  4.  "c" 라는 변수에  변수 a 값과 변수 b값을 곱한 값을 집어 넣는다. 

  5. print라는 예약어를 사용해서 c의 값을 도출한다. (도출된 값은 6) 


파이썬 공부를 시작해보려 합니다 .


들어가기전에 알아야 할것


프로그램이란??  


     컴퓨터 내의 자원들에게 내리는 명령문 들의 집합    명령문 :  계산을해라  화면을 출력해라 자료를 저장해라등)



파이썬 이라는 언어는 

 1. 시작하기 좋은 교육용언어.   :  소스코드가 심플하고 , 가독성이. 좋다 

 2. 실무에서 많이 쓰는 언어     :  구글과 스타트업들이 즐겨사용, 최근 딥러닝에서도 각광받고 있음. 




프로그램은 순차 조건 반복만 있으면 이세상 모든 프로그램을 만들 수 있다 . 


순차 : 위에서부터 아래로 실행되는것.

조건 : 1.주어진 조건일때만 실행한다  2. 조건을 만족하면 A 조건을 만족안하면 B를 실행한다던지,   조건을 두어 다르게 실행시키는 것 .

반복 : 어떤 명령을 반복실행시키는것.



학습 목표는  


  • 자바스크립트와 파이썬의 차이를 이해한다. 
  • 파이썬을 통해 원하는 작품을 낸다 . 
  • 파이썬을 시작으로  기본을 다진다. 


스타트 .  . . 


+ Recent posts