Python2와 Python3의 차이점은 다음과 같습니다. 1. 출력 인쇄의 차이점 2. 정수 나누기 및 반환 값의 차이점 3. 목록 이해 루프 변수 5, 오류 처리; 6. xrange가 다릅니다.
이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터, Python 버전 3.6.4.
이 글에서는 Python2와 Python3의 차이점을 소개하여 누구나 Python 버전을 이해할 수 있도록 하겠습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Python에 익숙하지 않다면 사용 가능한 Python의 다양한 버전 때문에 혼란스러울 수 있습니다. 현재 어떤 버전의 Python을 사용해야 하는지에 대한 명확한 대답은 없습니다. 결정은 달성하려는 목표에 따라 다릅니다.
Python 3는 최신 세대의 언어이자 언어의 미래이지만, 여전히 2010년에 출시된 Python 2의 최종 업데이트 버전인 Python 2.7을 사용하는 프로그래머가 많습니다. 이는 일부 오래된 라이브러리와 패키지가 Python 2에서만 작동하기 때문입니다.
Python의 버전이 다른 이유는 무엇인가요?
개발자가 언어의 기능을 확장하고 개발자에게 문제를 일으키는 단점을 제거함에 따라 프로그래밍 언어는 계속해서 발전하고 있습니다. Python 3은 Python을 더 쉽게 사용하고 오늘날의 언어 요구 사항에 맞게 문자열을 처리하는 방식을 변경하려는 목표로 2008년에 도입되었습니다. Python 2 프로그래밍을 처음 접하는 프로그래머는 새로운 변경 사항에 적응하는 데 어려움을 겪는 경우가 있지만, 초보자는 새 버전의 언어가 더 의미가 있다고 생각하는 경우가 많습니다.
Python 3.0은 이전 버전과 호환되지 않는 최초의 Python 버전이라는 점에서 이전 Python 버전과 근본적으로 다릅니다. 프로그래머는 일반적으로 작은 업데이트(예: 2.6에서 2.7로)에 대해 걱정할 필요가 없습니다. 왜냐하면 일반적으로 Python의 내부 작동만 변경하고 프로그래머가 구문을 변경할 필요가 없기 때문입니다. Python 2.7(Python 2의 최종 버전)과 Python 3.0 간의 변경 사항은 훨씬 더 중요하므로 Python 2.7에서 작동하는 코드를 Python 3.0에서 작동하려면 다르게 작성해야 할 가능성이 높습니다.
Python 2와 Python 3의 주요 차이점은 무엇인가요?
1. 출력 --print
Python 2에서는 "print"가 명령문으로 처리됩니다. 기능보다는. 가능하더라도 출력하려는 텍스트를 괄호로 묶을 필요는 없습니다. Python의 대부분의 다른 작업은 인수를 괄호 안에 넣어야 하는 함수를 사용하기 때문에 혼란스러울 수 있습니다. 출력할 항목을 쉼표로 구분한 목록 주위에 괄호를 넣으면 예기치 않은 결과가 발생할 수도 있습니다.
Python 3에서 "print"는 명시적으로 함수로 처리됩니다. 즉, 표준 방식으로 출력하려는 항목을 괄호 안에 함수에 전달해야 합니다. 그렇지 않으면 구문 오류가 발생합니다. . 일부 Python 2 프로그래머는 이러한 변경이 짜증스럽다고 생각하지만 오류 발생을 방지하는 데 도움이 될 수 있습니다.
예:
print 'Hello, Geeks' # Python 3.x 不支持 print('Hope You like these facts')
출력:
Python 2.x의 출력:
#🎜 🎜#
Python 3.x의 출력: 'Hello, Geeks' 인쇄는 Python 3.x에서 지원되지 않습니다. 오류 발생:2. 정수 나누기:
Python 2 소수점 변환 뒤에 숫자가 나오지 않는 숫자는 정수로 처리되므로 나누기 중에 예기치 않은 결과가 발생할 수 있습니다. 예를 들어 Python 2 코드에 3/2 표현식을 입력하면 예상한 대로 1.5가 아닌 1로 평가됩니다. 이것은 Python 2가 나눗셈의 결과를 정수로 가정하고 가장 가까운 정수로 계산을 반올림하기 때문입니다. 결과 1.5를 얻으려면 3.0/2.0을 작성하여 Python에게 부동 소수점 숫자를 반환하도록 알려야 합니다. 즉, 결과에 소수점 이하의 숫자를 포함해야 합니다. Python 3은 기본적으로 3/2를 1.5로 평가하므로 새로운 프로그래머에게 더 직관적입니다.3. 목록 이해 루프 변수:
이전 Python 2.x 버전에서는 목록 이해에서 반복되는 변수가 제공되었습니다. 전역 변수와 동일한 이름을 사용하면 전역 변수의 값이 변경될 수 있으며 이는 일반적으로 원하는 바가 아닙니다. 이 성가신 버그는 Python 3에서 수정되었습니다. 따라서 코드의 나머지 부분에서 변수 값이 누출되거나 엉망이 될 염려 없이 목록 이해에서 이미 제어 변수에 사용된 변수 이름을 사용할 수 있습니다.4. 유니코드 문자열:
默认情况下,Python 3是将字符串存储为Unicode,而如果Python 2要将字符串存储为Unicode,则要求使用“u”标记字符串。Unicode字符串比ASCII字符串更通用,它们都是Python 2的默认字符串,因为它们可以存储来自外语的字母以及表情符号和标准的罗马字母和数字。如果要确保Python 3代码与Python 2兼容,你仍然可以使用“u”来标记Unicode字符串。
5、错误处理:
Python 2和Python 3两个版本的错误处理有一个小的变化。
在python 3.x中,'as'关键字是必需的。例:
try: trying_to_check_error except NameError, err: print err, 'Error Caused' # 不能在Python 3中工作
运行:
Python 2.x中输出:
Python 3.x 中运行,报错:
try: trying_to_check_error except NameError as err: # 'as' 是 Python 3.x 必需的存在的关键字 print (err, 'Error Caused')
运行:
Python 2.x中输出:
Python 3中输出:
6、xrange:
Python 3.x中不存在Python 2.x的xrange()。在Python 2.x中,range返回一个列表,即range(3)返回[0,1,2],而xrange返回一个xrange对象,即xrange(3)返回iterator对象,它与Java迭代器类似,并在需要时生成数字。
如果我们需要多次迭代相同的序列,我们更喜欢range(),因为range提供了一个静态列表。xrange()每次重建序列。xrange()不支持切片和其他列表方法。xrange()的优点是,当任务迭代大范围时,它可以节省内存。
在Python 3.x中,范围函数现在执行xrange在Python 2.x中的功能,因此为了保持代码的可移植性,我们可能希望坚持使用范围。所以Python 3.x的范围函数是来自Python 2.x的xrange。
例:
for x in xrange(1, 5): print(x), for x in range(1, 5): print(x),
运行:
Python 2.x中输出:
Python 3中运行,报错:
选择哪种版本归结为你需要的是什么库
Python 2已经存在更长时间,这可能是一个优势,并不是所有可用于Python 2的库都已移植到Python 3.另一方面,一些开发人员正在为Python 3创建可能与Python 2不兼容的库。对于很多人来说,决定使用Python 2还是Python 3取决于他们想要使用哪些库。当然,如果你正在学习Python来处理现有的Python应用程序,那么学会使用编写软件的Python版本是有意义的。
许多人认为Python 3是Python 2的改进版本,因为一些更新消除了程序员常见的错误(参见上面的打印示例)。如上所述,一些更改使Python 3更易于初学者理解。因此,不需要使用任何特定库的新程序员可能会考虑学习Python 3,因为在未来几年可能会逐渐转向新语言,因为Python 2的更新停止并支持旧版本该语言版本减少。用法统计显示使用Python 3的程序员数量已逐渐增加。
除非有明确的理由选择一个版本的Python而不是另一个版本,例如需要处理用Python 2编写的现有代码,否则不值得担心这个决定。大多数语法在每种语言版本中都是相同的。如果你需要从Python 2切换到Python 3,反之亦然,那么熟悉打印语句/函数的更改以及Python处理整数除法的方式之间的差异不应花费太长时间。
总结:以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。
위 내용은 Python2와 Python3의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!