파이썬 배운지 한달차

여러가지 도전적인 상황이 많이 발생했었습니다.

한달밖에 파이썬을 안 배웟는데 벌써부터 이런걸 한다구요?

 

한달밖에 안되서 이거 밖에 못하는거라고 말해주지 않겟어요... ㅠ


class Customer:
    def __init__(self, account_name, account_number, opening_balance):
        self.account_number = account_number
        self.account_name = account_name
        self.balance = opening_balance
            #내가 사용할 친구들을 만들어주고
           
    def deposit(self,amount):
        self.balance = self.balance+amount
        print(
            f"Balance after deposit ${amount} to {self.account_name} is {self.balance}"
        )
            #내가 사용할 도구(함수)를 만들어주고/그 도구 안에서 작용하는
    def withdraw(self,amount):
        if amount <= self.balance:
            self.balance + self.balance - amount
            print(
                f" balance after withdrawl ${amount} from {self.account_name} is ${self.balance}"
            )
        else:
            print(f"Insufficient funds for withdrawl amount {amount}")
            return self.balance
       
    def __str__(self) :
        return f'Account name {self.account_name}, Account #:{self.account_number}, Opening Balance {self.balance} Closing balance : ${self.balance}'

#TEST
customer1 = Customer("Sally", "12345", 500.0)
customer1.deposit(75.0)
customer1.withdraw(100)
customer1.__str__()
#Customer.deposit(customer1)


class Bank:
    def __init__(self):
        self.accounts = []
        self.next_account_number = 100

    def create_account(self, account_name, opening_balance):
        new_account = Customer(
        account_name, self.next_account_number, opening_balance
        )
        self.next_account_number = self.next_account_number + 1 #새로운 계좌를 하나 만들어 줍시다
        self.accounts.append(new_account) #새로운 계좌를 계좌리스트에 붙여줍니다
        return self.next_account_number - 1 #본래 계좌를 만들었으면 원래대로 제다리에 돌려둡시다
       
    def get_account(self, account_number):
        for account in self.accounts:
            if account.account_number == account_number :
                return account
                print("Account not found."
                        )
            return None
    def deposit_into(self, account_number, deposit_amount):
        found = False
        for account in self.accounts:
            if account_number == account.account_number:
                new_balance = account.deposit(deposit_amount)
                found = True
                print(
                    f'Deposit ${deposit_amount} to account #{account_number}, new balance is {new_balance}'
                )
        if not found:
             print(f"Account {account_number} not found")

    def calculate_deposit_base(self):
        deposit_base = 0
        for account in self.accounts:
            if account.balance >0:
                deposit_base = deposit_base + account.balance
        print(f"the total funds after all transaction ${deposit_base}")
        return deposit_base
   
bank = Bank()
John_acount = bank.create_account("John Doe", 900.00)
James_acount = bank.create_account("James Scott", 1200.00)

John_customer = bank.get_account(John_acount)
James_customer = bank.get_account(James_acount)
print(John_customer)

요즘애들은 고등학교에서도 파이썬을 배우고 심하면 C언어도 배운다고 하던데

내가 고등학교때에는 그런거 없었거든요? 

그러면 좀 상대적 박탈감이 들기도 하구 뭐 별 수 있나

시대가 빠르게 변화하고있는데 그 시대에 걸맞게 어린아이들을 올바르게 교육시켜서 사회로 내보내는게 학교의 역할인데

 

내가 학교다니던 2012~2015년의 시기에는 코딩 배우는게 올바르지는 않았나? 봐요 

무튼 사담은 뒤로 하고 오늘 하루종일 학교에서 배운거(연습) 공유함

작은 성취감이 느껴지는 것을 뒤로 하고 

파이썬입니다! 

현직자 친구들이 보면

"이 새끼 존나 기본적인거 하면서 블로그에 글 쓰네 ㅉㅉ" 이렇게 말 하지 않을까요?

잘은 몰루?

 

Visual Studio에서 복사 붙여넣기한 것입니다. 나만 보고싶은데

개발자는 세상 심라 만상 모든것이

나의 것이 아님임을 깨닫고 자기가 만든 코드를 남들한테

공유하는 마음 가짐이 젤 중요하데요.

 


