• 파이썬의 활용법
  • 개발자란?
  • 복습
  • 파일 다루기!
  • 이터레이터(Iterator) 제너레이터(Generator)
  • 느낀 느낌

 


 

 

파이썬의 활용법

 

 

python으로 할 수 있는 일

 

1. 시스템 유틸리티 제작 

※유틸리티란? 컴퓨터 사용에 도움을 주는 소프트웨어

 

2. GUI 프로그래밍

창을 만들고 그 창에 프로그램을 동작시킬 수 있는 메뉴나 버튼, 그림 등을 추가할 수 있다.

 

3. 웹 프로그래밍

 

4. 데이터 분석, 사물 인터넷

 

결론

무엇을 할 수 있는지 알 수 있었지만

정확하게 어떤 식으로 UI나 웹 프로그램이 구현되는 것인지가 궁금해졌다.

이 부분은 강의를 계속 듣고 실습하다 보면 자연스럽게 알게 될 것으로 생각한다.

기회가 된다면 파이썬으로 설계한 웹사이트를 구경하고 UI 버튼을 누를 때마다 파이썬으로 짠 코드가 진행되는

모습을 직접 경험해 보고 싶다.

 

 


 

 

개발자란?

 

 

위에 파이썬을 어떻게 어디에 쓰는지 궁금해서 알아보았는데 

알아보던 중 

파이썬으로 우리는 개발자가 되는 과정을 배우고있다라는 생각과 함께

개발자란 무엇인지 궁금해져 찾아 보았고 이해하기 쉽게 정리 된 글을 가져왔습니다.

 

개발자란 무엇일까? (brunch.co.kr)

 

개발자란 무엇일까?

개발자와 신호등의 차이 | 컴퓨터를 위한 신호등 "좋은 소프트웨어 개발자란 코딩, 문제 해결, 단위 테스트 작성을 능숙하게 잘하는 사람이 아니다. 좋은 소프트웨어 개발자는 자신의 경력을 관

brunch.co.kr

 

 

개발자는 코딩을 할 수 있고 새로운 문제를 만났을 때 해결할 수 있는 지식을 가지고있는 사람이라는 설명이있습니다.

더욱 연습해서 개발자에 가까워 지고싶습니다.

 

 


 

 

복습

 

딕셔너리: 키와 값을 데이터로 저장하는 거이다. 중괄호{}로 표현하고 콜론:으로키와 값을 구분한다.

 

셋: 중복요소를 하나로 처리한다.

변수.union(qustn2) 합집합을 나타낸다.

변수.intersection(변수2) 교집합

 

조건문

IF문: 조건식이 오고 조건식이 True면 실행 된다.

 

else문: IF문의 조건이 False일 때 실행 된다.

 

elif문: 여러개의 조건을 순차적으로 검사할 때 사용한다.

 

반복문

For문: 컬렉션의 각 요소를 순차적으로 순회하면서 코드 실행한다.

 

While문: 조건식이 True일 때 반복해서 코드 블록을 실행한다.

(조건이 False일 때 종료된다.)

 

breake문: 반복문을 즉시 종료시킨다.

 

continue문: 현재 반복을 건너뛰고 다음 반복을 이어간다.

 

range함수: 특정 숫자 시퀸스를 생성한다.

for i in range(시작, 종료, 단계):

실행할 코드

for i in range(끝나는 자리)

실행할 코드

 

들여쓰기오류 코드  IndentationError

 

sorted함수: 리스트 요소들을 정렬한다.

sort()와 sorted()차이

sort()는 원본 자체를 변환 시킨다.

sorted()는 원본은 변경하지 않고 정렬 된 경우를 보여준다.

 

round함수: 숫자를 지정한 자리까지 반올림한다.

round(변수, 소수점 자리)

 

매개변수: 함수를 호추할 때 사용하는 괄호 내부의 여러가지 자료를 말한다.

 

가변 매개변수: 함수에 전달하는 인자의 수를 유연하게 조절한다.

tip. *args로 사용하고 튜플로 처리 된다.

 

기본 매개변수: 함수를 정의할 때 기본값을 설정하는 매개변수

(인자가 잘 전달 되지 않으면 기본 매개변수가 기본값으로 사용된다.)

 

키워드 매개변수: 함수를 호출할 때 매개변수의 이름과 함께 값을 전달한다.

(매개변수의 순서에 구애받지 않고 인자전달 가능)

 

greet(name): 주어진 이름에 대한 인사를 출력하는 함수

 

