파이썬의 내장 함수 중 input()을 굉장히 많이 쓴다. input은 문자열을 반환하는데 이 점을 명확히 알고 있어야 각종 에러를 피할 수 있다. 문자열에 대해 더 공부해보자. input()은 문자열(str)을 반환한다. name = input('Enter: ') a = type(name) print(a) print(name) 특히 숫자를 입력해도 문자열을 반환한다. 그래서 적절한 타입 변환을 해주어야 한다. 문자열은 개별 문자 값에 인덱스를 가지고 있다. fruit = 'banana' letter = fruit[0] print(letter) letter = fruit[1] print(letter) letter = fruit[2] print(letter) letter = fruit[3] print(le..
파이썬에서는 유한개의 항목들에 대해 특정 조치를 취하고 싶을때 for 루프를 사용한다. 리스트안의 항목들의 수나 파일에 들어있는 문장의 갯수는 유한개라고 할 수 있다. for i in [5,4,3,2,1] : print(i) print('Blastoff!') # 5 # 4 # 3 # 2 # 1 # Blastoff! 여기서 i는 루프 하나가 돌 때마다 증가하는 값이 되고 in 뒤의 [ ] 은 콤마로 구별된 인자 하나하나를 의미한다. 집합 개념의 요소들과 비슷하다고 생각하면 된다. 한 루프가 돌때마다 i는 다음 값을 찾아 for문 body를 실행한다. 문자열 리스트에서도 동일한 방식으로 출력할 수 있다. friends = ['Connect', 'Korea', 'NHN'] for friend in friend..
컴퓨터는 무한 반복에 싫증을 느끼지 않는다. 컴퓨터는 반복문 처리에 탁월하다. 반복적으로 일을 처리하는 것을 루프(Loop)라고 한다. while 루프 n = 5 while n > 0: print(n) n = n - 1 print(n) print('끝') while [조건식] : 동작 으로 설명할 수 있다. 조건식 내부가 참일 때 내부 동작이 끊임없이 반복된다. while True : 동작 따라서 위 같은 while문은 영원히 반복하게 된다. 이를 끊어주기 위한 방법이 존재한다. continue/break 루프가 continue를 만나게 되면 해당 루프는 실행이 종료되고 루프가 시작된 지점부터 다시 루프가 실행된다. 반면 break를 만나게되면 그 반복문은 종료된다. while True: line = i..
함수 정의 함수를 만드는 과정에서 가장 중요한 것은 저장과 호출에 대한 이해이다. 앞서 살펴본 것 처럼 함수를 저장하기 위해서는 def 라는 예약어를 사용한다. def sayHello(): print('hello') : (콜론) 뒤에 실행하고자 하는 코드를 입력하는 것 만으로는 함수는 실행되지 않는다. def 에 작성된 것은 단순히 함수를 정의하는 단계이다. 작성한 함수를 실행하려면 함수를 호출해야 한다. 함수 호출 def sayHello(): print('hello') sayHello() # hello 출력 정의한 함수의 이름으로 인자를 호출하면 함수가 출력된다. 다만 위의 함수는 아무 인자가 없다. 그냥 부르면 호출되는 무식한 함수이다. 인자(Argument) 인자는 함수를 호출할 때 전달하는 값을 ..
함수의 수학적 정의는 모든 정의역은 하나의 출력값을 가지며, 출력값을 2개 이상 가질 수 없다.... 라고 아마추어틱하게 설명할 수 있는데 풀어서 설명하자면 함수라는 상자에 무언가를 넣으면 그것에 맞는 하나가 꼭 나와야 함수라고 할 수 있다. 프로그래밍에서, 함수의 간단하고도 더러운(?) 예시 다소 더럽지만 각인이 쉬운 똥으로 예시를 들어보자. 많은 사람들이 매일 화장실에서 큰일을 본다. 대변을 보는 행위는 같지만 먹는 것은 매일 달라진다. ↑ 위의 예시로써 함수의 설명이 끝났다. 매일 매일 똥싸는 행위가 정의(definition)되었고 매일 먹는게 다르니 똥을 싸기 위해 전달해야 하는 정보(인수, 인자, Argument)가 확실해졌다. 이걸 프로그래밍하면 반복적으로 똥싸는 행위를 서술하는게 그다지 복잡..
프로그램은 에러가 나면 터진다. 그리고 파이썬은 가끔씩 민감하다. 특히 타입에 많이 민감하다. 프로그램은 일단 터지면 안된다. 그래서 터질법한 위험한 코드 문장이 실행되고 에러가 났을 때 그 터진 문장은 아예 넘어가고 안전한 코드 문장으로 넘어갈 수 있는 try / except 라는 방법이 있다. try에 묶인 코드는 일단 실행이 된다. 실행이 되면 그대로 넘어간다. 하지만 에러가 나면 except에 있는 코드가 실행이 된다. try = 일단 시도해봐!! except = 근데 터지는 예외적인 상황이면 여기로 와! 라고 대충 해석해보자. try / except str = "123" print(str + 1) 문자열에 정수를 더해보자. 프로그램이 터진다. 이때 try / except 를 써보자! str = ..
다중 분기(Multi-way desitions) 하나의 조건문 블럭에 다수의 조건들을 추가할 수 있다. 파이썬에서는 elif라는 예약어를 통해서 가능하다. x = 21 if x < 2 : print('Small') elif x < 10 : print('Medium') elif x < 20 : print('Big') elif x < 40 : print('Large') elif x < 100 : print('Huge') else : print('Ginormous') 21 < 40이 참이므로 Large가 출력되고 조건문이 끝나게 된다. 하지만 elif 대신 if를 쓰면 어떻게 될까? x = 21 if x < 2 : print('Small') if x < 10 : print('Medium') if x < 20 ..
if문 if문의 기본적인 형태는 아래와 같다. x = 5 if x < 10 : # if는 예약어이며, 컴퓨터는 if 오른쪽의 조건문의 T/F를 판단하게 된다. print('작음') # 만약 T일 경우, 아래로 들여쓰기된 부분이 실행된다. 여기선 '작음'이 출력된다. if문의 주의사항으로 조건문 후에 : (콜론)을 반드시 찍어야한다. 조건문이 실행할 코드는 들여쓰기를 해야한다. (들여쓰기는 아래에서 설명) 비교 연산자(comparison operator) 조건문에서는 참, 또는 거짓을 판별하기 위해 비교 연산자를 사용한다. 들여쓰기 (indentation) 파이썬은 들여쓰기에 매우 엄격하다. 들여쓰기가 제대로 되어있지 않다면 문법 에러를 통해 우리에게 도움을 요청한다. x = 5 if x < 10 : pr..
타입과 타입의 연산 파이썬에는 여러가지 데이터 타입들이 있다. 문자열(str), 정수(int), 실수(float) 등 파이썬은 똑똑하다. 똑똑해서 동일한 + 연산자를 사용하더라도 정수와 실수에서는 덧셈으로 작용하고 문자열에서는 문자열을 이어주는 기능을 하게 된다. 다만 문자열+숫자 같이 이상한 것을 접붙히면 에러가 난다. ddd = 1 + 4 print(ddd) # 5 출력 eee = 'hello' + 'world' print(eee) # hello world 출력 eee = eee + 1 # 에러 발생(문자열+정수형은 + 연산자가 동작하지 않음) type() 파이썬은 타입에 민감하다. 값이나 변수의 타입을 알고 싶을때는 type() 를 이용해 객체의 타입을 알 수 있다. eee = 'hello' + '..
파이썬에서는 연산을 위한 연산자가 몇가지 존재하고 수학과 같이 순서가 있다. 이를 탐구해보자. 또한 파이썬에는 여러가지 데이터 타입이 존재한다. str(문자열), int(정수), float(실수, 부동 소수점 수) 타입에 대해 공부해보고 그 타입을 변환하는 방법을 알아보자. 연산자(Operator) 컴퓨터 키보드에 있는 수학 기호들은 좀 부족하다. 그래서 우리는 제한적인 몇가지의 수리 연산자들만 사용할 수 있다. 산술연산자(Arithmetic Operators) 연산자 (Operator) 뜻 예제 + add / 더하기 x + y - subtrack / 빼기 x - y * multiply / 곱하기 x * y / division / 나누기 (파이썬에서는 float(실수 영역) 반환) x / y % modu..