귀도 반 로섬
1991년 크리스마스에 할거 없어서 만들었다고...
귀도가 평소에 좋아하는 코메디 프로그램 "Monty Python's Flying Circus"에서 유래
컴파일 안한다고 합니다
vi pyramid.cpp
g++ pyramid.cpp -o pyramid
./pyramid
vi pyramid.py
python pyramid.py
소스코드가 곧 실행파일
스크립트 언어 (?)
(feat. 파이썬 인터프리터)
코드를 컴퓨터에서 즉시 실행될 수 있는 형태의
실행 파일로 바꾸어 주는 프로그램.
코드를 한 줄씩 읽어들여서 실행하는 프로그램
$ python pyramid.py
// 실행됨
$ python pyramid.py
// 실행됨
$ python
$ python pyramid.py
// 실행됨
$ python
>>>
$ python pyramid.py
// 실행됨
$ python
>>> a = 13
$ python pyramid.py
// 실행됨
$ python
>>> a = 13
>>> print a
$ python pyramid.py
// 실행됨
$ python
>>> a = 13
>>> print a
13
한쪽은 에디터 한쪽은 인터프리터
보통은 복사 붙여넣기 (혹은 ipython)
b에 값이 잘 저장되어있는가?
print b 로 쉽게 확인
print b+4 로 쉽게 확인
오류?!
오류의 원인을 찾기
다른 명령어 테스트
개발과 테스트를 동시에
실시간으로 결과를 확인하며 빠른 코딩
피라미드를 만들어 볼까요?
#include < iostream>
using namespace std;
int main() {
int row;
cout << "row : ";
cin >> row;
for (int i = 0; i < row; i++) {
for (int j = 0; j < row - i; j++)
cout << ' ';
for (int j = 0; j < 2 * i + 1; j++)
cout << '*';
cout << endl;
}
}
row = int(raw_input("row : "))
for i in range(row):
print " " * (row - i) + "*" * (2 * i + 1)
row = gets.chomp
1.upto(w) { |i| puts " "*(w-i)+"*"*(i*2-1) }
중요한 것은
if "검색" is "구글":
print "개발자"
else:
print "일반인"
if "여친" not in ["김태희", "천송이", "공효진"]:
print "여친이 없습니다"
langs = ['python', 'c++', 'java']
for lang in langs:
if lang in ['python']:
print lang + " is good"
else:
print lang + " is not fun"
#include < algorithm>
string langs[3] = ["python","c++","java"];
int size = sizeof(langs)/sizeof(*langs);
for (int i=0; i < size; i++) {
if (find(nums, nums+size, i) != nums+size) {
cout << langs[i] << " is good" << endl;
} else {
cout << langs[i] << " is not fun\n";
}
}
나에게 파이썬만큼 프로그래밍을 하는 순간을
즐기게 해준 언어는 없었다
C++은 쓸 필요가 없는건가?
main() {
long i;
double x;
for( i=0; i<100000; i++) {
x = sin(.3)
}
printf("%ld\n", i);
}
main() {
long i = 100000;
printf("%ld\n", i);
}
상대적으로 쉬운 문법 덕분에, 생각을 코드로 쉽게 표현할 수 있다
출처 : 메일 서비스 파이썬 적용 경험 (NAVER 개발자 블로그)
파이썬을 즐기는 개발자들이 이미 짠 코드
즉, 내가 만들고 싶은것에만 집중할 수 있다
자동으로 의존성 라이브러리를 설치
Python HTTP Requests for Humans
Quick and Easy web parser
my_var = 3
int my_var = 3
my_var = 3
my_var += 2
my_var -= 1
int my_var = 3
my_var += 2
my_var -= 1
my_var = 3
my_var += 2
my_var -= 1
print my_var
int my_var = 3
my_var += 2
my_var -= 1
cout << my_var << endl;
my_var = 1
my_string = "Hello"
int my_var = 1
string my_string = "Hello"
my_var = 1
my_string = "Hello"
my_string2 = ' World!'
int my_var = 1
string my_string = "Hello"
// impossible
my_var = 1
my_string = "Hello"
my_string2 = ' World!'
print my_string + my_string2
int my_var = 1
string my_string = "Hello"
// impossible
cout << my_string << " World!" << endl;
my_var = 1
my_string = "Hello"
my_string2 = ' World!'
print my_string + my_string2
my_var, my_string = my_string, my_var
int my_var = 1
string my_string = "Hello"
// impossible
cout << my_string << " World!" << endl;
// impossible
colors = ["red", "blue", "green"]
string colors[2] = {"red", "blue"};
colors = ["red", "blue", "green"]
colors[0] = "black"
string colors[2] = {"red", "blue"};
colors[0] = "black";
colors = ["red", "blue", "green"]
colors[0] = "black"
print colors[1]
# blue
string colors[2] = {"red", "blue"};
colors[0] = "black";
cout << colors[1] << endl;
// blue
my_dict = {"me": 23, "girlfriend": "20"}
#include < map>
// partially possible
map< string, int> my_dict = {"me": 23};
my_dict = {"me": 23, "girlfriend": "20"}
print my_dict["me"]
# 23
#include < map>
// partially possible
map< string, int> my_dict = {"me": 23};
cout << my_dict["me"] << endl;
// 23
nums = range(10)
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
int nums[10];
for (int i=0; i<10; i++)
nums[i] = i;
nums = range(10)
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for num in nums:
int nums[10];
for (int i=0; i<10; i++)
nums[i] = i;
int size=sizeof(langs)/sizeof(*langs);
for (int i=0; i < size; i++) {
nums = range(10)
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for num in nums:
if num in [3, 6, 9]:
print "3의 배수 입니다"
break
int nums[10];
for (int i=0; i<10; i++)
nums[i] = i;
int size=sizeof(langs)/sizeof(*langs);
for (int i=0; i < size; i++) {
if (i % 3 == 0)
cout << "3의 배수입니다" << endl;
break;
nums = range(10)
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for num in nums:
if num in [3, 6, 9]:
print "3의 배수 입니다"
break
else:
continue
int nums[10];
for (int i=0; i<10; i++)
nums[i] = i;
int size=sizeof(langs)/sizeof(*langs);
for (int i=0; i < size; i++) {
if (i % 3 == 0)
cout << "3의 배수입니다" << endl;
break;
else
continue
}
nums = range(10)
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for num in nums:
if num in [3, 6, 9]:
print "3의 배수 입니다"
break
else:
continue
while nums[1] == 1:
print "무한 루프"
int nums[10];
for (int i=0; i<10; i++)
nums[i] = i;
int size=sizeof(langs)/sizeof(*langs);
for (int i=0; i < size; i++) {
if (i % 3 == 0)
cout << "3의 배수입니다" << endl;
break;
else
continue
}
while (nums[1] == 1)
cout << "무한 루프" << endl;
def sum(numbers = [1, 2, 3]):
def sum(numbers = [1, 2, 3]):
if -1 in numbers:
return False
def sum(numbers = [1, 2, 3]):
if -1 in numbers:
return False
else:
ans = 0
for i in numbers:
ans += i
return ans
def sum(numbers = [1, 2, 3]):
if -1 in numbers:
return False
else:
ans = 0
for i in numbers:
ans += i
return ans
print sum() // 6
def sum(numbers = [1, 2, 3]):
if -1 in numbers:
return False
else:
ans = 0
for i in numbers:
ans += i
return ans
print sum() // 6
print sum([1, 3, 5, 7, 9]) // 25
def sum(numbers = [1, 2, 3]):
if -1 in numbers:
return False
else:
ans = 0
for i in numbers:
ans += i
return ans
print sum() // 6
print sum([1, 3, 5, 7, 9]) // 25
if sum([-1, 3]):
print "나라가 허락한 유일한 마약, 파이썬..."