calculate(a,b,c): 세개의 매개변수를 받아 계산하는 함수

 

add(a,b): 두 수를 더해서 결과를 반환하는 함수

 

add(*args): 주어진 모든 수를 더하는 함수

 

def process_data(*args): 매개변수로 받은 값들을 튜플로 처리하는 함수

 

square함수: 입력값의 제곱을 계산한다.

 

return: 함수가 작업을 완료한 후 호출된 위치로 돌려준다.

 

import키워드: 다른 파일에 있는 모듈을 불러와 사용 가능하다.

 

from키워드: 모듈에서 특정 항목만 불러오기

(from 모듈이름 import  항목이름)

 

사용자 정의 모듈

(사용할 모듈 만들기)

ex)

def greet(name):
    return f"안녕하세요, {name}님!"

(내가 사용할 모듈 불러오기)

ex)

import my_module

message = my_module.greet("Alice")
print(message)  # 안녕하세요, Alice님!

 

패키지: 모듈의 모음 __init__.py 파일이 있어야 한다.

ex)

mypackage/
    __init__.py
    module1.py
    module2.py

 


 

 

파일 다루기!

 

1)  파일 열기

file = open(파일이름, 모드)

file = open("example.txt", "r")

저는 파일을 찾을 수 없는 FileNotFoundError 구문이 나와서 튜터님의 도움으로

file = open('C:\\Users\\USER\\Desktop\\이게맞나.txt', 'r')

으로 파일 열기를 했습니다.

 

2) 파일 모드

'r': 읽기 모드(기본값). 파일이 존재하지 않으면 오류가 발생합니다.

'w': 쓰기 모드. 파일이 존재하지 않으면 새로 만들고, 파일이 존재하면 내용을 덮어씁니다.

'a': 추가 모드. 파일 끝에 데이터를 추가합니다.

'b': 바이너리 모드. 이진 파일을 읽거나 쓸 때 사용하며, 다른 모드와 함께 사용됩니다.

('rb', 'wb')

 

3) 파일 닫기

file.close()

 

4) 파일 자동으로 닫기

with open('C:\\Users\\USER\\Desktop\\이게맞나.txt', 'r')

 

5) 파일 읽기

file.read() 파일 내용 전체읽기file.readline() 파일 한줄씩 읽기file.readlines() 파일의 모든 줄을 리스트 형태로 일기file.seek(0) 읽은 위치를 처을으로 되돌린다.

 

6) 파일쓰기

file = open('C:\\Users\\USER\\Desktop\\이게맞나.txt', 'w')

파일쓰기가 작동 되지않아 검색을 통해

open('C:\\Users\\USER\\Desktop\\이게맞나.txt', 'w', encording = 'UFT-8')

encording = 'UFT-8'을 추가해 쓰기를 작동할 수 있었다.

 

file.write("이것도 써지나")  #7  파일에 글을 넣을 수 있다

tip. 덮어써지는 형식으로 원본이 사라지게 된다.(주의필요!!)

tip. flie.close()를 해야지 적용이 된다.

 

file.writelines() 리스트에 담긴 여러줄을 한꺼번에 쓴다.

ex)

lines = ["첫 번째 줄\\n", "두 번째 줄\\n", "세 번째 줄\\n"]

with open('C:\\Users\\USER\\Desktop\\이게맞나.txt', 'w', encording = 'UFT-8') as file:
    file.writelines(lines)

줄 나누기 언어 = \\n 

 

7) 파일 추가

with open('C:\\Us ers\\USER\\Desktop\\이게맞나.txt', 'a') as file:

    file.write("이 내용은 기존 파일의 끝에 추가됩니다.")

 


 

 

이터레이터(Iterator)

반복 가능한 객체의 요소를 하나씩 꺼내오는 객체다.

__iner__() : 이터레이터 객체 자신을 반환하는 메서드

__next__() : 이터레이터의 다음 요소를 반환하는 메서드

stopIteration : 더이상 반환할 요소가 없을 경우 예외를 발생시킨다.

 

반복 가능한 객체(Iterable)

for 루프에서 반복할 수 있으며

내부적으로는 __iter__() 메서드를 통해 이터레이터를 반환한다.

 

제너레이터(Generator)

이터레이터를 생성하는 특별한 함수

yield 키워드를 사용해 값을 하나씩 반환한다.

(한번에 메모리에 올리지 않고 필요 시 값을 생성한다.)

yield가 호출될 때 마다 함수의 상태가 유지 되며 다음 호출에도 그 상태로 실행한다.

