Python Basic 1 | 연산, 변수, 입력, 출력

숫자 계산하기

print(1 + 1)
print(1 - 2) 
print(4 * 3)
print(5 / 2) # 2.5 
print(5 // 2) # 2 몫
print(5 % 2) # 5 나머지 
print(2**2) # 4  거듭제곱 

계산 결과를 정수, 실수로 만들기

print(int(5 / 2)) # 2
print(float(1 + 2) # 3.0

변수 만들고 삭제하기

# 변수 만들기  
x = 10 
# 변수 삭제하기 
x = 10
del x 
# 변수 여러 개 만들기 
a, b, c = 1, 2, 3 
x = y = z = 10 
# 산술 연산 후 할당 연산자 사용하기 
a = 10
a += 20
print(a) # 30

객체의 자료형 알아내기

print(type(3.3)) # <class 'float'> 
x = 10
print(type(x)) # <class 'int'>

파이썬에서는 숫자도 객체이며, 객체는 class로 표현한다.

입력값을 변수에 저장하기

s = input()           # 입력값을 문자열로 저장
a = int(input())      # 입력값을 정수로 저장
b = float(input())    # 입력값을 실수로 저장

한번에 여러 개 입력받기

a, b = input().split()                # 값 두 개를 입력받아 변수 두 개에 문자열로 저장
a, b = map(int, input().split())      # 값 두 개를 입력받아 변수 두 개에 정수로 저장
a, b = map(float, input().split())    # 값 두 개를 입력받아 변수 두 개에 실수로 저장

값을 여러 개 출력하기

print(1, 2, 3) # 1 2 3 공백으로 구분되어 출력 
print(1, 2, 3, sep=',') # 1,2,3 콤마로 구분되어 출력
print('I ', 'Heyrin', sep='am ') # I am Heyrin 문자열 사이 'am ' 출력

줄바꿈 활용하기

print(1, 2, 3, sep='\n')  # 구분자로 개행문자(\n) 사용
print('1\n2\n3') # 문자열 안에 \n을 사용하여 줄바꿈 

end 사용해 한 줄에 출력하기

print(1, end='')
print(2, end='')
print(3) 
# 123 
# print의 end는 \n이 디폴트로 지정되어 있어, 
# 여기에 빈 문자열이나 다른 문자열을 지정하면 개행문자가 지워진다. 

객체 사용(참조) 횟수 알아보기 (reference count)

import sys
print(sys.getrefcount(1000))    # 2: Windows에서 처음 레퍼런스 카운트는 2
                                # 3: 리눅스에서 처음 레퍼런스 카운트는 3
x = 1000                        # x에 1000을 저장
print(sys.getrefcount(1000))    # 3: 1000을 한 번 사용하여 레퍼런스 카운트 1 증가(Windows)
                                # 4: 리눅스
y = 1000                        # y에 1000을 저장
print(sys.getrefcount(1000))    # 4: 1000을 한 번 사용하여 레퍼런스 카운트 1 증가(Windows)
                                # 5: 리눅스
print(x is y)    # True: x와 y가 같은 객체를 가리키고 있으므로 True가 나옴

서로 다른 객체인지 확인하는 법

print(1 == 1.0) # True
print(1 is 1.0) # False
print(1 is not 1.0) # True 
print(id(1)) # 4544191120
print(id(1.0)) # 140479729336752

1과 1.0은 값이 서로 같으므로 == 으로 비교하면 True이지만, 각각 정수 객체와 실수 객체이므로 is 로 비교하면 False 가 된다. id() 함수를 사용해서 객체의 메모리 주소를 찍어 보면 다른 것을 확인할 수 있다.

  • Question : 값 비교에 is를 사용할 수 없는 이유는? 메모리 주소가 달라지기 때문?

논리 연산 순서

not > and > or

not True and False or not False # True
# (((not True) and False) or not False)

좋은 웹페이지 즐겨찾기