파이썬 기초

김인섭 강사님의 강의로 파이썬 기초에 대해서 정리

파이썬 자료형 (Data Type)

  1. 숫자형 (Number)
	x = 3.14e3 # 3.14 * 10^(+3)
	y = 3.14e-3 # 3.14 * 10^(-3)

	print(x ** y) # 3^5 -> x를 y번 곱한 값
	print(x // y) # x를 y로 나눈 몫
	print(x % y) # x를 y로 나눈 나머지
  1. 문자형 (Str)
	a = "Hello python!"

	a[4]

	a[0:4] # 0<= a < 4
	a[0:5]
    
    a = 'TitanicJames'

	title = a[:7]
	director = a[7:]
    
   	#formatting
    
    print("Name : " + name +", Age: " + str(age))
	print("Name : {}, Age: {}".format(name, age)) # format
	print(f"Name : {name}, Age: {age}")
    
    # - strip(), join(), split()

  1. 리스트형 (List)
	x = ['a', 'b', 'c', ['d', 'e']]
	type(x)

	x[0:3]
    
    append(), pop(), sort()
  1. 튜플형(Tuple), 딕셔너리형(Dict), 집합형(Set)
	# 튜플형 (Tuple)
	# - ( ) 소괄호로 감싸져있다.
	# 특징: (1) 한번 생성되면 값 변경이 불가능합니다. => 요소를 더하거나, 제거하거나, 수정하거나 X

	a = (1,2,3,4,5)
    
    # 딕셔너리 (Dict)
	# { } 안에 key:value => {key:value, key2:value2 .. } => json
	# API 라고 불리는 형태와 동일 => FastAPI

	x = {"name":"inseop", "age":[30, 32], "city":"seoul"}
	type(x)

	x['city']
    
    # 집합형 (Set)
	# 특징 (1) 순서가 없다. (2) 중복을 허용하지 않는다.

	x = set([1,2,3,5,7,5,3,1,3,4,6,3])
    
  1. 불형(Boolean)
    # 불형 (Boolean)
	# - True or False

	x = True

	type(x) # bool

제어문

  1. if (조건문)
	if 조건문:
		실행할 코드 ( if 조건문이 참일 때)
	elif 조건문:
		실행할 코드 ( elif 조건문이 참일 때)
	else:
		실행할 코드 (모든 if, elif 조건문이 거짓일 때)
  1. for (반복문)

    for 루프는 Python에서 반복 작업을 수행할 때 사용하는 가장 기본적인 도구 중 하나입니다. 특히, enumerate() 함수와 함께 사용될 때, 그리고 range() 함수와 함께 사용될 때 각각 다른 유용성을 갖습니다.

    - for in range()

    range() 함수는 지정된 범위의 숫자를 생성합니다. for 루프와 함께 사용될 때, 주로 지정된 횟수만큼 반복하거나, 인덱스를 통해 반복 가능한 객체의 요소에 접근할 때 유용합니다.

	# range(10) => 0~9까지의 숫자 => 2,4,6,8,10
	for i in range(2, 11, 2):
   		print(i)
    
    for i in range(1, 4):  # 1부터 3까지
    	print(i)
    
    fruits = ['apple', 'banana', 'cherry']
	for i in range(len(fruits)):
    	print(f"{i+1}: {fruits[i]}")

- for in enumerate()

enumerate() 함수는 반복 가능한(iterable) 객체를 입력으로 받아, 각 요소를 순회하면서 요소의 인덱스와 값을 튜플 형태로 반환합니다. 이를 for 루프와 함께 사용하면, 반복하는 동안 요소의 값과 함께 인덱스(또는 위치)에 쉽게 접근할 수 있습니다.

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits, start=1):
    print(f"{index}: {fruit}")
  1. while (반복문)
	sum = 0
	i = 0
	while i < 5:
   		i = i + 1
   		sum = sum + i
	print(sum)
  1. try except (예외처리)

함수/클래스/내장,외장함수

# 함수 def -> define, definition

	def my_name(name, age): # input
    	print(f"제 이름은 {name}, 나이는 {age} 입니다.") # output: X
    	return name, age코드를 입력하세요
        
# 파이썬 내장함수/외장함수
# - 내장함수 (Built-in functions)
# - 외장함수 (External functions) => import를 통해 모듈을 불러와서 사용.

a = 'python'
b = a.upper() # 대문자
b.lower() # 소문자

import sys
if sys.version < 3.12:
    print('파이썬을 업데이트 하시오.')
    
import os
os.getcwd() # current working directory
os.mkdir('test_folder')

import time

time.time() # UTC 기준 현재 시각을 초 단위로 반환
time.localtime(time.time()) # 서버시간

# 글로벌 서비스 준비시..


# 클래스 (Class)

	class FishBread: # Camel Case
    # 초기화 => 생성자 => 클래스가 호출됐을 때 가장 먼저 실행되는 함수(메소드)
    	def __init__(self, name, ingredient):
        	self.name = name
        	self.ingredient = ingredient

    	def bread(self):
       		print(f"붕어빵의 이름은 {self.name}, 재료는 {self.ingredient}")

	redbean_bread = FishBread('팥붕어빵', '팥')

	redbean_bread.name
	redbean_bread.ingredient
	redbean_bread.bread()


크롤링 세팅

이 부문에서 여러가지 문제가 생겨서 해결함. 해결 과정을 상세하게 적어 본다.

작업환경 : Mac M1 notebook
설치 : anaconda, visual studio code(VSC)

문제점

  1. VSC 컴파일 커널 선택 문제
    VSC의 상단 오른쪽에 "커널선택" 이라는 메뉴에서 Python환경=>anaconda3 로 설정해야 문제없이 실행이 된다. 선택이 잘못되면 처음 import selenium 에서부터 문제가 발생.
	from selenium import webdriver
    # 여기서 부터 문제가 발생하면 커널 선택 문제
  1. webdriver.Chrome() PATH 문제
	ChromeDriverManager().install()
	# 아래의 webdriver.Chrome() 실행시 문제가 되는 경우
	# executable_path = '' 로 위의 install된 chromedriver의 디렉토리를 수동으로 설정
	browser = webdriver.Chrome(executable_path='/Users/작업아이디/.wdm/drivers/chromedriver/mac64/123.0.6312.86/chromedriver-mac-arm64/chromedriver')
	path를 등록하는 것은 mac 의 경우
	open -e ~/.zshrc
	export PATH="$PATH:/Users/작업아이디/.wdm/drivers/chromedriver/mac64/123.0.6312.86/chromedriver-mac-arm64"
	source ~/.zshrc
  1. selenium 버전에 의한 Timeout 문제 해결
    이 부분이 조금 시간이 걸렸다. m1 노트북에서 chromedriver 와 selenium 버전 문제가 발생하여, Timeout 문제가 발생하는 경우 기존 selenium 의 다운그레이드를 통해서 해결해야 한다.
	pip install selenium==4.9.0
	위이 방법으로 모든 문제를 해결함..
    
    
    
profile
인공지능관련 작업중

0개의 댓글