next() 함수를 사용해 제너레이트 값을 하나씩 가져온다.

 


회의

오늘 오전 회의에서 팀원들에게 어제 공부한 부분에서 궁금한 것을 물어보았다. 

 

그것은 바로sorted()함수이다.

 

해답을 듣고 느낀 생각은 내가 너무 근본적이지만

실사용에서는 크게 영향을 끼치지 않는 부분을 고민하고 있다고 생각이 들었다.

 

오후 회의에서는 금요일에 있을 파이썬에 대한 발표를 맏게 되었다.

 

사다리타기로 뽑혔지만 내일 쉬는 만큼 더 열심히 준비해야할 것 같다.

 

공부

이때까지 진도 나가는게 너무 느려서 내가 파이썬을 모르고 개발 언어 등을 잘 모르기 때문인가

생각했지만 근본적으로 파이썬이라는 것 자체를 모르기 때문이라는 생각이 들었다.

 

내가 왜, 무엇을 하기 위해 파이썬을 공부하는지 알아보는 시간을 가진 뒤

한결 가벼운 마음으로 복습을 구석구석 확실하게 

어떤 구문은 어떻게 작성하고 기본문법인지 아닌지 등 

파이썬을 알던 사람들은 이런걸 왜 궁금해하지 하는 부분까지 확실하게 복습을 진행하였다.

 

그리고 얼마 남지 않은 시간에 진도를 나갓고 저녁을 먹고 회의가 끝나 다시 진도를 나가려는데

 

.............

 

내가 복습하면서 적고 진도 나가면서 적은 필기들을 저장하지 않았고 블로그에 쓰고있었기 때문에 노트북이 절전 모드로

바뀌어서 인터넥이 잠깐 끊겨 전부 날라가 버렸다.

 

멘탈이 조금 흔들렸지만 다시 검색기록을 뒤져가며 중요하게 생각했던 부분들을 다시 적어 나갓다.

 

복습한 부분은 마음에 들지 않지만 그래도 복습만 2번한 것 같아 다시 적을때 더욱 많은 것을 알게 된 것 같아 그나마 나았다.

 

내일 공휴일인 만큼 진도를 나가고 발표준비를 해야겟다.

  • 함수(Function)의 개념
  • 내장함수  
  • 함수만들기 (기본) 
  • 모듈 
  • 패키지
  • 예외처리
  • 객체 (객체지향)
  • 클래스
  • 클래스 만들기와 속성, 메서드 살펴보기
  • 클래스 더 나아가기

함수(Function)의 개념

적절한 코드 블록을 이름으로 정의해 놓는 것으로

정해진 이름으로 호출하여 실행 결과값을 받을 수 있다.

-코드 재사용, 유지보수, 테스트 및 디버깅에 용이하다.


 

내장함수 sorted 강의에서 메소드 부분 다시 들어야함

내장함수는 파이썬에서 이미 코드를 정해놓고 코드블록을 묶어서 이름을 정해준거다

 

1) type함수

데이터의 어ᄄᅠᆫ 타입인지 알려준다 (값을 넣어줘도 상관없다)

 

2) sum함수  (list나 튜플에 사용)

합을 내는 함수

tip. 일반적인 사칙연산에 동작 가능할때만 동작한다 문자일때x

 

3) 함수 정렬하기 sorted()

메소드 클래스 내부에 포함 된 함수

ex) 숫자 = [5,2,,4,1,6]

      sorted_숫자 = sroted(숫자)

 

     print(sorted_숫자)

    print(sorted(숫자, reverse = True))

 

tip. 거꾸로 나오게하는 reverse

 

=> 강의에서 추가로 설명하는 코드는 이해를 못해서 복습예정

 

4) 절대값 구하기

abs() 

tip. 음수의 경우 양수로 전환

tip. 문자열이 숫자를 나타내도 작동하지않아 타입변환을 해야한다.

 

5) 반올림하기 tip.소수점을 반올림한다

round(이름, 몇 번째 자리)

 

대표적인 내장함수 복습(어떤 역할이였는지 생각하기)

print()

input()

len()

type()

int()

float()

str()

sum()

min()

max()

sorted()

abs()

round()


 

함수만들기 (기본)

 

1) 함수를 만드는 지정어

def 

tip. 키워드란 미리 특정기능을 수행하도록 파이썬에서 만들어 놓은것

 

def 함수이름(매개변수1, 매개변수2)

매개변수1 % 2

매개변수2 % 3

        print(매개변수1 + 매개변수2)

        return True

 

