728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

오랜만이다. 현실 생활이 너무 바빠 며칠간 못했다. 그래도 금방 돌아왔으니 열심히 다시 해보겠다. 목표는 100일 도전을 올해 5월 내에 끝내는 것이다. 응원해 주고 훈수해 주길 바란다.

 

내일, 모레에는 복습이 기다리고 있으니 오늘은 복습은 하지 않겠다.

 

Day 12: 프로젝트: 간단한 텍스트 분석기

  • 텍스트 파일을 읽어 단어의 빈도를 계산하는 프로그램 작성.

1. 프로젝트 개요

목표

  1. 텍스트 파일을 읽기.
  2. 텍스트를 단어 단위로 나누기.
  3. 각 단어가 몇 번 나왔는지 계산.
  4. 결과를 빈도순으로 정렬해 출력.

먼저 위와 같은 txt파일을 만든다. 

 

 

110은 왜 출력되는지는 모르겠다.

 

 

이렇게 프로그램을 만든 후 

 

이렇게 출력시키면 된다.

 

선생님이 간단하게 설명해주셨다.

읽어보고 가자.

코드 설명

  1. 파일 읽기:지정된 파일을 읽어 텍스트 내용을 가져옵니다.
  2. 코드
    with open(filename, "r") as file: text = file.read()
  3.  
  4. 소문자로 변환 및 구두점 제거:
    • text.lower(): 모든 문자를 소문자로 변환해 대소문자 차이를 없앱니다.
    • string.punctuation: 파이썬의 내장 문자열 모듈로, 구두점 문자 목록을 제공합니다.
    • text.replace(punct, ""): 각 구두점을 빈 문자열로 대체합니다.
  5. 단어 분리:공백을 기준으로 텍스트를 단어 리스트로 분리합니다.
  6. 코드
    words = text.split()
  7. 단어 빈도 계산:
    • 단어가 이미 사전에 있으면 기존 값에 1을 더합니다.
    • 단어가 없으면 기본값 0을 사용하고 1을 더합니다.
  8. 코드
    word_count[word] = word_count.get(word, 0) + 1
  9. 정렬:sorted() 함수와 lambda를 사용해 빈도수를 기준으로 내림차순 정렬합니다.
  10. 코드
    sorted_word_count = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
  11. 출력: 정렬된 단어와 빈도를 반복문을 통해 출력합니다.

추가로 두 가지만 더 해보자.

 

1. 상위 N개의 단어만 출력하기

5개를 해보자

이렇게 프로그램을 만들었다.

띄어쓰기를 잘못했더니 결과가 좀 다르다.

그래도 괜찮다. ㅋㅋ

 

2. 단어 길이별 빈도 분석

 

'

아마 이것도 조금 다를 것 같지만 바로 도전해보겠다.

이렇게 만들고 

결과는 이렇게 나왔다.

어쩔 수 없지 ㅋㅋㅋㅋ

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 9: 함수 심화

  • 기본값 매개변수와 키워드 매개변수.
  • 람다 함수.
  • 실습:
    • 람다 함수를 사용해 리스트의 모든 숫자를 제곱하는 프로그램 작성.

복습을 합시다.

 

간단히 예습하고 오늘의 학습을 시작하자

어제는 함수 기초를 하였고 오늘은 함수 심화를 할 것이다.

 

1. 기본값 매개변수와 키워드 매개변수

1.1 기본값 매개변수

함수를 정의할 때 매개변수에 기본값을 지정하면, 함수 호출 시 인자를 생략해도 기본값이 사용됨.

1.2 키워드 매개변수

함수를 호출할 때 매개변수 이름을 직접 지정하여 값을 전달하는 방식.
이 방식은 가독성을 높이고 매개변수 순서와 상관없이 값을 전달 가능.

 

기본값과 키워드 매개변수 함께 사용

 

2. 람다 함수

2.1 람다 함수란?

  • 람다 함수는 이름이 없는 익명 함수로, lambda 키워드를 사용해 간단하게 정의.
  • 주로 짧고 간단한 함수를 정의할 때 사용함.

 

감이 잘 안 오니 예제로 확인해보자

람다 함수 활용

