본문 바로가기

세상 바라보는 시선 👁/Growth Hacking

[Python] cheating sheet - 노마드코더


참 잘 만들어진 교육 사이트들이 많다. 코딩은 배울수록 재밌다.

# https://docs.python.org/3.7/library/index.html
# repl.it 

a_string = "like this"
a_number = 3
a_float = 3.12
a_boolean = False
a_none = None

# 1.1 Lists in Python

# List 는 [] 로 감싸며 ','로 분리한다.
days = ["Mon", "Tue", "Wed", "Thur", "Fri"]
print(days[3],',' , type(days))
#List 안에 내용이 있는지 확인
print("Mon" in days) # "Mon" 이 포함되어있으면 true, 그렇지 않으면 false

# list count 하기 len
print(len(days))

# Mutable, sequence 바꿀 수 있다.
# s.append() -  List 에 추가하기
# s.reverse() : 순서 바꾸기

# 1.2 Tuples and Dicts : ()로 감싸면 된다.
days_tuple = ("Mon", "Tue", "Wed", "Thur", "Fri","Sat","Sun")
print(type(days_tuple))

# Dictionary 는 {} 를 이용한다.
nico = {
    "name" : "Nico",
    "age" : 29,
    "korean": True,
    "fav_food":["Kimchi","Bulgogi"]
}
print(nico["name"])

#1.3 Built in Functions

#1.4,1.5 Creating a your first python Function, Function Argument
def say_hello():
  print("hello") #function 을 {} 을 필요로 하지 않다. 
print("bye")

def say_bye(who="gildong"): #Argument를 하나 넣어줌, 인자 개수가 맞지 않으면 에러가 나옴
  print("bye",who)
say_bye("nicolas")
say_bye() #default값으로 넣으려면 def에서 default값을 입력해준다.

# return
def r_plus(a,b):
  return a + b #함수를 돌렸을때 발생하게 되는 값은 return이다. 그리고 function을 종료하게 된다.
               # print 밑에 있는 내용은 시행되지 않는다., 하넌에 1개 return 가능
r_result = r_plus(2,3)
print(r_result)

#Keyworded argument - 순서를 기억할 필요 없다.
def my_function_1(name,food) : 
  return f"{name} loves {food} so much!!"

result_1 = my_function_1(food="meat",name= "Sungil") #이렇게 keyword로 지정할 수 있다.
print(result_1)

#1.10 If 문 #콜론을 잘 찍어야 한다.
# x or y 
# x and y 
# not x 
# if & elif & else 모두 ":" 을 필요로 한다.eval

def plus (age="0",name="friend"):
  if type(name) is int or type(name) is float :
    return "error"
  elif int(age) >= 18 :
    return "adult"
  else :
    return "child"

result = plus (age= 18, name="Sungil")
print(result)

#1.12 for in
days = ("월요일","화요일","수요일","목요일","금요일","토요일")
#loop 를 멈추고 싶으면 'break' 를 넣을 수 있다.
for day in days :  # day라는 변수는 for문이 가동될 때 만들어진다.
  if day == "금요일" or day == "토요일" or day == "일요일":
    print(f"today is {day}! Happy holiday!!")
  else :
    print(f"today is {day}! Work hard!!")

print(result)

#1.13 module을 가져오는 것이 import 이다. math.ceil  <- 
from math import ceil,fsum 
import math as ma

#같은 폴더내에 있는 .py 파일의 이름을 from 으로 해서 가져올 수 있다

Positional argument(*args와 **kwargs)

# positional argument를 통해서 무한대로 입력할 수 있게 함
# 아래는 plus 계산식에 들어있는 숫자를 모두 더하게 하는 코딩
# keyword argument를 다루고 싶다면 **kwargs  <- 별표 두개

def plus(*args) :  #변수는 *args 처럼 앞에 *을 사용함, plus(**kwargs)처럼 작성
  result = 0 
  for number in args:  
    result += number
  print(result)

plus(1,2,3,4,5,6,7,8,9)

Class와 Method 그리고 그 확장에 대해서

# build_class - blue print 이다.
class Car():
  wheels = 4 #각각은 property라 한다.
  doors = 4
  windows = 4
  seats = 4

porche = Car()
porche.color =  "red"

# method : class 안에 있는 function
# Python은 모든 method의 첫번째 instance를 첫번째 argumnet로 사용한다.

class Car():
  wheels = 4 #각각은 property라 한다.
  doors = 4
  windows = 4
  seats = 4
  
  def descript (tomato): #보통은 self라고 써놓으면 된다.
    print("Car Color:", tomato.color)
    print("door Count:", tomato.doors)
    print("Ok. I checked")

porche = Car()
porche.color = "Red"
porche.doors = 2

porche.descript() #argument를 porche로 가져온다. 그래서 method에는 self라고 기록해둔다.

# Method 다루기 2편
# class 는 기본적으로 함수를 가지고 있는 것이 있다.
class Car():
  def __init__(self,**kwargs):  #override 하는 것, 기본적으로 정의된 함수되 추가로 변경
    #1 **는 꼭 2개!!, *args :는 tuple을 가져오고, **kwargs 는 dictionary 를 가져온다.
    self.wheels = 4 #각각은 property라 한다.
    self.doors = 4
    self.windows = 4
    self.seats = 4
    self.color = kwargs.get("color","black") 
      #1 keyword argument에서, color에 해당하는 값을 가져온다. default값은 black이다.
    self.price = kwargs.get("price","$20")
  
  def __str__(self): #보통은 self라고 써놓으면 된다.
    return f"{self.color} car with {self.wheels} wheels, {self.doors} doors and Price is {self.price}"

