• 파이썬의 활용법
  • 개발자란?
  • 복습
  • 파일 다루기!
  • 이터레이터(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번한 것 같아 다시 적을때 더욱 많은 것을 알게 된 것 같아 그나마 나았다.

 

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

목차

  • 파이썬 설치(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시쯤 머리 속이 멍해져 버렸고 속도는 더 느려졌다.

 

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

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

새롭게 알게 된

- select 컬럼 별명  = 컬럼 별명 붙이기

 

- group by 컬럼1, 컬럼2 = 카테고리별 숫자연산

 

-order by = 범주별 정렬

1) order by  함수(계산 할 컬럼) desc  기본 (오름차순) desc (내림차순) 

ex) select restaurant_name,

               max(price) max_price

      from food_orders

      group by restaurant_name

      order by max(price) DESC

 

2) order by gender, name => 여성의 성'ㄱ'씨 부터 성'ㅎ'씨 까지 나온 뒤 남성 순으로 정렬

ex) SELECT *

      FROM customers

      order by gender, name

 

-REPLACE(컬럼, A, B) = 컬럼의 이름이 A에서B로 바뀌었을 때

ex) select name,

      replace(name, 'A', 'B') "newname"

      from table

      where name like '%A%'

 

-SUBSTR(컬럼, 시작위치, 글자수) = 특정 문자를 뽑아주는(글의 끝까지 뽑을 땐 글자수 생략 가능)

 

-CONCAT(붙이고 싶은 값1, 붙이고 싶은 값2,....) = 원하는 데이터를 붙여줌

ex) 컬럼1의 데이터 (티스토리) / 컬럼2의 데이터(블로그)

      concat('[', substr(컬럼1, 1, 2), ']', 컬럼2) => [티스]블로그

 

-IF(조건, 조건을 충족 할 때 값, 아닐 때 값) = 조건을 걸고 맞을 때 아닌 때 값을 설정

tip. IF 안에 함수가 포함 될 수 있다.

    ex) IF(컬럼 like'%asd%', replace(컬럼, A, B), 컬럼)

    => 컬럼에 asd가 들어간 데이터는 A를 B로 바꾸고 아닌 데이터들은 그대로 사용

 

-case when = 조건을 여러가지 달아야할 때

ex) select case when 조건 then '결과'

                         when 조건2 then '결과2'

                else '결과3' end

case = 조건 시작, when = 조건시작, then = 결과값, else = 조건에 들어 가지 않을때, end = 조건 끝

 

-데이터 타입 변경은 강의에서 잠깐 설명하였는데 이해X

 

 

새롭게 알게 된

 

-CREATE DATEBASE table( coulmn1, coulmn2, ....);

 

- SELECT table FROM coulmn

 

- SELECT  DISTINCT(중복방지) table FROM column

 

-WHERE = 조건에 맞는 수 (~이상~미만인 수, ~와 ~사이 수, ~보다 작은 수 등)

 

-ORDER = 정렬

 

-LIMIT = 수 제한

 

-INSERT INTO

 

-UPDATE

 

-DELETE

 

-기본키 외래키 정의(해석과 예시는 이해X)

 

-집계함수 중 AVG(평균)

 

-조건문(단어만 기억나는 이유가 배울 때에도 이해가 어려웠던 것)

+ Recent posts