파이썬 기초

willy·2022년 1월 3일
0

Indexing

012345 -> index
python

-를 이용해서도 가능하다,
-를 집어넣을 경우에는 -1 부터 시작한다.

Slicing
리스트의 구간을 나눠 잘라주는 것


1번부터 4번 위치까지 잘라주는 것,
경계선을 위주로 생각하는 것이 좋다.


앞 숫자나 뒷숫자가 없다면 끝까지 라고 인식하게 된다.


string.split()
메소드라고 한다.

이미 만들어진 함수다.
특정 기능들을 모아서 이름을 붙여 둔 것,
스트링만 들고 있는 함수를 가지고 있다.
스플릿이라는 함수는 문자를 공백 단위로 잘라준다.

문자열만 사용할 수 있는 함수다.
이를 외우기 보단, 응용하는 게 더 중요하다.

Docstring
문자열을 사용할때, 주석으로 처리 가능하게 해준다
기존엔 #을 사용해서 주석을 달았다.
그런데 큰따옴표를 세개를 달아도 주석 처리가 가능하다

print(‘’, end=‘’)
출력의 끝을 지정하게 된다.

Escape code

n은 줄바꿈, t는 탭 이라 생각하면 된다.
\n = br


List

Immuatable 값 변경 x 예를 들어 문자열
Mutable 값 변경 가능하다

리스트는 변경이 가능한 mutable이다.

appedn는 list 내에 새로운 값을 추가할 수 있다.

Indexing
주소를 이용해서 값을 가져오는 방식
슬라이스도 리스트 내에 적용 가능하다.

list.sort()
가나다 순으로 리스트 내를 정리해주는 함수,

List.count()
리스트 내에 같은 값이 몇개 있는지 세주는 함수

Len = length

Tuple
리스트와 비슷, 여러 값을 모아서 저장하지만, 값을 변경할 수 없다.
즉 immutable이다.

tuple은 ()소괄호를 사용한다.
괄호를 사용하지 않아도 튜플이 될 수 있다.

Packing, unpacking

튜플에 묶인 데이터 값을 묶고 풀어주는 과정이라 생각하자

먼저

여기서 n1은 1이고, n2는 2가 됐다.
n1을 2로 만들고 n2를 1로 만들고 싶다면?


이렇게 언패킹을 해주면 된다.

파이썬의 반복문은 두가지가 있다
For
While

[1,2,3]이라는 리스트가 있다면

For 변수 in 컨테이너에 순차적으로 들어간다.
밑에 반복할 부분, 명령 1, 2를 코드블럭이라고 말한다.
들여쓰기 4번을 반드시 해야한다.
다른 언어에서는 보기좋게 하기 위해서 하지만
파이썬에서는 무조건 띄워야한다.

탭을 쓸거면 끝까지 탭을 써야하고
엔터를 쓸거면 끝까지 엔터를 써야한다.
만약 엔터와 탭을 같이 쓴다면 에러가 나길 마련이다.

변수 이름은 뭐든 상관없다.

배열을 바로 만들어줘도 상관없다.

Range
리스트 내에 카운트를 매번 집어넣기 귀찮을 경우 레인지를 사용한다.

1부터 3까지를 타이핑 할 순 있지만
1부터 100
1부터 4000까지는 일일이 손으로 치기 어렵다.
그럴때 레인지를 사용하면 된다.


레인지 3은 0부터 3까지를 나타내고
타입은 레인지다.

위와 아래는 완벽하게 똑같이 작동한다.
이때 레인지의 숫자는 하나만 넣으면 0부터 해당 숫자까지를 지칭하는 것이고
앞에 숫자가 들어간다면 그 숫자부터 시작해, 뒤에 있는 숫자의 앞까지 실행된다.

반복문의 중복

반복문을 겹쳐서 사용할 수 있다.
파이썬을 이용해서 구구단을 만들기 위해서는 수십번의 반복 작업이 필요하다.

이런식을 사용하면 1부터 9까지가 출력된다.
먼저 2단을 만들기 위해 포맷팅을 사용해보자.

이런 식이 등장하게 된다.

그렇다면 여기서 2단부터 9단까지 작성하게 하려면?
앞의 숫자에도 새로운 반복문을 추가해주면 된다.


반복문의 중첩을 통해 우린 손쉽게 구구단을 만들 수 있다.

추가/
여기서 별도로 레인지를 리스트화 하기 위해서는 아래와 같은 방법을 사용하면 된다.

컴프리헨션

Comprehension은 어렵지만 많이 쓰이는 개념이다.

이 방식은 여러개의 코드를 한줄로 묶어 축약하는 형태라고 생각하면 될 듯하다.

1부터 10까지의 리스트 중에서 홀수만 뽑아내고 싶다면 다음과 같은 방식으로 작성한다.

먼저 홀수만 뽑아내는 식이다.
If 뒤에는 반복해서 나온 숫자들을 묶어 2로 나눴을때 1이 나오는 값들을 num이라고 지칭하고
이것들을 odd_num에 추가한다는 뜻이다.


그럴때 이같은 결과값이 나오게 된다
만약 짝수만 뽑아내고 싶다면 1대신 0을 집어넣으면 된다.

