Point_Sec_0320

파이썬_ 제어문,함수,입출력 본문

python

파이썬_ 제어문,함수,입출력

Luck_Endeavor 2017. 4. 4. 21:19

파이썬의 구조(제어문,함수,입출력)



저번시간에는 파이썬의 자료형에 대해 알아보았다. 이번시간에는 파이썬의 구조를 파헤쳐 보자.

구조란 무엇일까? 간단히 말하자면 자료형이 집안에 있는 가구나, 내용물들이라면 구조는 아파트의 형태, 그 안의 각 집의 형태를 잡아주는 것이라고 보면 된다.


* 파이썬의 제어문

- 파이썬의 구조 중 가장 작은 틀이라고 생각해두자.


* if문

- 주어진 조건을 판단한 후 그 상황에 맞게 처리해야 하는 경우 사용

- 모든 문장에 들여쓰기를 해주어야 한다. (깊이가 같아야 한다.)

- tap, Spacebar 둘다 사용이 가능하나 혼용은 하지 않도록 한다. (필자는 tap이용- 가독성이 더 좋다.)   

* if문 구조

- if 조건문:

수행할 문장 1

수행할 문장 2

  else :

수행할 문장 1

* 조건문이란?

-  ' 조건문 ' 이란 참과 거짓을 판단하는 문장이다.

- 조건이 참인지 거짓인지 판단할 때 , 비교연산자를 많이 쓴다.( ==,!=,>,< ...)

- and, or, not 

x and y : 둘 중 모두 참이어야 참

x or  y  : 둘 중 하나라도 참이면 참

not  x   : x가 거짓이면 참


- in, not in - 0 in [0] 형태로 []안에 0이 있는가를 묻는다. ( not in은 반대로)

* elif 

- if와 else만으로 다양한 조건을 판단이 어려움으로 elif를 사용 (예에서 확인)

# if 문 예제


* while문

- 반복해서 문장을 수행해야 할 때 사용.

- 기본구조는 if문과 같다.

- 조건문이 참일 경우 수행할 문장을 반복한다.


* while문 강제로 빠져나가기

- break문 사용하기 (예제에서 확인)


* 무한루프

- 무한 루프는 무한히 반복한다는 의미이다. 거의 모든 프로그램은 무한루프의 개념을 사용



# while문 예제


* for문

- for문 기본 구조 -> for 변수 in 리스트( 튜플, 문자열)

- 리스트,튜플,문자열의 첫번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 해당 문장들을 실행

* continue

- while문에서도 사용가능한 continue는 for문에서도 사용가능한데 for문 실행중에 continue를 만나면 for문의 처음으로 돌아간다.

* range함수

- 숫자 리스트를 자동으로 만들어 주는 함수이며 여러가지 응용에 자주 쓰인다.

* len 함수

- len은 리스트 내 요소의 개수를 돌려주는 함수이다.

* 리스트 안에 for문 넣기

- (예제에 나옴) result = [ num*3 for num in a] -> 여기서 (for num in a)이 a 리스트의 요소들을 하나씩 꺼내서 num*3의 num에 수를 넣어줌으로써 간단하게 표현 할 수 있다.

- if문도 같이 넣을 수 있다! -> [num*3 for num in a if num%2==0]

# for문(range함수) for문(리스트안에for문)

* 함수

- 함수란, 입력값을 가지고 어떤 일을 수행한 다음 결과문을 내어놓는 것을 의미한다.

- 프로그램을 함수화 하게되면 프로그램의 흐름을 보기쉽게 가독성이 좋게 볼 수 있다.

- def라는 약자를 사용한다. 

- 일반적인 함수는 입력값과 출력값이 존재

- 결과값이 없는 함수, 입력값이 없는 함수, 입력값과 출력값 둘다 없는 함수 모두 존재한다.

- 여러 입력값은 입력값 앞에 *를 붙인다. 

def a(*000)형태

- 함수의 결과값은 항상 하나이다.

return a,b 라고 하면 출력값은 a와 b가 아닌 (a,b)인 튜플형태로 준다.

return a-b,a+b라고 해도 (a-b,a+b)인 튜플로 준다.


* return의 다른 쓰임새는 함수를 원하는 시점에 빠져나가게 사용할 수 있다.


