본문 바로가기
활동/서울시뉴딜일자리 IT인턴

[뉴딜IT인턴] 10일차 - 데이터 분석을 위한 파이썬 1

by gardenii 2024. 5. 22.

파이썬 기초

서비스

인프라 ⇒ 서버,네트워크,데이터베이스

어플리케이션 ⇒ 3tier(쓰리티어)-Architecture

  1. 프론트 : html, css, react, vue …
  2. 백엔드 : java, python, spring, django, flask
  3. 데이터베이스 : RDB(정형화된 데이터), NoSQL(정형화 X)

파이썬 기본 기능

  • package : 미리 만들어놓은 코드모음 (numpy, pandas …)

# 변수 (Variable)

  • 소문자, 단어 연결은 _ ex) today_lunch
  • 숫자로 시작하면 안 됨
  • 예약어(id, range, str, sum, type) 사용 X

실습 1

# 제곱근 구하기
# 방식 1. n**(1/2)
# 방식 2. matH 라이브러리의 matH.sqrt() 사용

import math

C = 50
H = 30
D = input().strip().split(',')

print(D)
# 출력 ['100', ' 150', ' 180'] -> 공백이 포함됨

for n in D:
    print(math.trunc(math.sqrt((2*C*int(n.strip()))/H)), end=" ")

# Q1 = ((2*C*D)/H)**(1/2)
# Q2 = matH((2*C*D)/H)
# 제곱근 구하기
# 방식 1. n**(1/2)
# 방식 2. matH 라이브러리의 matH.sqrt() 사용

import math

C = 50
H = 30
D = input().strip().split(',')

print(D)

Q1 = ''
Q2 = ''

for n in D:
    value = (2*C*int(n.strip()))/H
    Q1 += str(math.trunc(value**(1/2)))+' '
    Q2 += str(math.trunc(math.sqrt(value)))+' '

print('Q1 :', Q1, 'Q2 :', Q2)

# Q1 = ((2*C*D)/H)**(1/2)
# Q2 = math.sqrt((2*C*D)/H)

# print(Q1, Q2)

💡 문자열 리스트 일 경우 공백 제거 확실히 하기! ⇒ strip() 은 양 끝 공백만 제거됨

# 문자열 (String)

💡 문자열 사이 \\ \\ 는 ‘’ 과 같음

문자열 연결

srt(), repr() 함수

⇒ 객체를 문자열로 반환하는 함수

>>> a = "Life is too short"
>>> str(a)
'Life is too short'
>>> repr(a)
"'Life is too short'"

srt()

문자열 그대로 반환

repr()

작은따옴표로 감싼 형태의 문자열 반환

Raw Strings

\ 뒤에 오는 문자열은 \를 포함해 있는 그대로 문자열에 표현하는 것

% method

C 언어의 printf 함수 - %s(변환 지정자)가 값을 삽입할 위치를 표시합니다.

Template string method

문자열템플릿은 문자열생성을 목적으로 한다.

기존의 문자열을 템플릿으로 하여, 특정문자열을 변수로서 인식하여 지정한 문자열로 치환하여 출력한다.

format string method - 문자열 포매팅

'{인덱스0}, {인덱스1}'.format(값0, 값1)

Replacement Field Names - 필드 네임 변경

⇒ mod 변수에 math(파이썬 모듈)를 대입

객체지향과 관련됨 이후에 또 학습

Center 가운데 정렬

Fine - 문자열에서 특정 문자열 인덱스 위치 찾기

fine() 시 결과가 -1 이면 없다는 뜻

join()

sep 으로 리스트 → 문자열로 합치기

replace 대체

split() - 문자열 자르기

실습 2

s = "HELLO"
print(s.isupper())  # 이 코드는 True를 출력합니다.

s = "Hello"
print(s.isupper())  # 이 코드는 False를 출력합니다.

파이썬에서 isupper() 함수는 문자열이 대문자로만 구성되어 있는지 확인하는데 사용됩니다. 모든 문자가 대문자인 경우에는 True를, 그렇지 않은 경우에는 False를 반환합니다. 예를 들면 다음과 같습니다.

위의 예에서, 첫 번째 문자열 "HELLO"는 모두 대문자로 이루어져 있으므로 isupper() 함수는 True를 반환합니다. 두 번째 문자열 "Hello"에서는 대문자와 소문자가 섞여 있으므로 isupper() 함수는 False를 반환합니다.

  • isupper(): 문자열이 모두 대문자인 경우 True를 반환합니다.
  • islower(): 문자열이 모두 소문자인 경우 True를 반환합니다.

' 와 , 그리고 공백을 제거하는 정규식은 다음과 같습니다.위 코드는 ', ,, . 그리고 공백( ``)을 제거합니다.

  • import re text = "'Hello, World '" clean_text = re.sub("[',. ]", "", text) print(clean_text)
  • 네, 파이썬에서는 문자열이 대문자인지 소문자인지 판별하는 함수가 있습니다.
  • 파이썬에서 isupper() 함수는 문자열이 대문자로만 구성되어 있는지 확인하는데 사용됩니다. 모든 문자가 대문자인 경우에는 True를, 그렇지 않은 경우에는 False를 반환합니다. 예를 들면 다음과 같습니다.
# import re

sentence = "It's not a futuristic technology anymore. Machine learning approaches are coming to mainstream data analytics and management. The changes will come about as machine learning and related advanced analytics techniques surpass familiar BI approaches, and data professionals should prepare, according to noted database technologist Michael Stonebraker."
# test = "I Love You."

# clean_sentence = re.sub("[',. ]", "", test)

# print(clean_sentence)

upperCase = 0
lowerCase = 0

for s in sentence:
    if(s.isupper()): 
        upperCase += 1 
    elif(s.islower()):
        lowerCase += 1
    else:
        pass

print('UPPER CASE', upperCase)
print('LOWER CASE', lowerCase)

객체지향 프로그래밍

객체 (Object)

  • 객체(Object)
  • 클래스(Class)
    • 객체의 집합에 대한 사용자 정의 프로토타입으로, 일련의 속성을 정의합니다.
    • 두 가지 구성 요소:
      • 상태(또는 데이터): 객체가 가지고 있는 값들입니다.
      • 메서드(또는 동작): 클래스 정의 내에서 정의된 특별한 유형의 함수입니다.
  • 인스턴스(Instance)
    • 특정 클래스의 개별 객체입니다.
  • 클래스 변수(Class variable)와 인스턴스 변수(Instance variable)
    • 클래스 변수: 클래스의 모든 인스턴스가 공유하는 변수입니다.
    • 인스턴스 변수: 메서드 내에서 정의되며 현재 클래스의 현재 인스턴스에만 속합니다.
  • 객체 지향 프로그래밍(OOP)의 특징
    • 캡슐화(Encapsulation)
    • 상속(Inheritance)
    • 다형성(Polymorphism)
class Vehicle:
		pass

car = Vehicle()
print(car)

class Vehicle:
    def __init__(self, no_of_wheels, type_of_tank, seat_capacity, max_velocity):
        self.number_of_wheels = no_of_wheels
        self.type_of_tank = type_of_tank
        self.seating_capacity = seat_capacity
        self.maximum_valocity = max_velocity

tesla_model_s = Vehicle(4, 'electric', 5, 250)

클래스 정의

class CustomClass:
def __init__(self, param):
		...........
# 심플 클래스 예제 
class Flight:
		pass
		
from airtravel import Flight
<class 'airtravel.Flight'>