TIL - 12 python, 알고리즘

이동근·2020년 12월 29일
0

python

목록 보기
6/18

1. python

if문 - 프로그래밍에서 해당 조건에 맞는 상황(조건문 이란 참과 거짓을 판단하는 문장)을 수행하는 데쓰이는 것

if 조건문:
    수행할 문장1
    수행할 문장2
    ....
elif 조건문:
    수행할 문장A
    수행할 문장B
    ...
else:
    수행할 문장

※ 주의사항

  • 조건문에서 들여쓰기를 할때에는 tap 과 space bar 가 있는데 이 두 가지를 혼용해서 사용하면 안된다. 프로그램 소스에서 눈으로 보이는 것이 아니기 때문에 혼용해서 쓰면 오류의 원인이 되니까 주의해야한다.

while 문 - 반복해서 문장을 수행해야 할 경우 while문을 사용한다. 그래서 while문을 반복이라고도 부른다.

while 조건문:
    수행할 문장1
    수행할 문장2
    수행할 문장3
    ....

break문 - 반복문 작업시 강제로 반복을 끝내고자 할때 사용함

continue - 반복문 작업시 맨 처음으로 돌아가고 싶을 때 사용

무한루프 - 무한히 반복한다는 의미로서, 우리가 사용하는 일반 프로그램 중에서 무한 루프 개념을 사용하지 않는 프로그램은 거의 없다.

for 문 - 파이썬의 직관적인 특징을 가장 잘 대변해 주는 것이 이 for문이다. while문과 비슷한 반복문인 for문은 매우 유용하고 문장 구조가 한 눈에 쏙 들어온다는 장점이 있다.

for 변수 in 리스트(튜플 또는 문자열):
    수행할 문장1
    수행할 문장2
    ....

for 구문은 주로 range와 많이 사용이 된다.(range(시작숫자, 끝숫자))

리스트 안에 for문을 포함하는 리스트 내포를 사용하면 좀 더 편리하고 직관적인 프로그램을 만들 수 있다.

리스트의 각 항목에 3을 곱한 결과를 result 리스트에 담는 예제
a = [1, 2, 3, 4, 5]
result = []
for num in a:
    result.append(num*3)
    
print(resuelt)
[3, 6, 9, 12, 15]

리스트에 내포한 방법
result = [num * 3 for num in a]
print(result)
- 이런 식으로 간단한 조건문을 리스트에 넣어서 반복문을 구성할 수도 있다.

함수

프로그래밍을 하다 보면 똑같은 내용을 반복해서 작성하고 있는 자신을 발견하는데 이때가 바로 함수를 사용할 때 이다. 그리고 자신이 만든 프로그램을 함수화 하면 프로그램 흐름을 일목요연하게 볼 수 있다.

def 함수이름(매개변수):
    수행할 문장1
    수행할 문장2
    .....

이렇게 함수를 정의 해 준 다음 if, for, while 문 을 사용해서 수행할 문장을 입력해 주면 된다.

매개변수 - 함수에 입력으로 전달된 값을 받는 변수를 의미

인수 - 함수를 호출 할 때 전달하는 입력값

함수 안에서 선언한 변수의 효력 범위는 그 함수 내에서만 효력을 발휘한다. 만약 코드 전체에 효력을 내고 싶으면 return 문을 사용해서 변수를 빼낸 뒤에 사용하면 영향을 끼친다. 그리고 'global'태그를 사용해도 가능하다.

lambda - 함수를 생성할 때 사용하는 예약어로 def와 동일한 역할을 한다. 보통 함수를 한줄로 간결하게 만들 때 사용한다. 우리말로는 '람다' 라고 읽고 def를 사용해야 할 정도롤 복잡하지 않거나 def를 사용할 수 없는 곳에 주로 쓰인다.

add = lambda a, b: a+b
result = add(3, 4)
print(result)
7

이런식으로 간단한 함수 선언 시에 사용한다.

사용자 입력 - input

- 사용자가 입력한 값을 변수로 받고 싶을 때 사용하는 함수이다.

파일 읽어오기 with open(파일이름, 변수) as f

변수에는 w, r, a 가 있다.

  • W는 우리가 파일을 직접 적어서 만들 수 있다.
  • r은 단순히 그 파일을 읽어 올 수 있다.
  • a는 기존의 파일에 내용을 추가해서 할 수 있다.

알고리즘

Brute Force 방식

- 하나하나 모든 경우의 수를 보고 값을 내는 알고리즘 방식

- 매우 비효율 적인 방식이긴 하지만 직관적이고 명확하기때문에 코드 구현이 쉽고, 답을 확실하게 찾을 수 있다.

- 인풋이 너무 크게 되면 Brute Force 방식은 비효율 적인 방법이다. 하지만 다른 효율적인 알고리즘을 찾기위한 가장 첫번째 단계가 바로 이 방식이기 때문에 제대로 알아야 한다.

출처 - codeit(알고리즘), 점프 투 파이썬

profile
하루하루 1cm 자라는 개발자

0개의 댓글