함수이름(9,8)

=>3

True

 

2) 매개변수

함수 메소드를 정의할 때 만들어내는 변수를 말한다

함수가 호출될 때 입력 받는 값인 인수를 처리하기 위한 변수

매개변수는 콤마,로 구분

입력받는 값(인수, arguments)

 

ex)

def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 8

 

a와b는 매개변수

3,5는 인수

 

 

3) 반환값

만일 두가지 값(여러개의 변수)을 반환 한다면

반환값, 정상실행여부 순서로 돌려준다

tip. 복수 반환값일 땐 튜플의 형태로 나온다

tip. 반환값이 없는 함수도 만들어진다 (값은 None으로 표시)

 

 

4) 기본값

매개변수에 미리 지정된 값을 의미한다.

def greet(name="손님"):    #name="손님"이 기본값이다.
    return f"안녕하세요, {name}님!"

print(greet())          # 안녕하세요, 손님님!
print(greet("Alice"))   # 안녕하세요, Alice님!

 

5) 다중 기본값

매개 변수에는 기본값이 없을수도 있는데

항상 기본값이 없는 매개변수 뒤에 기본값이 있는 매개변수가 와야한다.

(값이 전달 되없을 경우 값을 기본값이 없는 경우에 먼저 넣는다.)

 

def greet(age, name="손님"):    #age는 기본값 설정하지 않아 name앞에 온다.
    return f"안녕하세요, {name}님!, {age}살 이네요."

 

6) 가변 매개변수

정해지지 않은 개수에 인수를 받을 수 있도록 한다.

(args는 위치 인수의 튜플을 받는다)

 

def add(*args):

      return list(args)

 

print(add(1, 2, 3)) #[1, 2,, 3]

print(add(10, 20, 30, 40)) #[10, 20, 30, 40]

 

 

 

7) 임의의 키워드 인수 받기 kwargs

함수에 전달되는 인수의 이름과 값을 딕셔너리 형태로 처리합니다

 

def test(**kwargs):

      print(kwargs)

return True

 

test(name = “AI”, age = 30) #name: ‘AI’, age: 30

 

argskwargs 함께 사용하기

argskwargs 앞에 와야한다.

def test(a, b, *args, **kwargs):

print(kwargs)

print(args)

print(a, b)

return True

 

test(30, 20, 30, 20, name = “AI”, age = 30)

#name: ‘AI’, age: 30


 

모듈

 

모듈이란

Python 파일(.py) 하나가 하나의 모듈

tip. 똑같은 이름의 변수를 값을 낸다면 충돌이있을 수 있다.

 

1)  import

import를 이용하여 다른 파일로 가져올 수 있다.

tip. 모듈은 파이썬에서 기본적으로 제공 된다. ex) math

tip. 이름이 길면 별칭을 붙일 수 있다 ex) import math as m  #m이 별칭이다.

 

2) from

모듈 내의 특정 함수, 클래스, 변수를 선택적으로 불러올 수있다

ex) from math import sqrt

 

    result = sqrt(36)

    print(result)  #6.0

 

tip. 만약 math의 모든 함수를 가져올거면

from math import *(사용시 주의 필요/필요시에만 사용)

 

패키지(머신러닝, 딥러닝)

모듈의 모음으로, 여러 모듈을 논리적인 그룹으로 묶은 디렉터리

패키지는 디렉터리 내에 __init__.py 파일이 있어야 Python에서 패키지로 인식됩니다.

mypackage/

__init__.py

module1.py

module2.py


 

패키지

코드 재사용을 촉진하며, 대규모 프로젝트에서 코드의 가독성과 유지보수성을 높이는 데 중요한 역할

 

1 ) 패키지 설치방법

pip

Python 패키지 인덱스(PyPI)에서 원하는 패키지를 쉽게 설치할 수 있다.

- 설치: pip install requests

-목록 확인: pip list

- 패키지 업그레이드: pip install upgrade 패키지이름

-패키지 제거: pip uninstall 패키지이름

-가상환경 생성: python -m venv 이름

-가상환경 활성화: myenv\Scripts\\activate

-가상환경 비활성화: deactivate

 

tip. numpy는 선형된 수나 수치계산에서 강력한 도구이다


 

예외처리

try, except, finally

어ᄍᅠᆯ 수 없이 예외가 나거나 상황에따라 에러가 발생할 경우대응해야 한다.

(프로그램이 멈추기 때문에)

 