porche = Car(color ="Red", price ="$40")
porche.doors = 4

print("porche: ",porche)


# Class의 extend ====================
#: 복사할 필요없이 inherit을 가져오는 방법 

class Convertible(Car): #convertible 클래스는 Car를 상속한다.
  def take_off(self): #new function, 일반 Car에는 없다. 
    return "taking off..."

new_porche = Convertible(color ="blue", price ="$60")
new_porche.doors = 2
print("New_porche:", new_porche)

# method를 확장 시키는 방법 ====================
# : super() 를 이용하면 parent class를 가져올 수 있다.

class New_Convertible(Convertible): #convertible 클래스는 Car를 상속한다.
  
  def __init__(self,**kwargs):
    super().__init__(**kwargs)
    self.open_time = kwargs.get("open_time",60)

  def __str__(self):
   
    return f"door open time is {self.open_time}"    

  def take_off(self): #new function, 일반 Car에는 없다. 
    return "taking off..."

maserati = New_Convertible(color ="green", price ="$80", open_time = 80)
maserati.doors = 2

print("Maserati :", maserati)

날짜, 시간 등 에 "0" 나오게 표시하기

#출력 찍는 시간이 나오게...
from datetime import datetime
now = datetime.now().strftime("%Y%m%d-%H%m")        # '년도/월/일' 포맷으로 날짜를 문자열로 리턴, 대소문자 주의

data = data[index_order]
data.to_csv(f"./result/{now}_count_result.csv",index=False)

strftime 의 format 표현

입력 의미 예시
%a Weekday as locale’s abbreviated name.

Sun, Mon, …, Sat (en_US);

So, Mo, …, Sa (de_DE)

%A Weekday as locale’s full name.

Sunday, Monday, …, Saturday (en_US);

Sonntag, Montag, …, Samstag (de_DE)

%w Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. 0, 1, …, 6
%d Day of the month as a zero-padded decimal number. 01, 02, …, 31
%b Month as locale’s abbreviated name.

Jan, Feb, …, Dec (en_US);

Jan, Feb, …, Dez (de_DE)

%B Month as locale’s full name.

January, February, …, December (en_US);

Januar, Februar, …, Dezember (de_DE)

%m Month as a zero-padded decimal number. 01, 02, …, 12
%y Year without century as a zero-padded decimal number. 00, 01, …, 99
%Y Year with century as a decimal number. 0001, 0002, …, 2013, 2014, …, 9998, 9999
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01, …, 23
%I Hour (12-hour clock) as a zero-padded decimal number. 01, 02, …, 12
%p Locale’s equivalent of either AM or PM.

AM, PM (en_US);

am, pm (de_DE)

%M Minute as a zero-padded decimal number. 00, 01, …, 59
%S Second as a zero-padded decimal number. 00, 01, …, 59
%f Microsecond as a decimal number, zero-padded on the left. 000000, 000001, …, 999999
%z UTC offset in the form +HHMM or -HHMM (empty string if the object is naive). (empty), +0000, -0400, +1030
%Z Time zone name (empty string if the object is naive). (empty), UTC, EST, CST
%j Day of the year as a zero-padded decimal number. 001, 002, …, 366
%U Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. 00, 01, …, 53
%W Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. 00, 01, …, 53
%c Locale’s appropriate date and time representation.

Tue Aug 16 21:30:00 1988 (en_US);

Di 16 Aug 21:30:00 1988 (de_DE)

%x Locale’s appropriate date representation.

08/16/88 (None);

08/16/1988 (en_US);

16.08.1988 (de_DE)

%X Locale’s appropriate time representation.

21:30:00 (en_US);

21:30:00 (de_DE)

%% A literal '%' character. %

numpy random seed 정하기 & deep learning 기초

numpy로 숫자를 임의로 만들때 

# 코드를 실행할 때마다 결과가 달라지지 않게 하기위하여 seed를 고정합니다.
# seed는 임의로 37로 고정하겠습니다.
np.random.seed(37)

# h만큼 이동하는 횟수인 epoch을 10000으로 지정합니다.
num_epoch = 10000

# learning_rate를 1.1로 지정합니다. 가중치 이동폭을 조금 늘린 것입니다.
learning_rate = 1.1

# -1 ~ +1 사이의 값중 랜덤으로 w1을 지정(초기화)합니다.
w1 = np.random.uniform(low=-1.0, high=1.0)
# -1 ~ +1 사이의 값중 랜덤으로 w2을 지정(초기화)합니다.
w2 = np.random.uniform(low=-1.0, high=1.0)
# -1 ~ +1 사이의 값중 랜덤으로 b을 지정(초기화)합니다.
b = np.random.uniform(low=-1.0, high=1.0)
♡를 눌러주시면 블로그를 작성하는데 큰 힘이 됩니다♪
로그인이 필요없어요.

이 블로그 인기글