Point_Sec_0320
파이썬_ 제어문,함수,입출력 본문
파이썬의 구조(제어문,함수,입출력)
저번시간에는 파이썬의 자료형에 대해 알아보았다. 이번시간에는 파이썬의 구조를 파헤쳐 보자.
구조란 무엇일까? 간단히 말하자면 자료형이 집안에 있는 가구나, 내용물들이라면 구조는 아파트의 형태, 그 안의 각 집의 형태를 잡아주는 것이라고 보면 된다.
* 파이썬의 제어문
- 파이썬의 구조 중 가장 작은 틀이라고 생각해두자.
* 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하는 모듈, 파이썬안에 있는 내장함수와 외장함수들로 로봇의 전체를 담는 그릇에 대해 배운다. 즉 하나의 기능을 담당하는 내용을 배웠고 그 기능들을 담당하고 분류하는 것들을 앞으로 배우도록 하자.
##
다른 고수님들의 피드백은 필자에게 매~우 감사한 일입니다. 댓글로 피드백, 질문 모두 받겠습니다. 감사합니다.
'python' 카테고리의 다른 글
파이썬 마지막 간단한 예제, 정규표현식, xml (0) | 2017.12.12 |
---|---|
파이썬 클래스,모듈,패키지,내/외장함수 (0) | 2017.04.05 |
리스트,튜플,딕셔너리,집합,참거짓,변수 (0) | 2017.04.03 |
파이썬이란 무엇인가?, 파이썬의 기초,자료형 (0) | 2017.04.03 |