#Scenario - Library requires a new system
#First step : identifying the classes

class Library: #큰 개념 - 전체적인 큰 블럭을 말합니다
    def __init__(self):
        self.books=[] #Attributes
        self.patrons=[]
    def add_book(self, book):
        self.book.append(book)

        #self는 자기자신을 부르는애에요, 자기 자신을 말하는 딕셔너리 라고도 생각하면 됩니다
 
#작은개념(Constructor:생성자) // 아니 번역 개떡같이 해놨는데 뭐 생선자라니까 생선자라구 할게요
class Patron:          #Patron 은 후원자를 말하기도 하지만, 주요 상점/식당의 고객들을 지칭하는 "공식어휘"
    def __init__(self): #내부 애들을 지어볼까요
        self.borrowed_books = [] #List to storae borrowed books
        self.idname = []
        self.name =[]
        self.book=[]

        #얘내들은 아직까지 할 줄 아는게 없습니다. 비유를 하자면 내 손에 "핸드폰"이 들려있다고 해서
        #그 핸드폰이 스스로 무언가를 하는것은 아닙니다, 그러니 유저들이 "상호작용"을 해줘야하잖아요?
        #그러니 함수를 설정해 어떻게 사용할지 넣어줍시다, 함수는 가능한 시나리오중 하나를 묘사하는 거라구 생각하면 편합니다
        #그러니까, 앞서 비유한 핸드폰을 갖고 "친구한테 전화하기" 라는 함수를 만드는거에요.
        #핸드폰 번호도 넣어주고 해야겠죠? 친구한테 전화할려면 친구 전화번호를 넣어야지 아무 번호만 넣으면 안되잖아요
   
    def __str__(self):  
        return(f"{self.borrowed_books}, Your ID Num {self.idname} and {self.name}")
    #__str__ 함수는 신기한 녀석입니다, 이 함수로 오브젝트를 String 으로 표현할수이써요, 생각해보니까 이놈 이름도 String 이라는걸 함수로 표현한 친구네요. 참 착한 친구에요
    #객체 내부에서 넘어오는 값을 String으로 출력할때 이 착한 친구는 필수적이에요
     # 만약에, 이 녀석이 없이 함수를 출력한다면, 해당 객체의 "메모리 주소"를 출력합니다
     # 그러니까 메모리를 집이라고 생각한다면, 그 집의 주소를 말하는거에요
     # 친구의 이름을 불러야하는데, 친구집 주소만 알고있다면 "00시 00구 00로 00아파트 00호수 사는 놈" 이라고 부르는 거잖아요? 그럼 좀 이상하잖아요?
     # 그럴때 __Str__ 친구를 불러서 이름을 알려주는 겁니다, 컴퓨터는 똑똑한 친구지만 하나하나 알려줘야하는 귀찮음이 있어요.

    #이제 책을 빌려봅시다
    #책빌리기 함수!
    def borrow_book(self,book):
        if book.is_borrowed:
            print(f"sorry, {book.name} is out on loan")
        else:
            book.is_borrowed = True #책이 빌려진게 맞다면
            self.borrowed_books.append(book) #빌린책들의 리스트에 추가해봅시다

            #참고로 파이썬에서 . 점은 다른 Method 에서 개념을 가져온겁니다
            #헉 이거 모르면 님아 개념 놓친거임 이거 할때가 아님 개념 ㄱㄱ
   
    def return_book(self,book):
        for borrowed_book in self.borrowed_books:
            if borrowed.book.name == book.name: #빌린 책의 이름이
                print.is_borrowed = False
                self.borrowed_books.remove(book)

    def view_borrowed_book(self,book):
        borrowed_books_list = []
        for book in self.borrowed_book: #for 반복 함수로 리스트를 만드는 행위입니다.
            print.borrowed_books_list.append(str{book}) #여기서 str은 오는 값을 string으로 출력하라는 소리입니다
            #예시를 들어볼께요, 친구, 친구의 이름을 기억하기 쉽게 아저씨 같은 이름을 넣어봅시다
            #김덕배(48세, 무직 배수)라는 친구를 뒀다고 생각해요
            #그 친구의 나이는 우리가 48이라는걸 알아요
            #근데 컴퓨터는 어린아이 같아서, 그 숫자가 왜 주어진지 말을 해줘야하거드요.
            #안그러면 잉?? 48??? 뭐지 마법의 숫자인가? 하면서 아무것도 안해요 컴퓨터는 참 인생 편하게 삽니다
            #그때 개발자 친구들이 말해줍니다 "예야, 48이라는 숫자는 스트링이야"
            #그럼 컴퓨터가 그 숫자를 기억하고 48은 스트링이구나! 라고 기억을 할거에요
            #이런 같은 개념으로 int, str, float, chr 같은 것으로 할당이 가능합니다. 콤퓨타는 인생 편하게 살아서 좋겠죠?
    def __str__(self) -> str:
        return(f"{self.name}, is a {self.name}")
   
   
   
       

