개발 블로그

[CODELION 강의] 일단 만드는 PYTHON 본문

Programming Language/Python

[CODELION 강의] 일단 만드는 PYTHON

draidev 2022. 3. 15. 21:17

Pixabay 로부터 입수된 Mint_Foto 님의 이미지 입니다.

이두희님이 직접 강의하신 일단 만드는 PYTHON강의에 대해 정리하겠습니다:)
대체로 기초 파이썬 강의와 비슷한 난이도이며 겹치는 부분이 꽤 많았습니다.
하지만 내용이 좀 더 깊은 느낌이었습니다.
일단 겹치는 부분은 제외하면서 궁금한 점이나 추가적으로 필요하다고 느껴지는 부분을 붙여서 글을 써보려고 합니다.

목차>

더보기

 

목차

    01_01 집합 자료형 set

    집합 자료형은 set()함수를 통해서 만듭니다.

    • 집합은 순서가 없습니다.
    • 겹치는 요소가 없습니다.
    • 원소의 순서를 보장하지 않습니다.

    집합 자료형 연산

    • 합집합 : 두집합을 합치며, 겹치는 원소를 알아서 합쳐줍니다. 합집합 연산자 : |
    • 교집합 : 겹치는 원소만 뽑아냅니다. 교집합 연산자 : &
    • 차집합 : 겹치는 원소를 빼줍니다. 차집합 연산자 : -

    set()함수를 사용하여 문자열이 저장된 리스트를 집합 자료형으로 만들고 문자열이 저장된 item변수와 차집합
    연산을 해봅시다!

    set_dinner = set(["된장찌개","피자","제육볶음","짜장면"])
    item = "짜장면"
    set_dinner = set_dinner - set([item])
    print(set_dinner)

    집합 자료형 출력

    이를 통해 집합자료형은 {}중괄호로 묶인형태로 출력되는 것을 알 수 있습니다.

    이때 문자열이 저장된 변수 itemset([item])을 통해서 리스트로 만들고 난 후 집합 자료형으로 변환 해줘야 하는데,
    set(item)이나 set(list(item))의 경우 문자열이 한글자씩 나뉘어져서 집합의 요소로 저장됩니다.

    item = "짜장면"
    print("set(item)       출력 : ", set(item))
    print("set(list(item)) 출력 : ", set(list(item)))
    print("set([item])     출력 : ", set([item]))

    set() 출력

    이는 문자열(str)도 리스트와 같이 한글자마다 인덱스 값을 가지는 iterable객체이기 때문입니다.
    ( iterable의 의미는 member를 하나씩 차례로 반환 가능한 객체를 말합니다.
    예시로는 Sequence type인 list, str, tuple 등이 있습니다. )

    추가적으로 빈 리스트 자료형을 선언할 때는
    a = list()
    a = []
    두 가지 방법이 같은 역할이지만, 위에서와 같이 다른 자료형을 리스트로 변환하기 위해 사용할 때는
    다른 결과값을 반환할 수 있으므로 주의해야합니다.

    01_02 점실 뭐드실?

    리스트, 집합 자료형을 활용하여 점심 메뉴를 정하는 프로그램입니다.
    기본 메뉴에 추가할 음식을 입력한 후에 메뉴에서 뺄 음식을 입력하고 남은 메뉴 중에서 랜덤으로 1개를 추천합니다.

    import random
    import time
    
    lunch = ["된장찌개","피자","제육볶음","짜장면"]
    
    while True:
        print(lunch)
        item = input("음식을 추가 해주세요 : ")
        if item == 'q':
            break
        else:
            lunch.append(item)
    print(lunch)
    
    set_lunch = set(lunch)
    while True: 
        item = input("음식을 삭제 해주세요 : ")
        if item == 'q':
            break
        else:
            set_lunch = set_lunch - set([item])
    print(set_lunch,"중에서 선택합니다.")
    
    """ 5부터 1까지 1초씩 센다 """
    for i in range(5,0,-1):
        print(i)
        time.sleep(1)
    
    """ random.choice는 리스트 자료형에 대해서만 작동한다 """
    print(random.choice(list(set_lunch)))

    "점심 뭐드실?" 출력

    02_01 함수

    Python에서 사용자 함수를 정의 할때는 def를 통해 만듭니다.

    def 함수명(매개변수):
    <수행할 문장1>
    <수행할 문장2>
    ...

    def add(a, b): 
        return a + b
    
    print(add(1, 2))  # 출력 : 3

    함수를 정의하고 난 뒤, 함수명(매개변수)를 통해 함수를 호출함으로써 함수가 동작합니다.

    03_01 [질문게시판] 딕셔너리 for문

    for문의 형태 : for 변수 in 시퀀스:
    딕셔너리 자료형을 for문의 시퀀스로 사용하면 for문의 변수는 딕셔너리의 key값을 가져옵니다.
    따라서 for문의 변수로 딕셔너리의 key값에 대응하는 value를 수정할 수 있습니다!

    total_dictionary = {}
    
    while True:
        question = input("질문을 입력해주세요 : ")
        if question == 'q':
            break
        else:
            total_dictionary[question] = ""  # key가 question이고 value가 공백값인 딕셔너리 생성
    
    for i in total_dictionary:  # i는 딕셔너리의 키값을 받는다.
        print(i)
        answer = input("답변을 입력해주세요 : ")
        total_dictionary[i] = answer  # for문의 변수i를 key값으로 하여 딕셔너리 value를 대입한다.
    print(total_dictionary)

    딕셔너리 for문 출력

    03_02 [질문게시판] 리스트안에 딕셔너리 사용

    이번에는 리스트안에 "질문","답변"을 key값으로 가지는 여러 개의 딕셔너리를 만들어서, 각각의 key에 대응하는 value를 입력하도록 프로그램을 만들었습니다.

    total_list = []
    
    while True:
        question = input("질문을 입력해주세요 : ")
        if question == 'q':
            break
        else:
            total_list.append({"질문" : question, "답변" : ""})  #리스트에 딕셔너리를 삽입한다.
    
    for i in total_list:
        print(i["질문"])  # i는 리스트안의 딕셔너리 자체인 변수이다. 딕셔너리[key]를 통해 value를 출력한다.
        answer = input("답변을 입력해주세요 : ")
        i["답변"] = answer  #리스트의 i번째 딕셔너리의 "답변"key에 해당하는 부분에 value를 대입한다.
    
    print(total_list)

    리스트안에 딕셔너리 출력

    Comments