본문 바로가기

2013/07

단축평가 # -*- coding: euc-kr -*- ################################ a = 0 if a & 10/a: print("a가 0입니다.") else: print("에러가 없이 통과!") Traceback (most recent call last): File "/Users/MGP/Documents/workspace/Python/src/Python3/2/python.py", line 4, in if a & 10/a: ZeroDivisionError: division by zero & 대신 and를 사용해 단축 평가가 이뤄져 예외가 발생하지 않음 # -*- coding: euc-kr -*- ################################ a = 0 if a and 10.. 더보기
조건식의 참/거짓 판단 정수 계열의 0, 실수 계열의 0.0, 시퀀스 계열의 (), {}, []. 빈 문자열("), 아무것도 없음을 의미하는 None은 언제나 거짓값이 할당된 변수의 경우는 참 >>> bool(True) True >>> bool(False) False >>> bool(13) True >>> bool(0.0) False >>> bool('apple') True >>> bool('') False >>> bool(()) False >>> bool([10, 20, "Apple"]) True >>> bool({}) False >>> bool(None) False 더보기
Custom ListView public class SetMain extends Activity implements OnItemClickListener{Intent intent;MyListAdapter MyAdapter;ArrayList arItem;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.setmain); arItem = new ArrayList();MyItem mi;mi = new MyItem("도움말");arItem.add(mi); //list에 내의 클래스 mi = new MyItem("사이트 설정");arItem.add(mi);mi = new MyItem("담당자 이메.. 더보기
if 문 value의 값이 5보다 큰 경우>>> value = 10 >>> if value > 5: print("value is bigger than 5") value is bigger than 5 1.if: 2.if:구문 1elif :구문 2else:구문 3 파이썬에서는 직관적으로 70 더보기
제너레이터 이터레이터를 만드는 간단하고도 강력한 도구return 대신 yield를 적으면 함수를 끝내지 않고 호출한 곳에 값을 전달>>> def reverse(data):for index in range(len(data) - 1, -1, -1):yield data[index]>>> for char in reverse('golf'):print(char)flog yield는 호출한 곳에 값을 돌려주고 함수는 메모리에 그대로 있음 >>> def abc():data = "abc"for char in data:return char>>> it = iter(abc())>>> next(it)'a'>>> next(it)Traceback (most recent call last): File "", line 1, in next(it).. 더보기
이터레이터(iterator) 순회 가능한 객체(리스트, 튜플, 문자열)의 요소에 순서대로 접근할 수 있는 객체 for문에서 지정한 순회 가능한 객체에서 이터레이터 객체를 가져옴(객체의 첫번째 요소를 가리킴)이터레이터 안의 __next__() 메서드를 실행(현재 이터레이터가 가리키는 객체의 요소를 반환하고 다음 요소로 이터레이터를 옮김)for구문은 StopIteration 예외를 만날 때까지 반복>>> for element in [1, 2, 3]:print(element)123>>> for element in (1, 2, 3):print(element)123>>> for key in {'one':1, 'two':2}:print(key)twoone>>> for char in "123": s = 'abc'>>> it = iter(s)>>.. 더보기
__doc__ 속성과 help 함수 내장 함수는 모두 help를 통해 사용법을 알 수 있음>>> help(print)Help on built-in function print in module builtins: print(...) print(value, ..., sep=' ', end='\n', file=sys.stdout) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended af.. 더보기
pass 함수 및 클래스의 메서드에서 아무런 동작도 수행하지 않음>>> while True: 더보기
재귀적 함수 호출 함수 내부에서 자기 자신을 호출하는 함수>>> def factorial(x):if x == 1:return 1return x * factorial(x - 1) >>> factorial(10)3628800 하노이탑# -*- coding: euc-kr -*- 인코딩 시 필요 ################################ def hanoi(ndisks, startPeg = 1, endPeg = 3): if ndisks: hanoi(ndisks - 1, startPeg, 6 - startPeg - endPeg) print(startPeg, "번의 기둥의", ndisks, "번 원반", endPeg, "번 기둥에 옮깁니다.") hanoi(ndisks - 1, 6 - startPeg - endPeg, .. 더보기
람다 함수 이름이 없고 함수 객체만 존재하는 익명 함수필요한 곳 어디에서나 쓰일 수 있는 함수return 구문을 적을 수 없음여러 개의 인자를 전달 받음return 구문을 적지 않아도 하나의 반환값을 돌려 줌한 줄을 실행한 결과 값이 바로 반환>>> g = lambda x, y : x * y>>> g(2, 3)6>>> (lambda x: x * x)(3)9>>> globals(){'__builtins__': , '__name__': '__main__', '__doc__': None, 'g': , '__package__': None} 간단한 함수라면 람다를 사용하는 것이 편리 >>> def testLambda(g):g(1, 2, 3)>>> testLambda(lambda a, b, c : print("sum is ".. 더보기