• 2023. 05. 28.

    by. nstrix

     

    [Python] Python tutorial

    Python tutorial 파이썬은 강력하고 유연한 프로그래밍 언어로, 전 세계적으로 많은 개발자와 기업들이 선호하는 언어 중 하나입니다. 파이썬이 널리 사용되는 이유는 읽기 쉽고 이해하기 쉬운 문법

    idocleancode.tistory.com

    변수

    변수는 프로그래밍에서 굉장히 중요하고 기본적인 개념입니다. 변수는 데이터를 저장하고 관리하는 데 사용되며, 여러 곳에서 참조하거나 수정할 수 있습니다. 파이썬은 동적 타이핑을 지원하므로, 변수의 데이터 타입을 자동으로 인식하고 처리할 수 있습니다. 이를 통해 개발 과정이 더욱 간편하고 유연해집니다. 변수를 이해하고 올바르게 활용하는 것은 파이썬 프로그래밍 역량을 향상하는데 도움이 됩니다. 

    변수의 설명
    변수의 설명

    변수의 개념 및 용도

    1. 변수란 무엇인가?

    변수는 프로그래밍 언어에서 값을 저장하고 참조하기 위한 공간입니다. 변수는 메모리에 저장되며, 값이 할당되는 시점부터 사용할 수 있습니다. 변수 이름은 해당 메모리 공간에 부여되는 고유 식별자입니다.

    2. 변수의 용도와 중요성

    변수는 다양한 용도로 사용되며, 변수를 활용하면 프로그램의 로직을 단순화하고 코드의 가독성을 높일 수 있습니다. 변수의 주요 용도와 중요성은 다음과 같습니다.

    • 데이터 저장
      변수를 사용하여 중요한 정보, 결과 값, 계산 중간 값 등을 저장하고 필요한 경우 다시 사용할 수 있습니다.
    • 코드 재사용 및 가독성
      동일한 값이 여러 번 필요할 경우 변수를 사용하여 값을 저장하고 필요한 위치에서 참조할 수 있습니다. 이를 통해 코드의 길이가 줄어들고 가독성이 높아집니다.
    • 변경 용이성
      변수에 저장된 값이 프로그램 곳곳에서 사용되고 있다면, 값을 변경해야 할 때 변수만 수정하면 모든 참조하는 곳에서 새로운 값이 적용됩니다. 이를 통해 코드 유지 보수가 간판해 집니다
    • 데이터 추적
      변수를 사용하면 데이터의 변화와 흐름을 쉽게 확인할 수 있으며. 디버깅을 용이하게 할 수 있습니다.

    이 처럼 변수를 통해 프로그래밍 과정이 단순화되고, 코드의 유지 보수와 가독성이 높아지며, 프로그램의 효율성을 향상할 수 있습니다.

     

    변수의 생성 및 할당

    변수 생성 및 할당은 파이썬에서 데이터를 저장하고 처리하기 위한 핵심 개념입니다. 변수를 생성하고 값을 할당하는 방법을 다음과 같이 설명할 수 있습니다.

    1. 변수명 작성 규칙

    • 변수명은 문자, 숫자, 밑줄(_)로 구성될 수 있습니다.
    • 변수명은 문자로 시작해야 하며, 대소문자를 구분합니다.
    • 예약어는 변수명으로 사용할 수 없습니다.
    • 변수명은 가독성을 위해 의미 있는 이름으로 지정하는 것이 좋습니다.

    올바른 변수명 작성

    name = "Alice"          # 문자로 시작, 의미 있는 이름
    age = 30                # 문자로 시작, 의미 있는 이름
    index_1 = 10            # 밑줄(_)로 구성된 이름
    student_count = 25      # 밑줄(_)어 단어 구분, 의미 있는 이름
    PI = 3.14159265359      # 대문자로 작성된 상수

    잘못된 변수명 및 예약어 작성

    1_name = "Alice"        # 숫자로 시작하는 경우
    my@name = "Tom"         # @와 같은 특수 문자 포함
    return = "value"        # 예약어(파이썬 키워드) 사용
    
    # return은 파이썬의 예약어입니다. 변수명으로 사용하지 말아야 합니다.

    이와 같이 변수명은 문자, 숫자, 밑줄(_)로만 구성되어야 하며, 문자로 시작해야 하고, 예약어는 사용할 수 없습니다. 변수명을 의미 있게 지정하면 코드의 가독성이 높아집니다.

    2. 변수 값 할당 방법

    변수를 생성하고 값을 할당하기 위해서는 등호(=)를 사용합니다. 변수명 = 값 형태로 변수를 생성하고 값을 할당할 수 있습니다. 할당된 값을 변수를 통해 저장되고, 나중에 사용할 수 있습니다.

    # 변수 생성과 할당
    name = "John"  # 문자열 값 할당
    age = 25  # 정수 값 할당
    is_student = True  # 불리언 값 할당
    
    # 변수 값 변경
    age = 26  # 변수 값 변경
    
    # 변수 값 사용
    print("이름:", name)
    print("나이:", age)
    print("학생 여부:", is_student)

    위 예시에서는 name age is_student 세 개의 변수를 생성하고 각각 해당 변수 타입 값으로 초기화합니다. 이후 age 변수 값을 변경하고 print() 함수를 사용하여 변수의 값을 출력합니다.

     

    데이터 타입

    데이터 타입은 파이썬에서 값을 저장하고 조작하는 데 사용되는 특정한 유형의 데이터를 정의하는 방법입니다. 파이썬은 다양한 데이터 타입을 제공하며, 각각의 데이터 타입은 특정한 종류의 값과 그에 대한 연산을 지원합니다.

    1. 데이터 타입 소개

    다음은 데이터 타입중 기본형 타입을 소개합니다.

    1. 숫자(Number) 타입
      정수(Integer) 타입: 소수점 없는 숫자를 나타냅니다
      실수(Floating-point) 타입: 소수점이 있는 숫자를 나타냅니다.
    2. 문자열(String) 타입
      문자들의 시퀀스로 이루어진 타입입니다. 따옴표(` ` or " ")로 감싸진 텍스트를 나타냅니다.
    3. 불리언(Boolean) 타입
      참(Ture) 또는 거짓(False) 값을 나타냅니다.
    4. 리스트(List) 타입
      여러 값을 순서대로 저장하는 타입입니다. 대괄호 "[ ]"로 표현하며, 값들은 쉼표로 구분됩니다.
    5. 튜플(Tuple) 타입
      여러 값을 순서대로 저장하는 타입으로, 리스트와 유사합니다. 괄호 "( )"로 표현하며, 값들은 쉼표로 구분됩니다. 차이점은 데이터가 불변성을 가집니다.
    6.  딕셔너리(Dictionary) 타입
      키 와 값 쌍으로 데이터를 저장하는 타입입니다. 중괄호 { }로 표현하며, 각 키와 값은 클론 ":"으로 구분됩니다.

    다음은 기본 타입 데이터 타입 예제입니다.

    # 숫자 타입 (Number)
    integer = 10        # 정수 (Integer)
    floating_point = 3.14   # 실수 (Floating-point)
    
    # 문자열 타입 (String)
    text = "Hello, World!"
    
    # 불리언 타입 (Boolean)
    is_valid = True     # 참 (True)
    is_connected = False # 거짓 (False)
    
    # 리스트 타입 (List)
    animals = ['cat', 'dog', 'elephant']
    
    # 튜플 타입 (Tuple)
    fruits = ('apple', 'banana', 'cherry')
    
    # 딕셔너리 타입 (Dictionary)
    person = {'name': 'John', 'age': 25}
    
    # 각 타입 출력
    print("Integer:", integer)
    print("Floating-point:", floating_point)
    print("String:", text)
    print("Boolean:", is_valid)
    print("List:", animals)
    print("Tuple:", fruits)
    print("Dictionary:", person)

    2. 데이터 타입 확인하기

    데이터의 타입을 확인하기 위해서는 "type()" 함수를 사용합니다. 이 함수는 인자로 전달된 데이터의 타입을 반환합니다.

     

    다음은 type() 함수를 사용한 예제 코드입니다.

    # 숫자 타입 확인
    num = 10
    print(type(num))  # <class 'int'>
    
    num = 3.14
    print(type(num))  # <class 'float'>
    
    # 문자열 타입 확인
    text = 'Hello'
    print(type(text))  # <class 'str'>
    
    # 불리언 타입 확인
    is_true = True
    print(type(is_true))  # <class 'bool'>
    
    # 리스트 타입 확인
    my_list = [1, 2, 3]
    print(type(my_list))  # <class 'list'>
    
    # 튜플 타입 확인
    my_tuple = (1, 2, 3)
    print(type(my_tuple))  # <class 'tuple'>
    
    # 딕셔너리 타입 확인
    my_dict = {'name': 'John', 'age': 25}
    print(type(my_dict))  # <class 'dict'>

     

    동적 타이핑

    동적 타이핑은 프로그래밍 언어의 한 유형으로, 변수의 데이터 타입을 미리 선언하지 않고, 실행 시점에서 변수의 타입이 결정되는 것을 말합니다. 파이썬은 동적 타이핑을 사용하며 개념과 장단점을 알아보겠습니다.

     

    1. 동적 타이핑의 개념

    동적 타이핑 언어에서는 변수를 선언할 때 타입을 지정하지 않습니다. 대신, 프로그램이 실행될 때 각 변수에 저장된 값에 따라 타입이 자동으로 결정됩니다. 예를 들어, 파이썬에서 변수를 선언하려면 다음과 같이 작성합니다.

    예제

    x = 10
    y = "Hello, World!"

    위 예제에서 변수 x는 정수 값 10을 가지고, 변수 y는 문자열 값을 가집니다. 이처럼 파이썬에서는 변수의 타입이 값에 따라 결정됩니다.

     

    2. 동적타이핑의 장단점

    동적 타이핑의 장단점 동적 타이핑 언어는 몇 가지 장점과 단점을 가지고 있습니다.

    • 장점
      코드 작성이 간결해지고 가독성이 항상 됩니다.
      변수의 타입을 명시할 필요가 없어 코드량이 줄어
      타입에 구애받지 않고 유연한 프로그래밍이 가능해 다양한 상황을 쉽게 처리합니다.
    • 단점
      성능과 디버깅 측면에서 제약이 있을 수 있습니다.

    변수의 스코프

    1. 전역 변수와 지역 변수

    변수의 스코프는 해당 변수가 유효한 범위를 의미합니다. 파이썬에서 전역 변수(Global variable)와 지역 변수(Local variable)의 개념이 있으며, 스코프 규칙에 따라 변수의 접근성이 결정됩니다.

    • 전역 변수(Global variable)
      전역 변수는 프로그램 전체에서 접근 가능한 변수로, 함수 내부나 클래스 내부가 아닌 최상위 레벨에서 선언됩니다. 전역 변수는 프로그램의 어느 곳에서든지 읽고 쓸 수 있으며, 전역 스코프를 가집니다
    • 지역 변수(Local variable)
      지역 변수 특정한 범위 내에서만 접근 가능한 변수로, 일반적으로 함수 내부에서 선언됩니다. 함수 내부에서 선언된 변수는 함수 내부에서만 유효하며, 함수가 호출될 때마다 새로운 지역 변수가 생성됩니다. 지역 변수는 지역 스코프를 가집니다.

    다음은 전역 변수와 지역 변수를 사용한 코드입니다.

    # 전역 변수 선언
    global_var = "전역 변수"
    
    # 함수 정의
    def func():
        # 지역 변수 선언
        local_var = "지역 변수"
        print("함수 내부에서 전역 변수: ", global_var)
        print("함수 내부에서 지역 변수: ", local_var)
    
    # 함수 호출
    func()
    
    # 변수 접근 확인
    print("함수 외부에서 전역 변수: ", global_var)
    
    # 아래는 오류를 발생시킵니다. 방법: 지역 변수를 함수 외부에서 접근하려고 합니다.
    # print("함수 외부에서 지역 변수: ", local_var)

    2. 스코프 규칙 이해하기

    파이썬은 변수의 스코프를 결정하기 위해 LEGB규칙을 따릅니다.

    • Local
      지역 변수를 함수 내부에서 선언된 변수를 검색합니다.
    • Enclosing
      중첩된 함수경우 내부 함수가 외부 함수의 변수를 참조할 때, 해당 변수는 내부 함수에게 "enclosing 스코프"에 속했있다고 합니다. 이를 통해 내부 함수는 외부 함수에 선언된 변수를 사용, 수정이 가능합니다. 즉 함수의 바깥쪽 함수에 선언된 변수를 찾습니다.
    • Global
      전역 변수를 찾습니다. 함수 내부에서 전역 변수의 값을 변경하거나 수정하려면, 값을 할당하기 전에 해당 변수가 전역 변수임을 global 키워드를 사용해 명시합니다. 단순 읽기만 하려면 사용하지 않아도 됩니다.
    • Built-In
      내장 함수의 이름들을 담고 있는 내장 스코프입니다. 예를 들어 print() 함수는 내장 함수에 속합니다.

    다음은 각각의 예제 코드입니다.

    Local

    def my_function():
        local_var = 10  # 지역 변수
    
        print(local_var)  # 지역 변수 출력
    
    my_function()//10

    위 예제는 "my_function"함수 내에서 지역 변수 "local_var"를 선언하고 초기화한 후, 해당 변수를 출력합니다.

     

    Enclosing

    def outer_function():
        outer_var = 10  # 외부 함수의 변수
        
        def inner_function():
            print(outer_var)  # 내부 함수에서 외부 함수의 변수 참조
        
        inner_function()
    
    outer_function() // 10

    위 예제에서는 outer_function 함수 내에서 외부 변수 outer_var를 선언하고 초기화합니다. 그리고 inner_function 함수 내에서 외부 함수의 변수를 참조합니다.

     

    Global

    global_var = 10  # 전역 변수
    
    def my_function():
        global global_var  # 전역 변수 사용을 위해 global 키워드 사용
        global_var += 1  # 전역 변수 값 증가
        print(global_var)  # 전역 변수 출력
    
    my_function()//11

    위 예제에서는 전역 변수 global_var를 선언하고 초기화한 후, my_function 함수 내에서 전역 변수 값을 증가시키고 출력합니다

     

    Built-in

    print(len("Hello, world!"))  # 내장 함수인 len() 사용

    위 예제에서는 print() 함수와 len() 함수를 내장 스코프에서 찾아 사용합니다. 문자열의 길이를 출력하는 len() 함수를 사용하여 문자열의 길이를 출력합니다.

     

    내용 요약

    변수는 값을 저장하고 참조하는데 사용되며, 데이터 타입에 따라 변수에 저장되는 값의 유형이 결정됩니다. 동적 타이핑은 변수의 타입을 자동으로 결정하여 유연한 프로그래밍을 가능하게 합니다. 변수의 스코프는 해당 변수가 접근 가능한 범위를 결정합니다.

     

    학습 참고 자료

    https://docs.python.org/ko/3/tutorial
    https://www.geeksforgeeks.org/python-programming-language/?ref=lbp 
    https://www.youtube.com/watch?v=XKHEtdqhLK8&list=PLZPZq0r_RZON03iKBjYOsOKr1-TD7z2lH

    목차

     

    반응형