람다 함수는 주로 다른 함수의 매개변수로 전달되거나, 리스트와 같은 데이터 구조를 처리할 때 사용.

 

함수의 매개변수 설정방법과 람다 함수에 대해 학습하였다.

실습 과제를 통해 정확하게 이해하고 적용해 보자.

 

오늘의 실습과제이다.

람다 함수를 사용해 리스트의 모든 숫자를 제곱

 

 

뭔가 쉽게 해결했다.

과제가 쉬웠으니 추가 과제는 3개 정도 해보자...

 

1. 짝수만 제곱

리스트에서 짝수인 숫자만 골라 제곱한 결과를 출력

 

위의 프로그램을 조금만 바꿔서 해결해보자

허허허 이정돈 쉽지 쉬워

 

2. 리스트의 숫자 두 배로 만들기

 

실습할수록 함수를 이해할 수 있게 되었다.

 

마지막 세 번째이다.

 

3 키워드 매개변수 활용 : 람다 함수를 사용하지 않고, 기본값 매개변수와 키워드 매개변수를 활용해 숫자 리스트의 제곱을 계산하는 함수를 작성.

 

lambda 쓰지 않고 해결해 보았다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 7: 딕셔너리와 집합

  • 딕셔너리 생성, 값 추가/삭제.
  • 집합(Set) 개념 및 활용.
  • 실습:
    • 학생 점수를 딕셔너리로 저장하고 평균을 계산하는 프로그램 작성.

복습 복습

 

간단하게 하고 본론으로 들어가자

 

1. 딕셔너리 (Dictionary)

1.1 딕셔너리 생성

딕셔너리는 **키(key)**와 값(value) 쌍으로 데이터를 저장하는 자료구조.

 

Dictionary는 살짝 복잡하지만 위에 말한 대로 key라는 집합과 value라는 데이터로 둘 다 저장하는 데이터 구조를 만들 때 사용하는 것이다. {}와 : 를 사용한다.

 

1.2 딕셔너리 값 추가 및 수정

  • 값을 추가하거나 수정하려면 키를 사용

 

1.3 딕셔너리 값 삭제

  • del 키워드를 사용하여 값 삭제.

1.4 딕셔너리 주요 메서드

  • keys(): 딕셔너리의 모든 키 반환.
  • values(): 딕셔너리의 모든 값 반환.
  • items(): (키, 값) 쌍 반환.

 

직접해보았고 어떤 내용인지 충분히 이해하는 시간이었다. 

 

 

2. 집합 (Set)

2.1 집합 생성

집합은 중복을 허용하지 않으며, 순서가 없는 데이터 구조

 

고등학교 때 수학 첫 번째로 배웠던 기억이 난다. 개념은 크게 어렵지 않다.

2.2 집합 값 추가 및 삭제

  • add(value): 값을 추가.
  • remove(value): 값을 삭제.

 

2.3 집합 연산

  • 합집합: | 또는 union()
  • 교집합: & 또는 intersection()
  • 차집합: - 또는 difference()

 

오늘의 실습 과제이다.

 

학생 점수를 딕셔너리로 저장하고 평균 계산하기

 
 

Dictionary를 이용하여 해결해 보자 

 

기존의 실습들보다 복잡해 진 것을 볼 수 있다. 하지만 그만큼 재미있어진다.

추가로 두가지정도 해보자

 

1. 최고 점수와 최저 점수 구하기

 

오늘 실습 예제의 데이터를 이용하여 최고점수인 Bob과 최저 점수인 Charlie를 출력할 수 있었다.

 

2. 집합을 활용한 점수 관리

 

각 점수를 추출하여 집합으로 출력하였다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 6: 리스트와 튜플

  • 리스트 생성, 추가, 삭제, 슬라이싱.
  • 튜플과 리스트의 차이점.
  • 실습:
    • 주어진 리스트에서 최댓값과 최솟값을 구하는 프로그램 작성.

오늘도 복습하고 시작한다.

 

for문과 while문을 이용하여 범위 내의 합을 구하는 방법이다. 

결과는 간단히 생략하고 오늘의 본문을 시작하자.

 

1. 리스트 (List)

1.1 리스트 생성

리스트는 데이터를 순서대로 저장할 수 있는 가변형 자료구조

 