잘못 된 인덱스 접근 ex) 존재하지 않는 데이터에 접근하는 경우

try:

# 예외가 발생할 가능성이 있는 코드

except 예외타입:

# 예외가 발생했을 때 실행할 코드

except:

# 예외가 발생했을 때 실행할 코드

tip. 예외 타입에 맞지않는 코드가있을 경우 마지막 줄의 기본 except문을 넣으면 값이 나온다

 

1) 항상 실해되는 코드 finally

에러 후 더 이상 사용하지 않겟다고 설정하지 않으면 코드에 자원이 계속 할당 받는 상태이다.

그래서 자원을 할당받은 경우에는 반드시 해제해줘야한다.

ex)

try:
    file = open("data.txt", "r")
    data = file.read()
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")
finally:
    file.close()
    print("파일을 닫았습니다.")

 

2) 어떤 에러가 발생했는지 모를땐

except exception as e:

print(f“모든에러 {e}”) # 예외가 발생했을 때 실행할 코드

 

3주차 강의를 들으며 추가적으로 알게 된 코드

ZeroDivisionError 0으로 나누기가 되었을 때 나오는 에러

FileNotFoundError파일을 찾을 수 없을 때 마노는 에러

 

square함수: 입력값 n의 제곱

items함수: 딕셔너리에 있는 키와 값들의 쌍을 얻을 수 있습니다.

math.sqrt (n): 파이썬에서 제곱근을 구하는 방법

pow(): 함수는 제곱 연산을 수행

sin(): 사인 갑을 반환

cos(): 코사인 갑을 반환

tan(): 탄젠트 갑을 반환


 

클래스, 객체 (객체지향)

현실에서 존재들을 프로그램적으로 표현하는 것이다

(장점: 재사용성, 유지보수, 기능추가, 확장성)

 

1) 클래스(Class)

객체를 만들기 위한 청사진(Template) 또는 설계도

 

속성Attributes와 매서드Methods(행동)

-속성은 객체의 데이터를, 메서드는 객체의 동작을 정의합니다.

 

2)상속

이미 작성 된 코드를 재사용하고 새로운 객체를 쉽게 만들 수 있다.

장점: 재사용성, 유지보수성

 

-다형성

같은 메서드를 호출했는데 상황에따라 다른 결과가 나오게할 수 있다.

 

-추상화

단순화하여 나머지는 감추어준다. 중요부분만 보여준다


 

클래스 만들기와 속성, 메서드 살펴보기

 

pass 클래스 내부가 비어있을떄 (def, If 에서도 사용가능)

class AI_student:

pass

 

1) __init__ 메서드는 객체가 생성될 때 자동으로 호출되며, 객체의 초기 속성을 설정하는 역할을 합니다.

 

2) slef

현재 메서드가 호출 된 객체를 자동으로 전달한다.

tip. 위치가 정해져있다 (첫번째 매개변수)

tip. 파이썬은 매서드를 호출할떄 자동으로 지금객체를 self에 전달해준다.

tip. 단순히 관례이며 자기자신을 나타내는 것

하지만 너무 필수적인 관례라서 첫 번째 인자로 매서드를 정리하는 경우 self를 넣는게 좋다.


 

클래스 더 나아가기

 

매직매서드 파이썬에서 미리 정해진 매서드

1) __init__

2) __repr__ 객체에 공식적인 문자열을 표현(반환)하는 매서드를 만들 수 있다

그 객체를 다시 생성할 수 있는 문자열이여야한다. => __repr__코드를 사용했을 때 출력 된코드를 그대로 코드에 입력했을 때 동일한 객체사 생성되는 문자열이 나와야한다.

3) __add__ 객체간의 덧셈(other필요 => 다른 객체가 드러올 자리)

4) __eq__ 두 객체를 비교하는 연산자(other필요 => 다른 비교 될 객체가 드러올 자리)

5) __str__ 비공식적인 문자열을 반환해준다(사용자에게 보여지기 위한 문자열 출력)

 

 

클래스 매서드

클래스를 대표하는 매서드 = 클래스 매개변수

class MyClass:

class_variable = 0 (클래스변수: 클래스 제일 외곽에 변수가 선언 되어있는 것,

모든 객체가 공유한다)

@classmethod (@classmethod: 클래스를 대표하는 메서드를 정의하는 방법)

def increment(cls):

cls.class_variable += 1

 

정적메서드 클래스나 객체와는 관련이 없지만, 클래스의 맥락에서 의미가 있는 메서드

