| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 대외활동 추천
- DOIT!
- 국비지원취업
- 미유엔토
- 데이터분석
- 패스트캠퍼스부트캠프
- 이태원 클라쓰
- 유미의 세포들
- 웹툰 원작
- 현혹
- 데이터분석취업
- 정년이
- 대중문화
- 미뮤엔토 에디터
- 딥러닝교과서
- BDA
- 데이터분석부트캠프
- 미뮤엔토
- 대외활동
- 패스트캠퍼스
- 딥러닝 스터디
- 지금 우리 학교는
- 드라마
- 패스트캠퍼스데이터분석부트캠프
- 국비지원
- 부트캠프
- 재혼황후
- 이지스퍼블리싱
- 데이터분석가
- 미디어 콘텐츠
- Today
- Total
디지털 마케팅 LAB
패스트캠퍼스 데이터분석 부트캠프 3주차_PYTHON (1) 본문
파이썬 자료형
- 숫자형(number)
- 사칙연산 (+, -, *, /)이 가능
- a ** b or a ^ b: a를 b번 곱한 것
- a // b: a를 b로 나눈 몫
- a % b: a를 b로 나눈 나머지
- 문자형(string)
- 여러 줄로 나타낼 때: \n or """문장""" or '''문장'''
- 문자열 안에 ' 나 " 가 들어갈 때: 따옴표 앞에 \ or 전체 문장을 따옴표로 묶어주기
- Q. “Failure is simply the opportunity to begin again.” he says.” 이 문장을 파이썬으로 표현하기
- """ 사용
print(""" "Failure is simply the opportunity to begin again." he says." """)
- ' 사용
print(' "Failure is simply the opportunity to begin again." he says." ')
- \ 사용
print('\"Failure is simply the opportunity to begin again.\" he says.\"')
- """ 사용
- 문자열 인덱싱 & 슬라이싱
- indexing: 문자열의 위치를 인덱스(포지션) 값을 통해서 가져오는 방법
print(a[0])print(a[-2])
- slicing: 문자열을 분리하고 싶을 때 사용
print(a[0:4]) # 0 <= a < 4print(a[0:5]) # 0 <= a < 5print(a[6:-1]) # 6 <= a < 마지막
- Q. 문자열 ”TitanicJames” 를 영화제목(title)과 감독(director)으로 슬라이싱 하기
a="TitanicJames"
title=a[:7]director=a[7:]print('title:',title,',director:',director)
- indexing: 문자열의 위치를 인덱스(포지션) 값을 통해서 가져오는 방법
- 문자열 포맷팅
- 방법 1) format
name='yj'age=24# 괄호 개수 = format 함수의 인수 개수
print('안녕! 내이름은 {}, 나이는 {}.'.format(name,age)) - 방법 2) f-string
# format할 문자열이 많아질 때 용이name='yj'age=24city='seoul'
print(f'이름은 {name}, 나이는 {age}, 사는 곳은 {city}')
- 방법 1) format
- 문자열 함수
- strip()
a=' python 'a.strip() # 앞뒤 공백 제거
- join()
words=['안녕','하세요','파이썬']result="-".join(words)result # 출력: "안녕-하세요-파이썬"
- split()
sentence = "파이썬은 쉬워요"sentence.split(" ") # 출력: ['파이썬은', '쉬워요']
- Q. 문자열 '10kg-20kg-30kg'에서 숫자형 데이터만 불러오기
# 방법 1) 수가 하나씩 출력res=sample.split('-')res[0][:2]# res[1][:2]# res[2][:2]
# 방법 2) kg-를 기준으로 문자열 분리resmaple=sample+'-'resmaple.split('kg-')['10', '20', '30', '']
- strip()
- 리스트형(list)
- 리스트형도 사칙연산 가능
- 리스트 인덱싱 & 슬라이싱
x=['a','b','c','d','e']x[:3]
['a', 'b', 'c']x=['a','b','c',['d','e']]x[-1][-1]'e' - 리스트 함수
- append()
fruits=['사과','오렌지','체리']fruits.append('바나나') # 리스트 데이터에 값을 추가fruits
['사과', '오렌지', '체리', '바나나'] - pop()
fruits.pop(2) # fruits에서 인덱스가 2인 데이터를 리턴 후 삭제
'체리'fruits['사과', '오렌지', '바나나'] - sort()
numbers=[100,30,1000,300,10000]numbers.sort() # 리스트 안의 데이터 값을 오름차순 정렬(default)numbers
[30, 100, 300, 1000, 10000]numbers.sort(reverse=True) # 내림차순 정렬numbers[10000, 1000, 300, 100, 30]
- append()
- 튜플형(tuple)
- 튜플형도 리스트형처럼 인덱싱&슬라이싱과 사칙연산 가능
- 튜플의 특징
- 한번 생성되면 변경이 불가능
- 변경 불가능=처음 만들어진 튜플 요소에 추가, 삭제, 변경 X
t=(1,2,3)# t[0]=100 # 값을 수정 => TypeError# t.append(4) # 값을 추가 => AttributeError
- 이러한 불변성이 리스트와 튜플의 가장 큰 차이점
- 튜플을 썼다...? = "데이터가 변경되어선 안되는 작업을 했구나"
- api_key 또는 중요한 변수들 또는 변하지않는 변수(상수변수)에 사용
- 원본 데이터를 유지하면서 새로운 컬럼을 추가하고 싶을 땐?
new_t= t+(4,)new_t
(1, 2, 3, 4)
- 딕셔너리형(dict)
- 중괄호 안에 key와 value로 구성되어있는 형태
- 단 key는 중복 불가능
- 딕셔너리 함수
- get()
x = {'name':'inseop', 'age': [30, 32], 'city':{'born':'busan', 'live':'seoul'}}x.get('ages',0) # 지정된 키의 값을 반환 / 키가 존재하지 않을 경우, 기본값을 반환
0### get()함수의 작동과정try:x['ages']except:print("오류 발생")x['ages'] = 0
x['ages']오류 발생 0 - keys()
x.keys() # 딕셔너리의 모든 키를 리스트로 반환
dict_keys(['name', 'age', 'city', 'ages'])list(x.keys())['name', 'age', 'city', 'ages'] - values()
x.values() # 딕셔너리의 모든 값을 리스트로 반환
dict_values(['inseop', [30, 32], {'born': 'busan', 'live': 'seoul'}, 0])
- get()
- 중괄호 안에 key와 value로 구성되어있는 형태
- 집합형(set)
- set의 특징
- 순서가 없고, 인덱스도 없다.
- 데이터의 중복을 허용하지 않는다.
x=set([2,2,2,2,3,3,1,1,1])x
{1, 2, 3}
- set의 특징
- 불형(boolean)
- True = 1
- False = 0
제어문
- if (조건문)
- if문 작동원리

- Q. 서울에서 부산을 간다는 가정하에 돈에 따른 조건문 (7만원 있으면 비행기, 5만원 있으면 기차, 3만원 있으면 버스, 그마저 없으면 걸어감)
money=int(input("얼마가 있으신가요?"))if money>=70000:print("비행기 타고 가자")elif money>=50000:print("기차 타고 가자")elif money>=30000:print("버스 타고 가자")else:print("걸어가자")
얼마가 있으신가요?40000 버스 타고 가자
- if문 작동원리
- for (반복문)
- for문과 if문 혼합 사용
cities=['seoul','daejeon','daegu','busan']
for city in cities:print(f'도시 이름: {city}')if city == 'daejeon':print('go to 성심당')elif city=='busan':print('go to 해운대')도시 이름: seoul 도시 이름: daejeon go to 성심당 도시 이름: daegu 도시 이름: busan go to 해운대 - Q. 1~5까지 더하는 프로그램 만들기
# 단, 결과값은 sum 변수에 담으시오.
sum=0
for i in range(1,6):sum+=i
print(sum)15
- for문과 if문 혼합 사용
- while (반복문)
- Q. 1~5까지 더하는 프로그램 만들기
i=0sum=0
while i<5:i+=1sum+=i
print(sum)15
- Q. 1~5까지 더하는 프로그램 만들기
- try-except (예외처리)
- 보통의 프로그램에서는 오류가 나면 프로그램이 종료됨
- 유저가 잘못된 입력을 해도 코드가 돌아가게 만들려면?
- 문제가 생길 수 밖에 없는 코드에 사용
try:word=int(input('숫자를 입력해주세요: '))except: # 예외 처리word=0
if word<100:print('100보다 작습니다.')숫자를 입력해주세요: ㅋㅋㅋㅋ 100보다 작습니다.try:num=int(input('숫자를 입력해주세요: '))result=100/numprint(f'결과값: {result}')
except ValueError:# int() 변환에 실패한 경우 발생print('숫자가 아닙니다. 문자가 아닌 숫자를 입력하세요')
except ZeroDivisionError:# 숫자를 0으로 나누려고 한 경우 발생print('0이 아닌 다른 숫자를 입력하세요')
except Exception as e:# 위의 두 오류가 아닌 경우print(f'오류 문구: {e}')
finally:print('계산이 완료되었습니다.') # try-exception 구문이 끝나고 실행됨숫자를 입력해주세요: 0 0이 아닌 다른 숫자를 입력하세요 계산이 완료되었습니다.
제어문 실습 문제
Q1. 1부터 10까지의 정수 중에서 짝수만 출력하는 코드를 작성하세요.
2
4
6
8
10
Q2. 사용자로부터 입력받은 숫자가 양수인지 음수인지 출력하는 코드를 작성하세요.
숫자를 입력하시오:-2
음수
Q3. 1부터 100까지의 정수 중에서 3의 배수이면서 5의 배수인 정수의 합을 구하는 코드를 작성하세요.
315
Q4. 사용자로부터 n개의 정수를 입력받아, 이 중에서 가장 큰 값과 가장 작은 값을 구하는 코드를 작성하세요.
숫자들을 입력하시오(띄어쓰기로 구분):12 8 55 78 -5
가장 큰 값: 78
가장 작은 값: -5
몇 개의 정수를 입력하시겠습니까?3
숫자를 입력하시오 (1번째 숫자)18
숫자를 입력하시오 (2번째 숫자)45
숫자를 입력하시오 (3번째 숫자)3
최대값: 45
최소값: 3
Q5. 사용자로부터 입력받은 숫자의 구구단을 출력하는 코드를 작성하세요.
숫자를 입력하시오:3
3 곱하기 1 는 3
3 곱하기 2 는 6
3 곱하기 3 는 9
3 곱하기 4 는 12
3 곱하기 5 는 15
3 곱하기 6 는 18
3 곱하기 7 는 21
3 곱하기 8 는 24
3 곱하기 9 는 27
함수
- def = define 정의하다.
- 프로그래밍 중 반복적으로 생성되는 코드들을 재활용하여 사용하고 싶을 때 사용
- 호출을 할 때만 실행이 되는 일련의 코드 블록을 의미
- 함수의 구조

- 파이썬 내장함수 / 외장함수
- 내장함수 (Built-in Function): https://docs.python.org/3/library/functions.html
- 외장함수 (Extenal Function)
■ import문을 통해 외부의 라이브러리에서 가져온 함수
■ 외장 함수 사용법import <모듈이름>
함수 실습 문제
Q1. 두 수의 곱 반환 함수 두 수를 인자로 받아 그 곱을 반환하는 함수 multiply_numbers를 작성하십시오.
함수를 작성한 후, 두 수 4와 5를 입력하여 결과를 출력하는 코드를 작성하십시오.
20
Q2. 리스트의 평균값 계산 함수 숫자들이 담긴 리스트를 인자로 받아, 리스트의 평균값을 반환하는 함수 calculate_average를 작성하십시오.
함수를 작성한 후, 리스트 [10, 20, 30, 40, 50]에 대해 평균값을 출력하는 코드를 작성하십시오.
30.0
Q3. 문자열 반대로 뒤집기 함수 문자열을 인자로 받아, 그 문자열을 반대로 뒤집은 결과를 반환하는 함수 reverse_string를 작성하십시오.
함수를 작성한 후, 문자열 "hello"를 뒤집어 출력하는 코드를 작성하십시오.
'olleh'
'nohtyp'
Q4. 나이에 따른 할인율 계산 함수 작성 고객의 나이에 따라 할인율을 계산하는 함수 calculate_discount_rate를 작성하십시오. 할인율은 다음과 같이 결정됩니다:
- 3세 이하의 어린이는 100% 할인(무료)
- 4세부터 12세까지는 50% 할인
- 13세부터 18세까지는 25% 할인
- 19세 이상은 할인 없음
당신의 나이는 15, 할인율은 25% 입니다.
0.25
클래스
- 클래스: 객체지향 프로그래밍의 가장 기본 단위
- 하나의 틀과 같은 역할을 하며, 데이터 저장도 가능
- 함수는 특정 기능을 수행하는 일련의 코드블록을 나타내고 / 클래스는 함수보다 더 큰 개념. 함수를 여러개 모아놓은 것
- 클래스 내에 정의되는 변수를 속성, 함수를 메소드라고 부른다.
- Q. 팥을 넣으면 팥붕어빵, 슈크림 넣으면 슈크림 붕어빵을 만들어내는 틀 정의
class FishBread:def readbean_bread(self): # class안의 함수(메서드)들은 반드시 인자로 self를 필요로 함.print('팥붕')
def sucream_bread(self):print('슈붕')
a=FishBread() # class 호출a.readbean_bread() # class 내 함수(메소드)에 접근팥붕a.sucream_bread()슈붕 - Q. 차의 정보를 보여주는 클래스 정의
class Car:def __init__(self, make, model): # 초기화 함수, 클래스에 반드시 필요한 메서드self.make=make # 초기화 함수 안의 변수 값 = 속성self.model=modelself.fuel=0
def display_info(self): # 차량의 정보를 보여주는 함수## 클래스 안에선 self 인자를 통해 다른 함수에서도 변수 사용 가능print(f'제조사: {self.make}, 모델: {self.model}, 연료:{self.fuel}')
def add_fuel(self,amount): # 연료를 추가하는 함수self.fuel+=amountprint(f'주입 연료량: {amount} 현재 연료량: {self.fuel}')my_car=Car('Hyundai','Genesis')my_car.display_info()제조사: Hyundai, 모델: Genesis, 연료:0my_car.add_fuel(100)주입 연료량: 100 현재 연료량: 100print(my_car.model)print(my_car.make)Genesis Hyundai
'패스트캠퍼스 데이터분석 부트캠프 14기 > 주차별 학습기록' 카테고리의 다른 글
| 패스트캠퍼스 데이터분석 부트캠프 5주차_PYTHON (3) (0) | 2024.05.24 |
|---|---|
| 패스트캠퍼스 데이터분석 부트캠프 4주차_PYTHON (2) (0) | 2024.05.17 |
| 패스트캠퍼스 데이터분석 부트캠프 2주차_EXCEL (2) (0) | 2024.05.03 |
| 패스트캠퍼스 데이터분석 부트캠프 1주차_빅데이터 이해와 데이터 리터러시 함양하기 & EXCEL (1) (1) | 2024.04.25 |
| 패스트캠퍼스 데이터분석 부트캠프 14기 합격 및 OT 후기 (0) | 2024.04.22 |