본문 바로가기

Language/Python19

Python ) Variable Naming (변수 명명법) 변수(variable)의 이름을 정하는 것은 중요하다변수의 이름을 통해 해당 변수의 용도를 짐작할 수 있기 때문이다자주 사용하는 변수들을 정리해 보았다i (index)인덱스, 어떤 항목에 붙은 식별번호를 뜻한다주로 반복문에서 순서를 셀 때 사용한다for i in range(5): print(f"{i}번째 실행 중") x 주로 수학 공식이나 좌표값에 사용된다그래프의 가로축이나 미지수를 나타낼 때 적합하다x = 10y = 2 * x + 5 char (character)문자 하나문자열 전체가 아닌 한 글자씩 분리해서 처리할 때 자주 쓴다for char in "Hello": print(char) str (string)문자열다만, 파이썬 내장 함수명인 str과 겹칠 수 있으므로 my_str이나 i.. 2026. 1. 13.
Python ) Built-in Data Structure 파이썬 내장 데이터 구조 4가지 (Built-in 4 Data Structures)리스트 (List)기호: []가변성 (Mutable): 값 변경 가능인덱스 접근 가능 (Subscriptable): 인덱스 번호로 접근 가능중복 가능 (Not Unique)특징: .append() 메서드로 인해 메모리를 여유 있게 할당해 두어야 하므로(메모리 2개), 튜플보다 생성 속도가 느림lst = [1, 2, 3]lst.append(4) print(lst) # [1, 2, 3, 4] 딕셔너리 (Dictionary)기호: {} (Key: Value 쌍)가변성 (Mutable): 값 변경 가능인덱스 접근 가능 (Subscriptable): Key를 통해 접근순서 보장: 파이썬 3.7 버전부터 삽입 순서가 유지됨고유성 (U.. 2026. 1. 12.
Python ) Class: Object, Attribute, Method class 라는 개념이 생소하기도 하고 헷갈려서 간단한 예시와 함께 설명하고 코드와 함께 보려고 한다Class (클래스): Blueprint (청사진) 이라고도 하며 설계도 같은 역할을 한다Attribute (속성)Method (메소드) : 클래스의 fuction, 행동 하는것Object (객체) : 설계도로 만든 객체 예시)Phone 을 예시로 들어보자Class : Phone 설계도Object1 : iPhone12Object2: iPhone12ProMaxAttribute : 디스플레이 크기, 카메라, 배터리, … Class 정의하기class 클래스명: 으로 클래스를 정의한다class Phone: pass pass 키워드: 조건문(if), 반복문(for, while), 함수, 클래스를 정의하고 내용을 비.. 2026. 1. 11.
Python ) 디버깅 하는 법 1. Explain the problem코드가 왜 본인이 예상한 대로 작동하지 않는지 말로 직접 설명해 보기문제 자체를 정확히 이해하고 정의함으로써 무엇이 잘못되었는지 명확히 파악해야 해결 방법을 찾을 수 있다 "이 함수는 리스트를 반환해야 하는데 지금은 숫자가 나오고 있어"처럼 구체적으로 정의하는 것이 중요하다 2. Produce the bug again to see what went wrong문제가 정확히 어떤 상황에서 발생하는지 다시 한번 확인하기특정 입력값에서만 오류가 나는가?프로그램이 시작하자마자 멈추는가? 버그가 발생하는 조건을 명확히 재현할 수 있어야 수정한 뒤에 제대로 고쳐졌는지 확인할 수 있다 3. Evaluate line by line코드를 위에서부터 아래로 한 줄씩 꼼꼼히 훑어보기조건.. 2026. 1. 11.
Python ) Scope 에 대해 (feat. global, nonlocal 키워드) Scope (변수의 범위)# global scope : 전역 범위a = 10 # 전역 변수def my_fun1(): # local scope : 지역 범위 print(a) b = 20 # 지역 변수print(b) # NameError: name 'b' is not defined 함수를 만들면 새 name space가 생긴다함수 밖을 전역 범위(global scope)이라고 하고함수 안을 지역 범위(local scope)이라고 한다 여기서 밖 (위에선 전역 범위) 에서 선언한 10을 안에서 접근할 수는 있지만,안에서 선언한 변수를 밖에서 접근할 수는 없다 (접근하려고 하면 코드 내용처럼 NameError가 발생한다) score = 80def my_score(): score = 90print(score) .. 2026. 1. 10.
Python ) Assignment vs. Shallow Copy vs. Deep Copy Assignment (할당)= 를 사용해 할당한다두 변수는 메모리 상에서 동일한 객체를 가리킨다값을 변경하면 변경된 값을 두 변수가 가리키는 것이므로 모두 같은 내용이 나온다a = [1, 2, [3, 4]]b = aa.append(5)a[2].append(6)print(a) # [1, 2, [3, 4, 6], 5]print(b) # [1, 2, [3, 4, 6], 5] Shallow Copy (얕은 복사)[:] 또는 copy.copy() 를 사용한다 ( copy.copy() 는 copy 모듈을 사용 )최상위 컨테이너는 새 객체로 생성하지만(복사) 내부 객체는 참조한다단순 리스트 추가는 독립적이지만 내부 중첩 리스트를 수정하면 함께 변경된다import copya = [1, 2, [3, 4]]b = a[:].. 2026. 1. 9.