* 함수의 입력인수에 초깃값 설정하기

- def a(e,f,man=True) :

여기서 man =True에서 man에 입력인수값을 미리 설정해준 것이다. 만약 함수를 이용할 때 man에 아무 값을 넣지 않아도 default로 True가 들어가 있는다.

- 초깃값 설정할 때의 주의 점은 입력인수들 중엔 제일 나중에 넣어줘야 한다. ( 중간에 넣으면 인터프리터는 어디에 무슨 값을 넣어야 되는지 헷갈려하고 결국 오류가 발생!!)


* 함수 안에서 선언된 변수의 효력 범위

- 예제에서 확인해 볼 수 있지만 간단하게 설명하면 함수 밖에서 선언된 변수와 함수 안에서 선언된 같은 이름의 변수는 서로 다르다. 

- 해결방법은 있다 (2가지)

- 첫번째 return이용하기

함수안의 변수값을 return해주고 그 값을 함수 밖의 변수에 다시 넣어주면 같은 값이 들어간다.

- 두번째 global 명령어의 사용하기

함수안의 변수 앞에 global을 붙여주면 함수 밖의 변수를 가져온다는 의미로 해석하면 된다.

단, 자주 사용하지 말 것, 함수는 독립적으로 사용하는 것이 좋다.

-> global의 이해를 돕자면 다른 언어에서의 전역변수로 만들어 주는 것이라 생각하면 된다.


# 함수예제

!! 중간쯤 와서 많은 용어를 접했겠지만 ' 용어의 혼용 ' 을 조심하자 . 입력값을 함수인수, 입력인수라고도 하고 결과값

   출력값, 리턴값, 돌려주는 값이라고도 하기 때문에 헷갈릴 수 있다.                                                               !!


* 사용자 입력

- input()을 사용하기

- 프롬프트를 띄우고 싶을 땐 () 안에 "숫자를 입력하세요." 와 같이 프롬프트내용을 넣어준다.


* print에 대해 알아보기

- 이미 사용을 해 보았을 것이다. 의미는 자료형을 출력하는 것

- ""로 둘러싸인 문자열은 (+)연산과 같다.

- 문자열 띄어쓰기는 (,)를 이용한다. ( 모두 예제에서 확인할 수 있다. )

- 입력인수 end를 이용하여 끝문자를 지정할 수 있다. 

print("abc", end= ",,,") >>> abc,,,


* 파일 입출력

- 파일 생성 : open 함수 이용 ( 첫번째 인수 : 이름, 두번째 인수 : 파일열기모드명)

- 파일열기모드

r (읽기모드) - 파일을 읽기만 할 때 사용

w(쓰기모드) - 파일을 쓰기만 할 때 사용

a (추가모드) - 파일의 마지막 내용에 새로운 내용을 추가하고 싶을 때 사용

- write와 print의 차이점 : 파일에 결과값을 출력이 write, 모니터에 출력이 print

- readline() 함수 : 파일의 첫번째 줄 리턴

- readlines() 함수 : 각각의 줄을 요소로 갖는 리스트로 리턴 ( 첫번째 줄 내용 = 첫번째 리스트요소, 두번째 줄 내용 = 두번재 리스트 요소)

- read() 함수 : 파일의 내용 전체를 문자여로 리턴


* with문과 같이 사용하기

- with문은 파일을 열고 닫는 것을 자동으로 처리하게 해준다.

- with open("","(r/w/a)") as f : f라는 파일을 with블록 함수 안에서 다뤄라


##

지금까지의 모든 게시글은 파이썬에서 로봇으로 설명하자면 로봇의 기능 중 하나인 팔 흔들기를 배웠다고 보면 된다.

앞으로 배울 것들은 팔흔들기를 갖는 클래스, 그 클래스가 import하는 모듈, 파이썬안에 있는 내장함수와 외장함수들로 로봇의 전체를 담는 그릇에 대해 배운다. 즉 하나의 기능을 담당하는 내용을 배웠고 그 기능들을 담당하고 분류하는 것들을 앞으로 배우도록 하자.

##




다른 고수님들의 피드백은 필자에게 매~우 감사한 일입니다. 댓글로 피드백, 질문 모두 받겠습니다. 감사합니다.







 



Comments