my_list = [1, 2, 3, 4, 5]

empty_list = [] # 빈 리스트

 

1.2 리스트 요소 추가

  • append(value) → 리스트 맨 뒤에 요소 추가.
  • insert(index, value) → 특정 위치에 요소 추가.
my_list = [1, 2, 3]
my_list.append(4) # [1, 2, 3, 4]
my_list.insert(1, 5) # [1, 5, 2, 3, 4]

 

1.3 리스트 요소 삭제

  • remove(value) → 특정 값을 삭제.
  • pop(index) → 특정 인덱스의 값을 삭제 (기본값: 마지막).
  • del → 특정 인덱스의 값을 삭제.
  • clear() → 리스트 전체를 비우기.

my_list = [1, 2, 3, 4]

my_list.remove(3) # [1, 2, 4]

my_list.pop(1) # [1, 4]

del my_list[0] # [4] my_list.clear() # []

 

1.4 리스트 슬라이싱

리스트의 일부를 가져오는 방법.

 

my_list = [1, 2, 3, 4, 5]

print(my_list[1:4]) # [2, 3, 4] (1번 인덱스부터 3번 인덱스까지)

print(my_list[:3]) # [1, 2, 3] (처음부터 2번 인덱스까지)

print(my_list[2:]) # [3, 4, 5] (2번 인덱스부터 끝까지)

 

2. 튜플 (Tuple)

2.1 튜플 생성

튜플은 데이터를 저장할 수 있는 불변형 자료구조. 한 번 생성되면 값을 수정하거나 삭제할 수 없음.

 

my_tuple = (1, 2, 3, 4, 5)

empty_tuple = () # 빈 튜플

 

 

2.2 리스트와 튜플의 차이점

특징리스트 (List) 튜플 (Tuple)

특징 리스트(list) 튜플(Tuple)
가변성 값을 변경하거나 삭제 가능 값을 변경하거나 삭제 불가능
사용 목적 데이터 수정이 필요한 경우 고정된 데이터를 저장할 때 사용
메모리 사용 더 많은 메모리 사용 더 적은 메모리 사용

 

 

오늘의 실습 과제이다.

 

리스트에서 최댓값과 최솟값 구하기

 

오늘 학습한 내용에서 조금만 추가하면 쉬운 문제이다.

 

최댓값은 max()를 사용하였고

최솟값은 min()를 사용하여 해결하였다.

 

추가로 몇 가지 더 하고 마치도록 하겠다.

 

1번 직접 최댓값과 최솟값 구하기

max()와 min()을 사용하지 않고, 반복문으로 최댓값과 최솟값을 찾는 프로그램을 작성

 

먼저 초기값은 설정 후 어제 배운 반복문을 사용하여 최댓값과 최솟값을 찾아내었다.

 

2번 리스트에 값 추가 및 수정

사용자로부터 숫자를 입력받아 리스트에 추가하고, 수정

 

두 번째 과제 또한 쉽게 해내었다.

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 3: 연산자

  • 산술 연산자: +, -, *, /, //, %, **.
  • 비교 연산자: ==, !=, >, <, >=, <=.
  • 논리 연산자: and, or, not.
  • 실습:
    • 숫자 두 개를 비교해 큰 숫자를 출력하는 프로그램 작성.

오늘은 저번 수업에서 했던 계산기에 쓰인 연산자에대한 공부를 할 것이다.

 

기본인 복습을 하자 

 

 

잘 못눌러서 yess를 입력했더니 계산기가 끝났다.......

예습은 끝!!

 

Day 3: 연산자

1. 연산자의 종류

1.1 산술 연산자

연산자기능예제결과
+ 덧셈 3 + 2 5
- 뺄셈 5 - 3 2
* 곱셈 4 * 2 8
/ 나눗셈 (결과: 실수) 5 / 2 2.5
// 5 // 2 2
% 나머지 5 % 2 1
** 거듭제곱 2 ** 3 8

1.2 비교 연산자

연산자기능예제결과

