IT공부/점프 투 파이썬
파이썬 기본 문법 익히기_3
doublehyun
2022. 4. 10. 18:58
프로그램의 구조를 쌓는다! 제어문
- IF문
- 조건을 판단하여 해당 조건에 맞는 상황을 수행하는데 쓰이는 것
- if문의 기본구조
- 들여쓰기는 언제나 같은 깊이로 해야한다! (Tap, SPACEBAR 둘다 사용 가능하다.)
-
- 조건문이란?
- 조건문 : 참, 거짓을 판단하는 문장
- 비교 연산자 : <, >, ==, !=, >=, <= (비교연산의 값은 True, False 이다!)
- 논리 접속사 : or, and, not, X in S(S안에 X가 있는가?), X not in S
- + 수행문 중 아무것도 안하려면 pass 선언!, 한 줄로 작성 가능 ex) if 'a' in pocket : pass
- 조건문이란?
- while 문
- while문의 기본 구조
-
- while 문 강제 탈출 = break
- while 문의 맨 처음으로 돌아가기 = continue
- 무한 루프(조건의 문제로 반복문이 끝나지 않는 상황) -> Ctrl + c 로 종료
- for 문
- for문의 기본 구조
-
- for 문에서도 contunue가 사용된다
- for와 함께 쓰이는 range 함수
- range() = 숫자 리스트를 자동으로 만들어 주는 함수
- [range(first = 0, last)] - Ex) range(10) = 0~9, range(1,11) = 1~10
- 리스트 안에 for문 포함시키기 (리스트 내포)
- a 라는 리스트의 각 항목을 3을 곱한 결과를 result에 담는 예제 이때 짝수만 3을 곱하여 담음
프로그램의 입력과 출력
- 함수
- 함수를 사용하는 이유 ?
- 반복적으로 사용되는 '가치있는 부분'을 묶어서 사용
- 어떤 입력값을 주었을 때, 어떤 결과값을 반환한다
- 흐름을 읽기 편하다
- 파이썬의 함수 구조
- 함수를 사용하는 이유 ?
-
- 입력값, 결과값에 따른 함수 형태
- 일반적 함수 (입력인수 O, 결과값 O) - 결과값 받을 인수 = 함수명(입력인수)
- 입력값이 없는 함수 (입력인수 X, 결과값 O) - 결과값 받을 인수 = 함수명()
- 결과값이 없는 함수 (입력인수 O, 결과값 X) - 함수명(입력인수)
- 입력값, 결과값이 없는 함수 (입력인수 X, 결과값 X) - 함수명()
- 입력값이 몇개인지 모를 경우
- 여러개의 입력 값을 받는 함수 - def 함수명 (*입력변수) :
- 이때 입력변수는 값을 모아서 튜플의 형태로 사용된다
- 여러개의 입력 값을 받는 함수 - def 함수명 (*입력변수) :
- 함수의 결과값은 언제나 하나이다!
- return 문에 2가지가 있을 경우 - return a + b, a - b = 튜플로 반환(7, 1)
- return 문이 2개일 경우 - return문을 만나면 함수를 종료하므로 하나만 사용된다
- 입력 인수에 초깃값 미리 설정
- def my (name, old, man = True) :
- 이때 my('abc', '3') 하면 man은 자동 True 상태가 된다, 별도로 지정도 가능 my("def", '4', False)
- 초깃값 설정 시 주의사항
- 초깃값은 뒤쪽(오른쪽) 부터 선언해야 한다, 사이나 앞쪽(왼쪽)에 쓰일 수 없다
- 함수 안에서 선언된 변수의 효력 범위
- 함수(들여쓰기) 안에서 사용된 지역변수는 그 안에서만 쓰이고, 끝나면 사라진다
- 그 값 유지하는 방법
- return 문으로 반환한다
- global 명령어 사용 (global a) -> 외부에 종속적인 함수는 좋은 함수가 아니므로 사용 자제!
- 입력값, 결과값에 따른 함수 형태
- 사용자 입력과 출력
- 프로그램 작동 [사용자 입력] -> 처리(Program, 함수) -> [출력]
- 사용자 입력
- input() 함수 사용, 입력된 모든것을 문자열로 취급함
- 이때 input() 안에 입력받는 질문을 작성하면 프롬프트로 띄울 수 있다 - input("질문 내용?")
- ex) >>> number = inpub("숫자를 입력하세요 : ") / 숫자를 입력하세요 : (입력창)
- print 자세히 알기
- (큰)따옴표로 둘러싸인 문자열은 + 연산과 동일하다 - print("hello" "world") = print("hello" + "world") / helloworld
- 문자열 띄어쓰기는 콤마로 사용한다 - >>>print("hello", "world) / hello world
- 결과값을 한 줄에 출력하기 - for i in range(10) : print(i, end=' ') / 0 1 2 ~ 9 : 기본은 출력후 개행이지만 출력후 값을 end=으로 변경시킬 수 있다 / print(i, end=", ") / 0, 1, 2, ~ 9,
- 파일 입출력
- 파일 생성하기 [파일 객체 = open("이름.txt", "열기 모드")], [파일객체.close()]
- 열기 모드
- r = 읽기모드
- x = 쓰기모드(이미 존재하는 파일일 경우 삭제후 새로 쓰기)
- a = 추가모드(존재하는 파일의 마지막에 새로운 내용 추가)
- 열기 모드
- 파일 쓰기모드로 출력값 적기
- f = open("파일.txt", "w")
- f.write(data) # data를 파일객체 f에 써라 // print() : 모니터에 출력, .write() 파일에 출력
- 프로그램 외부에 저장된 파일 읽는 여러가지 방법
- readline() 함수 사용
- str = f.readline() -> 파일의 첫 줄만 출력/ 모든 파일을 출력시키려면 if문으로 비교(빈 출력 = False)
- readlines() 함수 사용
- 모든 파일을 읽어서 각각의 줄을 요소로 하눈 리스트 리턴 ["첫 줄~", "두번째 줄~" ~~, "마지막 줄"]
- read() 함수 사용
- 파일 내용 전체를 문자열로 만들어 반환
- readline() 함수 사용
- 파일에 새로운 내용 추가시키기
- f = open("파일.txt", 'a')
- f.write(data) / 기존 파일의 뒤에 출력이 추가됨
- with문과 함께 사용하기
- with문으로 사용하면 블록을 벗어나는 순간 자동 .close를 해준다
- 파일 생성하기 [파일 객체 = open("이름.txt", "열기 모드")], [파일객체.close()]
기존
f.open("파일", "w")
f.write("~")
f.close()
with문 사용
with open("파일", "w") as f :
f.write("~")
#이때 자동 f.close