class Book: #작은 개념 2 (Constructor)
    def __init__(self, name, genre, year, is_borrowed):
        self.name = name
        self.genre = genre
        self.year = year
        self.is_borrowed = False
    def __str__(self):
        return(f"Title:{self.name}, Genre:{self.genre},Publish year{self.year}. is borrowed")

#만들어진 애들을 테스트 해봅시다. 내가 만든 코드니까 내가 좋아하는걸 넣을꺼에요
book1 = Book("Steins;Gate", "Sci-fi","2008", "is borrowed")
print(book1)

view_borrowed_book()
        #항상 콤마가 적절히 사용되었는지 확인해봅시다... 아까도 이거땜에 오류 겁나 났엇음
 
 
#오늘 배운 중요개념 
 클래스가 가진 함수를 method 라고 부른다
 클래스 내부에 함수를 정하고 싶으면, self를 넣어줘야한다. <---- 이건 자바나 C언어는 다른거 넣음. 
 클래스는 하나의 도구를 내 스스로 만드는 과정이고, 그 도구를 만들어 내가 원하는 것을 조각한다
 

 

파이썬 설치 방법

 

아니 근데 설마 파이썬 설치를 못하는 사람이 있겠어? 

그냥 홈페이지 가서 다운받으면 됨 ! 


https://www.python.org/downloads/release/python-3114/

 

Python Release Python 3.11.4

The official home of the Python Programming Language

www.python.org

자 요기

 

1.홈페이지에 들어감 


Download가 보이십니까 휴먼?

2. 다운로드를 찾음

 

 

3. 컴퓨따 버전에 맞게 다운로드

 

32Bit 와 64Bit 가 있는데요, 그럼 내 꼼퓨타에 맞는게 뭔지 모르겠음..? 그럼 확인해 볼 필요가 있겟네요

 

일단 Bit라는 개념 자체가 머에요???

 

Bit 는 컴퓨타 연산자를 뜻하는건데

 

사람으로 치면 동시에 어느정도 일을 할수있느냐를 나타내는거 같음

 

32비트 - 적당히 일 좀 하는놈

 

64비트 - 적당히 일 좀 "더" 하는 놈

 

뭐 그렇다고 해서 64비트가 항상 더 좋느냐?

내 컴퓨터가 32비트가 아니면 어떻게하냐

 

당황하지 말고, 대체로 최신 컴퓨터면 64비트니까. 

뭐 큰 차이는 없....음! 

 

있다면 컴퓨터가 사람이라면 손의 역할을 하는 램 정도?

 

일단 확인방법은 

https://support.microsoft.com/ko-kr/windows/32%EB%B9%84%ED%8A%B8-%EB%B0%8F-64%EB%B9%84%ED%8A%B8-windows-%EC%A7%88%EB%AC%B8%EA%B3%BC-%EB%8C%80%EB%8B%B5-c6ca9541-8dce-4d48-0415-94a3faa2e13d

 

32비트 및 64비트 Windows: 질문과 대답 - Microsoft 지원

32비트 버전에서 64비트 버전으로 Windows를 업그레이드하려면 하드 디스크를 다시 포맷하고, 64비트 버전의 Windows를 설치한 다음, 장치에 가지고 있던 다른 모든 항목을 다시 설치해야 합니다.

support.microsoft.com

공식 홈페이지에서 친절히 알려주고 있음 ( 대다수 64 비트 일거임)

 

 

+ Recent posts