매개변수, 변수, 클래스 변수 정적메서드 클래스 메서드 일반 매서드

=>개념이라도 외워야하니 찾아보자!

 

 

 

상속

큰분류 내부에 분류가있는데 분류의 특징 중 큰분류가 가지는 특징은 당영히 가지게 되는데 이를 다시한번 정의하게 되면 너무 낭비라서 가져쓰는 방법이 상속이다.

(부모클래스와 자식클래스가있는데 자식클래스는 부모의 내용을 상송받아 그대로 사용가능)

 

class Animal:

      def __init__(self, name):

           print("부모의 생성자입니다")

           self.name = name

       def speak(self):

           return "소리를 냅니다."

      def test(self):

           print("동물입니다")

class Dog(Animal): # Animal 클래스를 상속받아 Dog 클래스 정의

         def __init__(self, name, age): #생성자를 재정의 한다.

         super().__init__(name)  #부모의 생성자를 호출합니다.

 

self.age = age

 

def speak(self): # 부모 클래스의 메서드를 재정의 (오버라이딩)

      return f"{self.name}가 멍멍 짖습니다."

 

# 객체 생성

dog = Dog("Buddy", 15)

print(dog.speak()) # Buddy가 멍멍 짖습니다.

 

- abstractmethod 무조건 상속받는 매서드에서 구현해라라는 명령어

 

 

eval함수: 매개변수로 받은 expression (=)을 문자열로 받아서, 실행하는 함수 입니다.

 

목차

  • 파이썬 설치(VSCODE)
  • 연산자
  • 데이터 타입
  • 컬렉션
  • 데이터 타입 변환
  • 제어문과 반복문

  

  • 파이썬 설치

VSCODE-공식 사이트 Visual Studio Code - Code Editing. Redefined

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

- VSCODE공식 사이트에 접속하여 OS환경에 맞게 설치 

- 파이썬 확장을 설치합니다!(Extensions)을 클릭 후 python검색하고 설치

- 파이썬 홈페이지로가서 파이썬을 설치 (PATH 클릭 필수!!!)

Download Python | Python.org

 

Download Python

The official home of the Python Programming Language

www.python.org

 


  • 연산자

1) 산술연산자

+ 더하기

- 뺴기

* 곱하기

/ 나누기

% 나머지

** 거듭제곱(몇에몇승)

//

tip. 나머지(%)를 구할 때 2로 나누었을 때 0이나오면 짝수 1이 나오면 홀수

 

2) 비교연산자

== 값이 같음

!= 값이 다름

>

< 작음

>=크거나 같음

<= 작거나 같음

 

3) 논리연산자 

and 두 조건 모두 참

or 두 조건 중 하나라도 참

not 논리값을 반대로 뒤집음

 

4) 대입연산자

= 값 할당

+= 더한 후 할당

-= 뺀 후 할당

*= 곱한 후 할당

/= 나눈 후 할당

%= 나머지를 구한 후 할당

**= 거듭제곱한 후 할당

//= 몫을 구한 후 할당

 

5) 비트연산자 (2진수 수준에서 계산)

& 비트and

| (엔터 위) 비트or

^ 비트xor

~ 비트 not(보수)

<< 왼쪽 시프트

>> 오른쪽 시프트

 

6) 멤버십 연산자

in 포함 되어있는지

not in 포함 되어있지 않은지

 

7) 식별 연산자

is 두 변수가 동일 객체인지 확인

is not 두 변수가 동일하지 않은 객체인지 확인

 


  • 데이터 타입

1) 숫자형

정수: 소수점없이 정수를 나타냄 a = 10

실수: 소수점을 포함한 숫자를 나타냄 x = 2.14

복소수형(실제로는 잘 안씀)

tip. 더하기 연산은 정수 실수 문자열 끼리는 가능하지만 정수와 문자열의 등장은 불가능

 

2) 문자열 (‘’, “”로 표현 할 수 있다, =*을 사용해 연산가능)

name = “장한검

name_2 = “Alice”

name_3 = “”“장 

한검”“”      (줄바꿀 때 사용)

name = ‘한검’ (글 사이에 따옴표 사용)

 

3) 인덱싱과 슬라이싱

text = “python”

인덱싱 print(text[0]) => p 특정 텍스트를 뽑아냄  tip. 0이 시작 숫자

슬라이싱 print(text[1:4]) => yth 구역설정하여 특정 텍스트를 뽑아냄 

 

4) 불리언 타입

참 거짓을 나타내는 데이터 타입 tip. and, or not 등 연산 사용가능

