728x90
반응형

range()

- range()로 반복 횟수를 전달하면 range()가 자동으로 순차적인 정수들을 생성해준다.

 
- range( start = 0, stop, strp = 1 )
     > start : 시작값
     > stop : 종료값이지만 stop은 포함되지 않는다.
     > step : 한번에 증가되는 값이다.

 
조건제어반복

- 어떤 조건이 만족 되는 동안 반복한다.
- ex) 투자금이 목표에 도달하는 기간을 계산해보자

 
무한루프와 break, continue

- 무한루프는 실제코드에서 많이 사용된다. 특히 반복을 빠져나가는 조건이 까다로운 경우에 많이 사용된다. 예를 들어서 사용자가 입력한 수가 3의 배수이거나 음수의 경우에 while 루프를 빠져나가야 한다고 하자.
이는 다음과 같이 while 루프의 조건문을 만드는 것보다,

while (x%3 == 0) or (x < 0) :
    ...
    ...
    ...

 
 
아래 나온 것 처럼 루프를 만들고 그 안에서 루프를 벗어나는 조건을 검사하는 편이 이해하기 쉽다.

while True:
    if x%3 == 0:
        break
    if x<0 :
        break
    ...

 
리스트 내포

- 리스트 내포(List Comprehension)는 원하는 자료들을 조회 또는 추출하여 리스트로 변환하는 현식
- 리스트 내포는 조건식을 이용하여 같은 연산을 전체 항목이나 일부 항목에 적용할 수 있음
- 리스트 내포를 이용하여 항목들을 대문자나 소문자로 바꾸는 등의 작업을 처리할 수 있음
- 리스트 내포 처리 과정
     ① → ② → ③ 에서 ①로 이동하여 반복 수행, 더 이상 꺼내 올 항목이 없으면 종료함.
     ① 항목들에서 순차적으로 하나씩 꺼내온다.
     ② 조건식을 적용하여 해당 조건에 맞는 항목은 추출하고 조건에 맞지 않으면 무시한다.
     ③ 위에서 추출한 항목은 리스트에 추가한다.
- 기본적인 리스트 내포 형식
     > 항목들에서 순차적으로 꺼내 온 자료는 변수에 저장한 후 표현식에 적용하여 리스트에 추가함


함수

- 입력값, 출력값(반환값)이 있다.
- 코드의 반복을 줄이기 위해 사용한다.
- def 함수명(변수1, 변수2, ...): 실행문1 실행문2 ... return 결과값
- (변수1, 변수2) <= 변수 생략 가능
- return 문 생략 가능
- 함수명은 동사 + 명사 형태로 적는 것이 좋다.
- ex. getId, deleteId


- 함수에 return을 여러개 찍으면 첫번째 return까지만 실행되고 멈춘다. 즉, 함수의 중단지점을 선언 할때 return을 쓴다

def add_minus(x, y):
    return x + y
    return x - y

- 함수에 쓰는 변수의 범위


- 변수에 default 값 설정
     > default값을 지정한 파라미터가 먼저 나오면 오류가 난다. 즉, 파라미터 종류 별 순서가 중요하다


 

- global 변수 선언
     > 로컬 변수, 글로벌 변수 구분하는게 중요
     > 파이썬에서는 글로벌 변수일 경우 변수명에 global을 씀

     > 아래의 경우는 로컬변수와 글로벌 변수를 함께 사용 하였으므로 함수내에 글로벌 변수 선언을 해준다.


lambda 함수

- lambda 변수1, 변수2, …: 결과값


파이썬 내에서 파일 생성 및 읽어오기

 
Pickle 라이브러리 사용

- 텍스트 상태의 데이터가 아닌 파이썬 객체 자체를 파일로 저장
- 기존의 텍스트 파일 저장과 다른점
     > w, r 텍스트 모드
     > wb, rb는 바이너리 모드(텍스트가 아닌 상태)
     > 저장할 때는 wb 읽을때는 rb로 지정
     > pickle 쓸때는 무조건 wb랑 rb라고 작성
- Pickle 사용법

728x90
반응형
728x90
반응형

지난 주 정리

 

제어문

 - 문장들이 실행되는 순서를 제어하는 문장을 제어문(Control Statement)라고 한다.

 

