목차
오늘의 TIL 순서는
- 시작전 마음가짐
- Python 문제풀이
- base 지식 탐구(ASCII, 문자열 함수)
- Streamlit 특강
- 수준별학습반: 딕셔너리 특강
- 회고
학습 내용은 GITHUB링크를 참고해 주세요
- ASCII
- 문자열 함수
TIL/Python/문자열 함수.ipynb at main · Onesword-Jang/TIL
오늘 배운 것은?! Contribute to Onesword-Jang/TIL development by creating an account on GitHub.
github.com
TIL/base/ASCII.ipynb at main · Onesword-Jang/TIL
오늘 배운 것은?! Contribute to Onesword-Jang/TIL development by creating an account on GitHub.
github.com
시작전 마음가짐
오늘은 2가지의 특강이있으며 팀 프로젝트의 전처리과정과 streamlit 예습을 주로 진행할 것 같습니다.
어제 진행하지 못한 Python문제풀이까지 모두 마치는것이 목적입니다.
목차로 일정을 정리하니 학습 내용이 조금 부족하다는 생각이 들지만 당장 무엇을 학습해야할지 떠오르지 않아 학습을 진행하며 추가해 진행할 예정입니다.
그럼 일정을 다 계획했으니 학습을 시작하겟습니다.
Python 문제풀이
1. 콜라츠 수열 만들기
- while조건 문과 식의 대입은 맞췃지만 아직 문법 정리 및 조건 정의가 어색해서 몇번 수정 후 완료
def solution(n):
answer = [n]
while n != 1:
if int(n) % 2 == 0:
n = n/2
else:
n = 3*n+1
answer.append(n)
return answer
2. 배열만들기 4
- 10초 이상이 걸린다고 실패 => 불필요한 욧 제거 필요
- for문 제거 후 기대값이 다름
- 자잘한 문법 사용 방법에 어색함
# 내가 푼 문제
def solution(arr):
stk = []
i = 0
while i < len(arr):
for i in range(len(arr)):
if stk == []:
stk.append(arr[i])
i += i + 1
elif stk[-1] < arr[i]:
stk.append(arr[i])
i += i + 1
elif stk[-1] >= arr[i]:
stk.pop()
return stk
# 솔루션 후 풀이
def solution(arr):
stk = []
i = 0
while i < len(arr):
if not stk:
stk.append(arr[i])
i += 1
elif stk[-1] < arr[i]:
stk.append(arr[i])
i += 1
else:
stk.pop()
return stk
3. 간단한 논리연산자
- 처음보는 문자로 and, or이 정의되어있어서 간단한 검색 후 진해
def solution(x1, x2, x3, x4):
return (x1 | x2) & (x3 | x4)
4. 주사위게임
- 학습하며 set에 대한 이해도가 부족하다고 생각이 들어서 조금 공부해왔습니다.
- set 자료형을 정말 유용하게 사용하는 경우는 교집합, 합집합, 차집합을 구할 때
- set 자료형은 인덱싱으로 불러올 수 없어 리스트나 튜플로 변환 시키고 수행해야한다.
- 1개 값 추가 하기 set.add()
- 여러 개의 값 추가 하기 set.update()
- 제거 set.remove()
5. 글자 이어 붙여 문자열 만들기
- 완료
def solution(my_string, index_list):
answer = ''
for i in range(len(index_list)):
answer += my_string[index_list[i]]
return answer
6. 9로 나눈 나머지
- 완료
def solution(number):
answer = 0
number = int(number) % 9
answer += number
return answer
base 지식 탐구
1. ASCII 문자란?
- 문자와 숫자를 매핑하는 표준 코드 체계입니다.
- 컴퓨터가 문자를 숫자로 저장하고 처리할 수 있도록 설계된 초기 문자 인코딩 시스템입니다.
- 아스키 코드는 총 128개의 문자로 구성
- 7비트로 표현
파이썬에서 자주쓰는 제어문자 = ASCII
- 줄바꿈 \n
- 탭 \t
- 캐리지 리턴 \r
- 널 문자 \0
아스키 문자의 활용 방법
- 데이터 전송
- 문자전환
- 암호화/복호화
2. 문자열 함수
Streamlit 특강 1일차
소개 및 설치
- 특징
- 쉽고 간단한 문법으로 빠르게 결과를 웹으로 만들 수 있다.
- 설치 `python pip install streamlit
import streamlit as st
import streamlit as st
import pandas as pd
import numpy as np
- Text 작성
- st.title("스파르타코딩클럽 AI 8기 예제")
- st.header("지금 스트림릿 예제를 만들고있습니다")
- st.text("따라가고있어요")
- st.markdown("### 마크다운 헤더 문법입니다.")
- 수식
- st.latex("E = mc^2")
- 버튼 생성 및 동작
if st.button("눌러주세요"): st.write("글씨가 생겨요")
- 상호작용 위젯 만들기
agree_box = st.checkbox("동의 하시겠습니까?") if agree_box is True: st.write("동의 하셨습니다.")
- 슬라이더 위젯
volume = st.slider("음악 볼륨", 0, 100, 50) st.write(f"음악 볼륨은 {volume}입니다.")
- 라디오 버튼
gender = st.radio("성별", ["남자", "여자"]) st.write(f"성별은 {gender}입니다.")
- 셀렉트 박스
flower = st.selectbox("라벨", ["1번", "2번", "3번"]) st.write(f"선택한 라벨은 {flower}입니다.")
- 데이터 프레임 시각화
df = pd.DataFrame({ "이름": ["장준영", "장한검", "양지아"], "출생년도": ["1996년 11월 04일", "1996년 11월 04일", "2018년 10월 12일"] })
st.write("### 데이터프레임 출력") st.dataframe(df) # 동적으로 크기를 조정 가능한 데이터프레임 st.table(df) # 정적 테이블
- 차트 데이터
st.write("### 랜덤 데이터로 라인 차트 그리기") chart_data = pd.DataFrame( np.random.randn(20, 3), # 20개의 행과 3개의 열을 가진 랜덤 데이터 생성 columns=["a", "b", "c"] # 열 이름 지정 )
st.line_chart(chart_data)
- 막대 차트 데이터
st.write("### 학생 점수로 막대 차트 그리기") chart_data_2 = pd.DataFrame({ "학생번호": ["1", "2", "3", "4"], "점수": [80, 100, 40, 50] })
st.bar_chart(chart_data_2.set_index("학생번호")) # 학생번호를 인덱스로 설정하여 차트 그리기
`
수준별 학습반: 딕셔너리 특강
1. 딕셔너리란?
- key, value 쌍으로 값이 들어있는 데이터
- key는 고유식별자로 바뀔 수 없다.
- key에는 불변한 데이터타입만이 올 수 있다.
2. 사용함수
- del: 키값 삭제
3. 사용 메서드
- items(): key,value 불러오기
- keys(): key값 불러오기
- values(): value값 불러오기
- get('키 값', 'none대신 나올 말'): key에 해당하는 value값을 불러오고 없다면 2번째 파라미터로 none을 대신한다.
회고
오늘은 조금 쉬어가는 느낌이 드는 하루였습니다.
그만큼 어제가 힘들었다는 이야기일 수 있겟어요ㅎㅎ 몸은 그대로 피로 축적이지만 괜찮습니다.
버틸만해요
언제나 생각하듯이 조금 더 높은 곳에 올라가려 시도를 하면 가장 아래 부분이 휘청인다는 느낌을 많이 받았습니다.
그래서 틈이 나는대로 기초적이지만 내가 모르고 내용을 알면 머리가 아파질만한 내용을 공부했어요.
진짜 생각했던 그대로 부실하더군요 물론 지금도 같습니다. 이렇게 초석 부분에 돌을 하나 더 끼워 넣었으니 조금 더 단단해졌습니다.
하하하!
오늘의 학습은 매우 만족 스러웠고 아쉬운 부분은 없었습니다.
하지만 아직 팀과제의 전처리 부분에서 판단 미스로 다시 전처리를 진행하는 과정을 거치고 쉬도록하겟습니다.
감사합니다.
'TIL' 카테고리의 다른 글
내일배움캠프 43일차 TIL + Stramlit, (0) | 2024.11.25 |
---|---|
내일배움캠프 42일차 TIL + text문서 전처리 (0) | 2024.11.23 |
내일배움캠프 40일차 TIL + Python, LLM특강, 개인과제(완료) (1) | 2024.11.21 |
내일배움캠프 39일차 TIL + Python, LLM특강, 개인과제(완료) (1) | 2024.11.20 |
내일배움캠프 38일차 TIL + Python, LLM특강, 개인과제(완료) (0) | 2024.11.19 |