Small Grey Outline Pointer 'Dev./Python' 카테고리의 글 목록
본문 바로가기

Dev./Python25

python :: lambda # %% lambda 함수 정의 def show(s): print(s) ref = show print(ref("adios~")) ref =lambda s: print(s) print(ref("helllllo")) f1 = lambda n1, n2: n1+n2 print(f1(10,8)) adios~ helllllo 18 def ref1(s): return s print(ref1("adios")) ref = lambda s: s # ref = lambda s: return s 이렇게 하면 오류가 난다 print(ref('adios')) # ref = lambda s: return s 와 같은 코드 f2 = lambda s: len(s) print(f2("adios")) f3 = lambda : print(.. 2022. 8. 5.
python :: iter 이터레이터 iterable 객체 : iter 함수에 인자로 전달이 가능한 객체 iterator 객체 : iter 함수가 생성해서 반환하는 객체 iterable 객체를 대상으로 iter 함수를 호출해서 iterator 객체를 만든다 iterator 객체를 생성할 수 있는 대상이 되는 것이 iterable 객체이다 # %% ds = [1,2,3,4] # for i in ds: # print(i) ir = iter(ds) print(next(ir)) print(next(ir)) print(next(ir)) print(next(ir)) 1 2 3 4 ds = [1,2] #iter 함수에 인자로 전달 가능한 객체 ir = iter(ds) #iter 함수가 생성해서 반환하는 객체 = 리모컨 print(next(ir)) # p.. 2022. 8. 4.
python :: list comprehension 리스트 컴프리헨션 r1=[1,2,3,4,5,6] r2=[] for i in r1: r2.append(i*2) print(r2) [2,4,6,8,10,12] r1 = [1,2,3,4,5] r2 = [x * 2 for x in r1] #리스트 컴프리헨션의 기본 구성 print(r2) [2,4,6,8,10] 컴프리헨션을 이용하여 값을 10씩 증가시킨 다른 리스트 생성하기 # %% 컴프리헨션을 이용하여 값을 10씩 증가시킨 다른 리스트 생성하기 d1 = [1,2,3,4,5,6] d2 = [x + 10 for x in d1] print(d2) [11,12,13,14,15,16] for문을 리스트 컴프리헨션으로 바꾸기 # %% for문 r1 = [1,2,3,4,5,6,7,8,9,10] r2 =[] for i in r1: if i %.. 2022. 8. 2.
python :: 얕은 복사(shallow copy) v1 = 'abc' v2 = 'abc' v1 == v2 #변수 v1과 v2가 참조하는 객체의 내용이 같은가? True v1 is v2 #변수 v1과 v2가 참조하는 객체는 동일한 객체인가? True True True v1=[1,2,3] v2=[3,2,1] print(v1 == v2) #리스트는 순서가 중요하다 따라서 false False r1=[1,2,3] r2=[1, 2, 3] print(r1 == r2) #True print(r1 is r2) #False True False 리스트나 딕셔너리처럼 값이 바뀔 수 있는 것들, mutable 객체는 동일한 내용의 객체를 갖고 있더라도 따로 객체를 만들어주게끔 되어있다 # %% r1 = ["enwoo",('man','KR'),[180,20]] r2 = lis.. 2022. 8. 2.
Python :: mutable / immutable 수정이 불가능한 객체 (immutable) : 튜플, 문자열 수정이 가능한 객체 (mutable) : 리스트 r = [1,2] print(id(r)) r += [3, 4] print(r) print(id(r)) 2432506958464 [1, 2, 3, 4] 2432506958464 //주소값이 같다 t = (1,2) print(id(t)) t += (3,4) print(t) print(id(t)) 2432505701312 (1, 2, 3, 4) 2432505844160 //주소값이 바뀜 t1 = "홍" t2 = "길" t3 = "동" t = t1 + t2 + t3 print(t) t1 = t1 + t2 + t3 #새로운 값을 만들어서 저장한다 원본을 건드리지 않는다 print(t1) 홍길동 홍길동 li.. 2022. 7. 26.
Python :: 예외처리 / 사용자 예외 처리, 파일 입출력 예외처리 에러: 심각한 오류 예외: 덜 심각한 오류 try : 오류가 발생할 수 있는 문장 except 오류 이름 as 객체: //alias : 별칭 오류 발생 시 실행할 문장 모든 예외 클래스의 부모 클래스는 Exception이다 어떤 오류든지 상관없이 except로 처리할 때에는 "오류이름" 자리에 예외의 최상위 부모인 Exception을 작성한다 lst=[1,2,3] print(lst[3]) Traceback (most recent call last): File "c:\python_jsy\workspace\day0721\exTest.py", line 2, in print(lst[3]) IndexError: list index out of range def main(): print("안녕하세요") a.. 2022. 7. 20.
Python :: 생성자 (초기화 메소드) 생성자 클래스명() 을 생성자라고 하며, 이름 뒤에 소괄호가 있기 때문에 메소드의 기능과 똑같다 하지만 리턴이 없기 때문에 메소드라고 부르지 않고 생성자라고 부른다 클래스에 있는 필드를 메모리에 할당해 주고 그 필드의 주소값을 가지고 돌아와야하기 때문에 개발자가 직접 리턴값을 작성하면 안된다 생성자의 역할 1. 해당 필드를 메모리(RAM)에 할당하고 할당된 필드의 주소값을 가져온다 2. 초기화 자바 constructor (생성자) 파이썬 generator (생성자) 제너레이터는 이터레이터를 생성해주는 함수 제너레이터는 발생자 함수 안에서 yield를 사용하면 함수는 제너레이터가 되며 yield에는 값(변수)을 지정 __init__ 메서드 : 초기화(initialize) 메서드 class Const: de.. 2022. 7. 19.
Python :: 클래스와 객체 객체(instance variable) 클래스는 추상적인 개념이고 이 추상적인 개념을 실체화(구체화)시켜야지만 사용할 수 있다 따라서 추상적인 개념을 실체화(구체화)시켜놓은 것을 객체라고 한다 클래스 객체 자동차 엄마차 도형 세모 객체화(instance) 추상적인 개념을 구체화 시키는 작업 객체명 = 클래스명() 객체 생성 시 '데이터'와 '기능'이 함께 채워져서 만들어진다 그러나 사실은 객체 속 데이터는 나중에 지워진다 파이썬의 객체 속에 변수가 생성되는 시점은 첫 대입연산을 진행하는 시점이다 인스턴스 변수 : 인스턴스(객체) 안에 존재하는 변수 인스턴스 메소드 : 인스턴스(객체) 안에 존재하는 메소드(함수) 인스턴스 생성 후, '참조 변수.메소드 명()'으로 호출 ex) Exam ex = new Ex.. 2022. 7. 19.
python :: 객체 지향 프로그래밍 객체 지향 프로그래밍(Object Oriented Programing) 절차지향 : C 객체지향 : Java C# C++ 프로토타입 객체지향 : JavaScript 클래스와 객체 자동차 설계도 설계도 기반으로 만들어진 실제 자동차 객체 이전의 프로그램 # %% test 01 fa_age =20 #아빠 나이 정보, 현재 20살 def up_fa_age():# 이 함수를 호출하면 아빠 나이 올라감 global fa_age fa_age += 1 def get_fa_age(): # 이 함수 호출하면 아빠 나이 반환 함 return fa_age def main(): print("2022년...") print("아빠:", get_fa_age()) print("2023년...") up_fa_age() #아빠 나이 1.. 2022. 7. 14.
python :: 전역변수와 지역변수 # %% 전역변수와 지역변수 def func(n): # n : 매개변수 lv=n+1 # lv : 지역변수: 함수안에 선언되어진 변수, 함수를 벗어나면 지역변수는 소멸 된다 print(lv) func(12) cnt=100 #전역변수 cnt +=1 def func(): print(cnt) func() 13 101 전역변수와 지역변수의 차이 # %% test2 cnt = 100 def func(): cnt =0 print(cnt) func() print(cnt) 0 #func() 지역변수 100 #cnt 전역변수 전역변수의 cnt와 지역변수의 cnt 는 다른 값이다 하지만, 굳이 전역변수와 지역변수의 변수 이름을 똑같이 선언하는 경우는 없다! test3 위의 함수에서 전역변수의 cnt 값을 바꾸고 싶다면 # .. 2022. 7. 14.