파이썬은 C/C++와 달리 문장 끝에 세미콜론(;)을 붙이지 않는다.
세미콜론을 붙여도 문법 에러는 발생하지 않지만,
한 줄에 여러 개의 문장을 쓰고 싶을 때는 세미콜론을 쓴다.
줄 앞에 #를 쓰면 그 부분부터 모두 주석 처리가 된다.
if의 다음 문장처럼, 파이썬에서는 들여쓰기가 문법이므로 아주 중요하다.
들여쓰기는 공백 2/4칸, 탭을 사용해도 되지만 정석은 공백 4칸이다.
파이썬에서는 코드 블록도 들여쓰기가 같은 지를 기준으로 구분한다.
파이썬은 5 / 2와 같이 계산해도 2.5라고 알아서 실수로 출력된다.
그런데 4 / 2와 같은 경우에도 2.0으로 실수로 출력된다.
나눗셈이 완전히 나누어 떨어져도 실수로 나옴을 알 수 있다.
혹시 나눗셈의 결과가 실수가 아닌 정수로 만들고 싶다면 '//'를 사용하면 된다.
5 // 2
2
'//' : 버림 나눗셈(floor division)
그런데, 실수에 //를 사용하면 결과는 실수가 나오며 소수점 이하는 버리게 되어 있어서 항상 .0 으로 출력된다.
1) 5.5 // 2
2.0
2) 4 // 2.0
2.0
나눗셈 후 나머지를 구하는 % (modulo) 연산자도 있다. 이 때의 몫은 //로 구하면 된다.
5 % 2
1
거듭제곱을 구하고 싶다면 **를 사용하면 된다.
2 ** 10
1024
실수값을 강제적으로 정수로 만들고 싶을 때는 int에 괄호를 붙이고 숫자 또는 계산식을 넣으면 된다.
1) int(3.3)
3
2) int (5 / 2)
2
3) int ('10')
10
객체의 자료형을 알아내고 싶을 때는 type 함수를 사용한다.
type(10)
<class 'int'>
파이썬에서는 숫자도 객체(object)이고, 객체는 클래스(class)로 표현한다. 앞에서 사용한 int(3.3)은 실수 3.3을 int 클래스로 된 객체로 만든다는 의미이다.
또, 괄호를 사용하면 괄호 안의 계산식을 먼저 계산해준다.
파이썬에서는 x = 10와 같은 방식으로만 입력하면 변수가 생성됨과 동시에 값이 할당된다.
또, 파이썬에서는 변수를 입력한 뒤 엔터 키를 누르면 변수에 저장된 값이 출력된다.
변수에는 문자열도 넣을 수 있다. ex) y = 'hello, world!'
아래와 같이 입력하면 변수 여러 개를 한 번에 만들 수도 있다.
x, y, z = 10, 20, 30
변수 여러 개를 만들 때 값이 모두 같아도 된다면?
x = y = z = 10
위와 같이 생성할 수도 있다.
그렇다면 두 변수의 값을 서로 바꾸고 싶을 때는 어떻게 해야할까?
x, y = y, x
변수를 삭제할 때는 del을 사용한다
x = 10
del x
이후에 x를 입력하고 엔터를 치면 아래와 같이 출력된다.
NameError: name 'x' is not defined
비어있는 변수를 만들고 싶을 때는 아래처럼 입력한다.
None이란, 아무것도 없는 상태를 의미한다. (C/C++에서는 null)
x = None
입력 값을 변수에 저장하고 싶을 때는 input() 함수를 이용한다.
input()을 입력한 다음에 엔터 키를 누르면 다음 줄로 넘어가고, 이 상태에서 엔터 키를 누르면 입력한 문자열이 그대로 출력된다.
(예시) >>> input()
Hello, world! (사용자가 입력한 내용)
'Hello, world!' (출력된 내용)
변수에 입력된 값을 저장하고 싶다면?
(예시) >>> x = input()
Hello, world! (사용자가 입력한 내용)
이 이후에 x 만을 입력하고 엔터 쳐보면 입력한 내용이 그대로 출력되어 x에 성공적으로 저장되었음을 알 수 있다.
주의할 점은, input으로 입력받은 값은 모두 문자열로 인식된다는 것이다.
(예시) a = input('첫 번째 숫자를 입력하세요:')
b = input('두 번째 숫자를 입력하세요:')
print(a+b)
이렇게 코딩했을 때, a에 10, b에 20을 입력하면 30이 출력될거 같지만 실제로는 1020이 출력된다. 이 문제를 해결하기 위해서는 아래와 같이 고쳐야한다.
(예시) a = int(input('첫 번째 숫자를 입력하세요:'))
b = int(input('두 번째 숫자를 입력하세요:'))
print(a+b)