A = true

B = False

트루 값은 1로 거짓은 0으로 표현 되어 A = B 하면 1로 나온다.


  • 컬렉션

1) List 

여러개의 항목을 저장할 수 있는 가변운 자료형(저장 못하는 자료도 있음)

리스트는 []로 표현 ,로 구분

ex) fruits = ["apple", "banana", "cherry"]

- 접근 print(fruits[0]) # apple tip. print(fruits[-1])을 하면 가장 뒤에 값이 나온다

- 변경 fruits[1] = "blueberry"

- 추가 fruits.append("orange")

- 제거 fruits.remove("blueberry")

- 길이 학인 print(len(fruits))

- 정렬 fruits.sort()

 

2) 튜플

튜플은 리스트와 유사하지만, 한 번 생성되면 수정할 수 없는 불변 자료이며 소괄호()로 표현됩니다.

ex) coordinates = (10, 20)

 

3) 딕셔너리

딕셔너리는 키-값 쌍(Key-Value Pair)으로 데이터를 저장하는 자료형입니다.

딕셔너리는 중괄호{}로 표현되며, 키와 값은 콜론:으로 구분됩니다.

ex) person = { "name": "Alice", "age": 25, "city": "New York" }

print(person["name"]) # Alice

- 변경

person["age"] = 26

print(person) # {'name': 'Alice', 'age': 26, 'city': 'New York'}

- 추가

person["email"] = "alice@example.com"

print(person) # {'name': 'Alice', 'age': 26, 'city': 'New York', 'email': 'alice@example.com'}

- 제거( del )

del person["city"]

print(person) # {'name': 'Alice', 'age': 26, 'email': 'alice@example.com'}

- 접근( .keys(), .values() )

print(person.keys()) # dict_keys(['name', 'age', 'email'])

print(person.values()) # dict_values(['Alice', 26, 'alice@example.com'])

 

4) 셋

셋은 중복되지 않는 요소들의 집합을 나타냅니다.

셋은 중괄호{}로 표현되며, 순서가 없고, 중복을 허용하지 않습니다.

추가 .add()

제거 .remove()

집합 연산

합집합

.union()

교집합

.intersection()


  • 데이터 타입 변환

1) 명시적 타입 변환

.int() 정수형

.float() 소수형

str() 문자형

bool() 불리언 (참과 거짓으로 값은 내는 것)

list() 문자열을 리스트로 변환

tuple() 리스트를 튜플로 변환

set() 리스트를 셋으로 변환 (중복제거)

tip. 불리언에서 0과 “”(빈문자열)은 false로 나온다.

 

2) 암시적 타입 변환

자동으로 변환 되는 것을 말한다.


  • 제어문과 반복문

제어문 중 조건문

 

1) IF문 tip. 들여쓰기 할 곳에 :(콜론)필요 / 들여쓰기 ctrl+[

 IF 뒤에는 조건식이 오고, 조건식이 참(True)이면 해당 코드 블록이 실행된다.

IF로 조건을 걸고 조건이 아닐때는 else 결과 갑을 설정 할 수 있다.

 

2) ELIF

여러 개의 조건을 순차적으로 검사할 때 사용

tip. 순차적으로 검사하기 때문에 조건의 순서를 잘 설정해야한다. 

 

3) 중첩 조건문

tip. 들여쓰기 신경써야함

if 조건식1:

     if 조건식2:

         실행할 코드1

    else:

         실행할 코드2

else:

    실행할 코드3

 

tip. .lower() = 입력한 값을 소문자로 바꿔주는 것

 

반복문

 

1) for문

컬렉션(collection)의 각 요소를 순차적으로 순회하면서 코드 블록을 실행

 

2) while

조건식이 참인 동안 반복해서 코드 블록을 실행하고 조건식이 거짓이 되면 반복문이 종료됩니다.

tip. 거짓인 조건문이 없으면 무한이 반복한다.

 

3) breake문

특정 조건이 만족되면 반복문을 즉시 종료시킨다.

ex) for i in range(1, 11):

            if i == 5:

                 break

           print(i)

 

4) continue문

현재 반복을 건너뛰고, 다음 반복을 이어간다.

ex) for i in range(1, 6):

             if i % 2 == 0:

                 continue

            print(i)

 

5) rang함수

특정 범위의 숫자 시퀀스를 생성한다.

ex) for i in range(시작, 종료, 단계):

         실행할 코드

tip. 단계는 2를 쓰면 2씩 증가 하게 만들 수 있다.