== 두 값이 같은지 확인 5 == 5 True
!= 두 값이 다른지 확인 5 != 3 True
> 왼쪽 값이 오른쪽 값보다 큰지 확인 5 > 3 True
< 왼쪽 값이 오른쪽 값보다 작은지 확인 3 < 5 True
>= 왼쪽 값이 크거나 같은지 확인 5 >= 5 True
<= 왼쪽 값이 작거나 같은지 확인 3 <= 5 True

1.3 논리 연산자

연산자기능예제결과

and 모두 참이면 참 True and False False
or 하나라도 참이면 참 True or False True
not 값을 반대로 바꿈 not True False

 

학창시절 수학시간에 졸지 않았다면 어렵지 않는 내용들이다. 

이정도는 아직 쉽다!!

 

오늘의 실습과제다.

 

전날 공부한 while true를 넣어서 해보자

 

이젠 이정도는 어렵지 않다.

이건 더 큰 숫자를 출력한다. 추가로 더 작은 숫자를 출력하는 프로그램을 짜보자

 

간단하게 '큰'을 '작은'으로 바꾸면 쉽다.

 

재미있으니깐 하나만 더 해보자. 숫자의 크기 비교를 했으니 내가 말한 숫자가 내가 설정한 범위에 있는지 알아보는 프로그램을 짜보자.

 

 

생각한데로 잘되었다. 

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형
728x90
반응형

ChatGPT를 이용하여 코딩 공부를 해보려 한다. 

100일 동안 공부하고 기록할 것이다. 

많이 읽어주시고 항상 감사하다. (훈수는 항상 환영한다.)

 

Day 2: 변수와 자료형

  • 자료형: 숫자형(int, float), 문자열(str), 불리언(bool).
  • 형 변환: int(), float(), str().
  • 실습:
    • 간단한 계산기 만들기 (더하기, 빼기, 곱하기, 나누기).

오늘은 간단한 계산기 만들기를 해보겠다.

아직 감은 잘 안 잡히지만 굉장히 흥미롭다.

 

공부의 기본은 복습이다. 어제 한 것을 다시 해보았다.

 

며칠뒤면 앞자리가 바뀌지만 그래도 예습도 다 했고 잘 된 것 같다. 

 

1. 자료형 (Data Types)

Python에서 자주 사용되는 자료형:

  • 숫자형 (Numeric):
    • int: 정수형 (예: 10, -5)
    • float: 실수형 (예: 3.14, -0.5)
  • 문자열 (String):
    • str: 문자나 텍스트 데이터 (예: "안녕하세요", "123")
    • bool: 참(True)과 거짓(False) 불리언 (Boolean):

 

먼저 Date Type에대해 공부하였다. 

그 후 각 date의 type을 확인 하였고 다음 단계로 나아갔다.

 

2. 형 변환 (Type Conversion)

  • int(): 숫자나 문자열을 정수형으로 변환.
  • float(): 숫자나 문자열을 실수형으로 변환.
  • str(): 숫자나 기타 자료형을 문자열로 변환.

.

Date Type을 배웠으니 Type 변경하는 방법을 배웠다. 

 

오늘의 과제다.

 

 

위 과제를 해결할려면 조건문을 사용해야 한다.

 

조건문 사용:

  • if, elif, else를 사용하여 입력된 연산자에 따라 계산 수행.
  • 더하기(+), 빼기(-), 곱하기(*)는 간단히 처리.

조건문을 사용할 때는 들여 쓰기를 잘해야 한다. 스페이스바 4개 정도 넣어주면 완벽하다.

 

좀 힘들었지만 몇 번의 실수 후 결과까지 만들었다. 나눗셈에서는 0으로 나뉘면 안 되기 때문에 조건을 추가하여 오류를 방지하였다.

하지만 이러면 한번 계산하고 다시 코딩하고 해야 한다.

반복문에 대한 이해가 정확히는 되지 않았지만 열심히 해보았다.

 

While True를 넣어서 반복하였고 break으로 멈추었다.

깜빡하고 no 하는 것을 넣지 못했는데 

마지막까지 잘 되었다. 연산자를 잘못 넣어도 잘 되었고 나눗셈할 때 0을 넣으면 오류도 잘 잡았다. 

점점 더 재미있어지고 있다. 

 

오늘은 이만 

 

읽어주셔서 감사하다.

반응형

+ Recent posts