조건문의 중요성

- 만약 프로그램에 조건문이 없다면 프로그램은 항상 동일한 동작만을 되풀이 할 것이다.

 

3가지의 제어구조

- 순차구조

- 선택구조

- 반복구조

 

if - else

if 조건식 :
                문장 1
     else : 
                문장 2

- else는 없을 수도 있다.

- 파이썬에서는 들여쓰기가 아주 중요하다.

 

논리 연산자

연산 의미
x and y x와 y가 모두 TRUE여야 TRUE
x or y x와 y 중 하나만 TRUE 여도 TRUE
not x TRUE > FALSE, FALSE > TRUE 

 

중첩 if 문

if 문 안에 다른 if 문이 들어갈 수 있다.

연속되는 범위 안에서 값을 도출하려 할 때 사용.

 

반복의 중요성

우리들의 생활에서는 반복적인 작업들이 필요하다. 

반복적이고 단순한 작업은 컴퓨터를 이용하여 자동화 하면 된다.

 

반복의 종류

- 횟수 반복(for 문) : 정해진 횟수만큼 반복한다.

- 조건 반복(while 문) : 특정한 조건이 성립되는 동안 반복한다. 조건이 변경되는 로직이 안에 꼭 있어야 한다. 없으면 무한반복하기 때문이다.


지난 주) 예제 풀어보기

문제 : 콘테스트 평가
7명의 심판들의 점수를 입력받아 리스트에 저장하고 최소값과 최대값을 리스트에서 제거하는 프로그램을 작성해보자
제거 전 [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
제거 후 [9.0, 8.3, 7.1, 9.0]

 

내가 적어본 코드

score = [10.0, 9.0, 8.3, 7.1, 3.0, 9.0]
print(score)
score.remove(min(score))
score.remove(max(score))
print(score)

 

코드실행 결과


강사님이 알려주신 코드

- 점수를 직접 입력하여 리스트에 추가할 수 있도록 설정함 

- 점수가 숫자일 경우에만 입력가능하도록 설정함

- 점수가 실수일 경우에는 소숫점이 존재하기 때문에 숫자로 인식되지않아 오류가 날 수 있음. 그렇기 때문에 replace함수로 '.'을 삭하여 조건문을 실행시킴

- 최솟값과 최댓값을 제거한 리슽의 평균을 구할 수 있도록 로직을 구현함

scores = list()
count = 0
while count < 7:
    count += 1
    score = input(f'{count}번째 심사위원 점수를 입력하세요. : ')
    # 소수점 입력시 체크 확인
    if score.replace('.', '').isnumeric():
        scores.append(float(score))

print(scores, min(scores), max(scores))
min = min(scores)
max = max(scores)
scores.remove(min)
scores.remove(max)
print(f'최솟값과 최댓값을 제거한 리스트 : {scores}')
avg = sum(scores)/len(scores)
print(f'평균은 : {avg}입니다.')

 

코드 실행 결과


(3일차 이어서)

제어문

 

3. for

- 횟수 반복문
- 가장 많이 쓰임.
- 리스트/튜플/문자열의 요소의 갯수만큼 반복한다.
- for 변수 in 리스트/튜플/문자열: 실행문...

 

- continue, break, pass
     > continue : 해당 조건에서 그 루프가 끝나고 다음 루프로 넘어간다.



     > pass : 실행할 코드가 없는 것을 뜻함.(모두 다 실행하고 그 다음 루프로 넘어간다.)


   

 > break : 반복문 자체를 중단한다.


 - List에서 for 문 쓰기


- Dictionary에서 for 문 쓰기


- Tuple에서 for 문 쓰기


- 구구단 생성하기


4.  List Comprehension(List 내 for 문 쓰기)

- 리스트 안에 for문을 포함하여 한줄로 편하게 코드를 작성하는 문법.

- [표현식 for 항목 in 반복가능객체 if 조건문]


- 조건문이 여러개 들어갈 경우

     > [for 항목1 in 반복가능객체1 if 조건문1 for 항목2 in 반복가능객체2 if 조건문 2...]

 

 

5.  Dictionary Comprehension


- Dictionary Comprehension에서 zip으로 표현하기

728x90
반응형

+ Recent posts