본문 바로가기

2013/07

함수의 정의 함수 선언은 def로 시작해 콜론(:)으로 끝함수의 시작과 끝은 코드의 들여쓰기로 구분함수가 필요할 때 바로 선언하고 사용 문법def >> def Times(a,b):return a*b >>> Times>>> Times(10,10)100 함수 생성시 메모리 공간 어딘가에 함수 객체 생성생성된 객체의 메모리 주소 0x1037530d8 레퍼런스는 다른 변수에 할당 가능>>> globals(){'__builtins__': , 'Timer': , 'Times': , '__name__': '__main__', '__package__': None, '__doc__': None}>>> myTimes = Times 레퍼런스만 복사(얕은 복사)>>> r = myTimes(10, 10)>>> r100>>> globals(.. 더보기
얕은 복사와 깊은 복사 a에는 [1, 2, 3]의 주소가 저장돼 있음b에도 a와 동일한 주소가 복사됨a와 b는 동일한 리스트 객체를 공유>>> a = [1, 2, 3]>>> b = a>>> a[0] = 38>>> a[38, 2, 3]>>> b[38, 2, 3] 객체의 고유한 값인 아이디를 변환하는 함수 id()를 통해 확실히 확인 가능>>> id(a), id(b)(4302353400, 4302353400) 리스트의 경우 a와 b가 같은 객체를 공유하지 않게 하기 위해 강제로 복사한다>>> a = [1, 2, 3]>>> b = a[:]>>> id(a), id(b)(4302353472, 4302335368)>>> a[0] = 38>>> a[38, 2, 3]>>> b[1, 2, 3] 리스트 이외의 일반적인 경우 copy모듈 사용co.. 더보기
부울 부울은 참과 거짓을 나타내는 자료형사용가능한 값은 True와 False>>> isRight = False>>> type(isRight) 부울 값들 간의 논리연산이나, 수치 간의 비교연산의 결과로 사용>>> 1 >> 1 != 2True>>> 1 == 2False 논리연산자로는 'and(&)', 'or(|)', 'not'이 있음논리연산자와 비교연산자는 제어문의 조건에서 주로 사용>>> True and FalseFalse>>> True & TrueTrue>>> True or FalseTrue>>> False | FalseFalse>>> not TrueFalse and는 첫번째 값이 거짓이면 두번째 값을 안 봄or은 첫번째 값이 참이면 두번째 값을 안 봄0은 false로 간주음수를 포함한 다른 값.. 더보기
사전 키와 값의 쌍으로 구성>>> d = dict(a=1, b=3,c=5)>>> d{'a': 1, 'c': 5, 'b': 3}>>> type(d) dict() 생성자를 사용하지 않고 직접 사전을 생성할 수 있음키를 이용해 값을 가져옴인덱스를 지원하지 않음없는 키를 사용하면 에러 발생>>> colors = {"apple":"red", "banana":"yellow"}>>> colors{'apple': 'red', 'banana': 'yellow'}>>> colors["apple"]'red'>>> colors[0]Traceback (most recent call last): File "", line 1, in KeyError: 0 새로운 값을 추가 시 새로운 키와 값을 할당변경 시 변경하려는 항목의 키에 변경할 .. 더보기
튜플 리스트와 유사()로 묶어서 표현읽기 전용임함수는 리스트보다 적지만 속도가 빠름>>> t = (1, 2, 3)>>> type(t) 제공하는 함수 count(), index() 뿐여러값을 할당하는 경우 튜플이 생략되어 있음>>> a, b = 1, 2>>> print (a, b)1 2>>> (a, b) = (1, 2)>>> print (a, b)1 2 C와 같은 언어에서 변수가 하나 필요한 swap 예제를 간단히 해결>>> a, b = 1, 2>>> print(a, b)1 2>>> a, b = b, a>>> print(a, b)2 1 생성자 list(), set(), tuple()을 이용해서 언제든지 변환이 가능>>> a = set((1, 2, 3))>>> a{1, 2, 3}>>> type(a)>>> b = .. 더보기
세트 세트는 수학시간에 배운 집합과 동일순서 없음{}로 묶음>>> a = {1,2,3}>>> b = {3,4,5}>>> a{1, 2, 3}>>> b{3, 4, 5}>>> type(a) 메서드는 리스트와 거의 유사교집합과 합집합을 구할 수 있음>>> a.union(b){1, 2, 3, 4, 5}>>> a.intersection(b){3} -(차집합), |(합집합), &(교집합) 연산자 제공>>> a - b{1, 2}>>> a | b{1, 2, 3, 4, 5}>>> a & b{3} 더보기
리스트 값의 나열순서가 존재여러 종류의 값을 담음0부터 시작하는 인덱스가 있음슬라이싱 가능>>> colors = ['red', 'green', 'gold']>>> colors['red', 'green', 'gold']>>> type(colors) 기존의 리스트에 값을 추가하는 메서드append() 메서드삽입된 값은 리스트의 뒤에 추가>>> colors.append('blue')>>> colors['red', 'green', 'gold', 'blue'] insert()메서드는 원하는 위치에 값을 집어 넣음>>> colors.insert(1, 'black')>>> colors['red', 'black', 'green', 'gold', 'blue'] 한 번에 여러 값을 넣을 수 있음extend() 메서드>>> col.. 더보기
유니코드 일반 문자열이 기본적으로 모두 유니코드이다.유니코드 이외에 인코딩이 있는 문자열은 bytes로 표현됩니다.>>> type('가')>>> '가'.encode('utf-8')b'\xea\xb0\x80'>>> type('가'.encode('utf-8')) 어떤 문자의 유니코드 값을 알고 싶으면 ord()유니코드 값을 문자로 변환할 경우 chr()>>> ord('s')115>>> chr(115)'s' 더보기
문자 문자를 단일인용부호(')나 다중인용부호(")로 묶어서 표현>>> 'string''string'>>> "string"'string'>>> "This is 'string'""This is 'string'">>> type('string') """ 혹은 "'은 줄바꿈이나 탭이 그대로 적용된다.>>> print("""... 영원에 살고 순간에 살아라. 영원히 살 것처럼 일하고... 금방 죽을 것처럼 사람들을 대하라.... -리히텐베르크... """) 영원에 살고 순간에 살아라. 영원히 살 것처럼 일하고금방 죽을 것처럼 사람들을 대하라. -리히텐베르크 이스케이프 문자 이용 사용예 의미\n 개해(줄바꿈)\t 탭\r 캐리지 반환\0 널(Null)\\ 문자 '\'\' 단일 인용부호(')\" 이중인용부호(")>>> pri.. 더보기
체크박스 미리 체크 되어 있게 하는 메서드btn.setChecked(true); 더보기