tip. (시작, 종료, 단계)에서 생략하고 1개만 사용할 수 있다. (이해X 복습 필요)

 

6) 중첩 반복문

2차원 데이터(예: 행렬)를 처리하거나, 복잡한 반복 작업을 수행할 때 유용하다.

ex) for i in range(1, 4):
            for j in range(1, 4):
                 print(f"i={i}, j={j}")


OT와 팀 회의

오늘은 본캠프가 시작해서 OT를 듣고 조가 편성 되어 ZEP에서 모여 회의도 나누고 공부도 하였다.

 

획실히 본캠프가 시작 되니 내용이 너무 어려웠고(OT때 부터 모르는 단어가 너무 많았다)

직접 만나는 것이 아닌 인터넷에서 캠을키고 회의를 하는 것은 어색하여

낯가림이 크게 없는데도 용기를 내지 못하였고 먼저 말도 걸어주셨지만 친해지지 못한것같아 아쉬웠다.

 

공부

사전 캠프에서 SQL강의를 먼저 들으면서 했던 생각은 와! 쉽고 재미가있다. 반복해서 익숙해지면 금방하겟는걸~~

 

..........하지만 

 

과제와 연관 되어 새롭게 듣게 된 강의 PYTHON은 설치부터 1시간이 넘게 걸려 점심시간 까지 소비하였고

그 수업의 내용은 본 적이 없는 것들로 가득했다.

 

그래도 겁먹지말고 하자라는 생각으로 강의를 틀고 듣기 시작하고 1시간을 넘기고 2시간을 넘기고

한주차에 평균 1시간 20분정도 되는 강의를 3시간은 넘게 경청하였다.

 

필기하다 못들어서 뒤로가고, 이해 안되어서 뒤로가고... 무한반복;;

 

결국 오후 5시쯤 머리 속이 멍해져 버렸고 속도는 더 느려졌다.

 

그래도 저녁시간에 쉬고 팀회의를 진행하고 나서 다시 강의를 들으니 이해가 안되던 내용들이 이해가 되어 다행이였다.

(팩트는 아직 이해 안가는 부분이 많지만 그게 너무 많아 기억도 안난다는거임ㅋㅋ)

1.python이란?

 

1) “Python은 가독성이 높고 문법이 쉽다”라는 문장에 증거가 될 사례를 작성해주세요.

python의 사례로는 유명한 구글, 인스타그램, 스포티파이 등이 있습니다.

-구글: 백엔드에 C++와 파이썬을 결합하여 사용(파이썬은 빠른 전달과 관리가 필요한 부분에 사용)

-인스타그램: 파이썬으로 작성된 Django를 기본 서버 언어로 사용한다고 합니다

-스포티파이: 스포티파이는 백엔드의 80%가 파이썬으로 작성 되어 AI기능을 추가해 듣는 노래를 분석하고 비슷한 노래를 추천해준다고 합니다.

 

2) 가독성이 좋은 언어를 사용했을때 어떤 이점이 있나요?

프로그램마다 다른 스타일의 언어들을 사용하게 되는데 파이썬의 경우 들여쓰기, 글자수, 띄어쓰기, 연산자, 괄호 등 가독성을 높이 매우 높습니다. 가독성이 높아 남들이 올려 놓은 소스를 가져다 사용해도 내 소스를 공유해도 문제없이 잘 돌아가며 코드를 이해하기 쉬워집니다.

 

2. Python에서 더 나아가기

1) 데이터 분석가가 Python을 알아야하는 이유는 무엇인가요?

데이터처리, 분석, 시각화, 모델링을 위한 강력한 도구를 제공하기 때문입니다.

 

2) 데이터 분석가가 Python을 이용했을 때 어떤 이점이 있나요?

python에는 다양한 분석 라이브러리(Pandas, Matplotlib, NumPy, Seaborn, Scikit-learn)가 존재하여

데이터처리, 분석, 시각화, 모델링에 이점이있습니다. 또한 쉬운 문법을 사용하고있어

소스를 공유하기 쉬워 다양한 커뮤니티가 존재합니다

 

 

'과제' 카테고리의 다른 글

반복문 연습하기 Part 1, 2, 3  (0) 2024.10.14
내일배움캠프 8조 Python 반복문  (0) 2024.10.11
내일배움캠프 10/9(한글날) + 개인과제  (11) 2024.10.09
9/27 걷기단계 2, 3  (0) 2024.09.27
09/26 걷기단계 1  (2) 2024.09.26

+ Recent posts