이 것을 컴프리헨션하면 훨씬 쉽게 변환할 수 있다.

append라는 별도의 명령을 주지 않아도 가능하다.

연산자

Operator

자료형마다 연산자들이 있다.

  1. Assign
    할당 연산자
    = 표시는 할당한다는 뜻이다.

할당 연산은 복잡한 식을 줄여줄 수 있다.

이런식으로도 활용 가능하다.

즉 이런식으로 활용한다면 모든 연산자를 간결하게 줄일 수 있는셈이다.

더 나아가서
Count += count와
Count *= 2는
같은 식이라고 볼 수 있다.

산술연산자
Arithmetic

수학시간에 배우는 것과 똑같다.

      • / 를 사용한다.

특수 연산자
** 제곱
// 나눈 이후 몫
% 나머지를 구하는 연산자

여기서 %는 홀수 짝수를 구하는 식으로 위에서 사용하기도 했다.

문자열에서도 연산자가 적용된다
+, *

비교 연산자

Logical
논리 연산자

And = 둘 모두 참이여야 함
or = 하나라도 참이면 결과값이 참
not = 참이면 거짓으로, 거짓이면 참으로 결과값을 뒤집음

P = 앞 조건
Q = 뒤에 위치한 조건

멤버쉽 연산자

리스트 안에 값이 있는지 없는지를 살펴볼 수 있다

In, not in으로 가능

If

참,거짓 조건문

If 조건 :
실행할 명령 1
실행할 명령 2

Elif 2차 조건이 들어감, 여러개 사용 가능함

Else 그외에 모든 조건이 들어갈 수 있음

Loop
반복문

For 은 숫자를 세서 행동을 반복하고
while은 조건에 따라 행동을 반복한다.

if랑 똑같이 생겼다.
조건은 true , false가 된다
True면 실행하고 falls

Continue
명령을 실행하지 않고 조건으로 다시 올라간다

Break
조건이 참임에도 반복문을 끝내버린다.

123이 등장하지 않는 이유는
프린트 직전에 조건문이 등장했기 때문이다.
123은 4보다 작으니 컨틴뉴를 만나 다시
while로 돌아갔고, 4부터는 if문에 걸리지 않아
프린트 되는 형식이다.
이후 프린트되며 9가 조건문에 걸렸을 경우
브레이크가 걸리며 반복문이 종료되는 것이다.

Dictionary

리스트나 튜플이 값을 여러개 관리하는 것이다
마찬가지다

리스트와는 다르게, 관련된 정보를 서로 연관시켜놓을 수 있다.
Key 와 value 가 있다.
자바스크립트의 object와 비슷한 개념이다.

여기서 dict는 중괄호 {}를 사용
리스트는 대괄호 []를 사용한다.

자바스크립트의 object key와 동일하다.

딕셔너리의 Method 살펴보기
Dict.values

파이썬 함수

  • 내장함수
    • Print 등
  • 모듈의 함수
    • Import 등
  • 사용자 정의 함수
    • 직접 만드는 함수

def 함수이름 (인자1,,,):
실행할 명령1
실행할 명령2

return 결과

다음과 같이 할 수 있다.
자바스크립트와 비슷한 문법으로 보인다.

함수로 나온 값은 한개의 튜플로 나오기 때문에 언패킹이 필요하다
튜플로 나온 값을 순서에 맞게 언패킹 해주면
Add 값으로 먼저 나온 값을 받게 되고
Mul 은 뒤에 나온 값을 받게된다.

검은 글씨는 그냥 이름일 뿐 기능하진 않는다는 것을 기억해두자.

Module
임포트라는 키워드를 이용해 활용할 수 있다.

이미 만들어진 것을 가져다 쓸 수 있는 기능이다.

##개인 목표로 공룡 점프 게임을 만들어보자##

랜덤이라는 모듈을 사용해보자.

Import radom
을 입력하면 모듈을 들고오는 것이다.

다음은 랜덤 샘플이다.

샘플에다가 몇개의 값을 노출할건지만 설정하면 두개씩 출력하게 된다.

이런식으로도 출력할 수 있다.
위는 레인지를 설정해 1부터 50까지의 숫자중 7개를 뽑아 무작위로 노출해주는 식이다.

무작위성 함수는 랜덤을 사용하면 된다.

다른분들과 일을 할땐, 내가 코드를 작성하는 것보다
남들이 보는 횟수가 훨씬 많다.
그렇기에 코드를 구현하는 것에 있어 노하우가 필요하다.

pep8는 코딩 컨벤션이라고 하는데, 협업에 있어서
작성할때의 약속, 작성법이라고 생각하면 좋다.

멍청하게 일관성을 고집하는 것은 소인배의 발상이다
ㄴ 일관성에 심취한 나머지 더 복잡한 코드가 될 수 있기 때문이다.
적당히 규칙을 어겨야할땐 어겨야한다.

많은 사람들이 지키고 있으니, 잘 보고 따라하는 것이 좋다.

Pep8 번역본
https://luavis.me/python/python-convention

profile
같은 문제에 헤매지 않기 위해 기록합니다.

0개의 댓글