[파이썬] 파이썬 2와 파이썬 3의 내장 함수 차이

파이썬 2와 파이썬 3는 내장 함수에 일부 차이가 있습니다. 이번 포스트에서는 파이썬 2와 파이썬 3에서 다른 동작을 하는 일부 내장 함수에 대해 알아보겠습니다.

파이썬 2에서는 print 함수를 사용할 때 괄호가 필요하지 않습니다. 즉, print "Hello, World!"와 같은 형식으로 사용할 수 있습니다. 하지만 파이썬 3에서는 print 함수에 괄호가 필요합니다. 즉, print("Hello, World!")와 같은 형식으로 사용해야 합니다.

range 함수

range 함수도 파이썬 2와 파이썬 3에서 차이가 있습니다. 파이썬 2에서는 range 함수가 리스트를 반환하는 반면, 파이썬 3에서는 range 함수가 이터러블한 객체를 반환합니다. 즉, 파이썬 2에서는 range(5)를 호출하면 [0, 1, 2, 3, 4]와 같은 리스트를 반환하지만, 파이썬 3에서는 range(5)를 호출하면 [range(0, 5)]와 같은 이터러블한 객체를 반환합니다.

input 함수

input 함수도 파이썬 2와 파이썬 3에서 차이가 있습니다. 파이썬 2에서는 input 함수는 사용자가 입력한 값을 str 타입으로 반환하는 반면, 파이썬 3에서는 input 함수가 사용자가 입력한 값을 str 타입이 아닌 input 함수가 호출된 스코프의 타입으로 반환합니다. 따라서, 파이썬 3에서는 int(input("Enter a number: "))와 같이 명시적으로 타입을 변환해주어야 합니다.

파일 입출력 함수

파일 입출력 함수인 open 함수도 파이썬 2와 파이썬 3에서 차이가 있습니다. 파이썬 2에서는 파일을 읽을 때 기본적으로 바이너리 모드로 파일을 열지만, 파이썬 3에서는 텍스트 모드로 파일을 엽니다. 따라서, 파이썬 2에서는 open('file.txt', 'r')와 같이 파일을 읽기 위해서는 명시적으로 모드를 지정해주어야 합니다. 반면, 파이썬 3에서는 open('file.txt')와 같이 파일을 읽기 위해 모드를 명시적으로 지정하지 않아도 됩니다.

이외에도 많은 내장 함수들이 파이썬 2와 파이썬 3에서 차이가 있을 수 있으므로, 파이썬 버전에 따라 적합한 내장 함수 사용에 주의해야 합니다.

# 파이썬 2에서 print 함수 사용
print "Hello, World!"

# 파이썬 3에서 print 함수 사용
print("Hello, World!")

# 파이썬 2에서 range 함수 사용
print(range(5))  # [0, 1, 2, 3, 4]

# 파이썬 3에서 range 함수 사용
print(range(5))  # range(0, 5)

# 파이썬 2에서 input 함수 사용
num = input("Enter a number: ")
print(type(num))  # <type 'str'>

# 파이썬 3에서 input 함수 사용
num = int(input("Enter a number: "))
print(type(num))  # <class 'int'>

# 파이썬 2에서 파일 읽기
file = open('file.txt', 'r')

# 파이썬 3에서 파일 읽기
file = open('file.txt')