ㅋㅋㅋ
1. print Function
2. Unicode3. Division 연산4. Exception5. 9. 여러 모듈의 이름이 변경되었습니다(PEP8에 따라) 10. 데이터 유형
차이점
Python 3.0 버전은 종종 python3000 또는 줄여서 py3k 버전으로 불리며, 이는 큰 업그레이드입니다. 너무 많은 부담을 주지 않기 위해 python3.0은 이전 버전을 염두에 두고 설계되지 않았습니다. python3.0에서는 python 버전이 정상적으로 실행되지 않습니다. 기존 프로그램을 관리하기 위해 python2.6은 기본적으로 python2.x의 구문과 라이브러리를 사용하는 전환 버전이며 python3.0으로의 마이그레이션도 허용합니다. 일부 python3.0 구문 및 함수 사용 실행 환경에서 python3.0을 설치할 수 없거나 프로그램 자체가 python3.0을 지원하지 않는 타사 라이브러리를 사용하지 않는 한 프로그램에서는 python3.0 버전의 구문을 사용할 것을 권장합니다. 현재 Python을 지원하지 않는 타사 라이브러리로는 Twisted, py2exe, PIL 등이 있습니다.print "我是菜鸟"print (我是菜鸟) #注意print后边有个空格print("我是菜鸟") #print()不能带有其他任何参数
from _future_import print_functionprint("我是个菜鸟","我好菜啊",sep=', ')
我没女友='I have no girlfriends'print(我没女友)
#python2.x与3.x-1//2 #输出值是-1
여러 범주의 예외를 동시에 포착하려면 Except(exc1,exc2) 구문을 var로 사용하세요. python2.6은 이미 이 두 가지 구문을 지원합니다. ·2.x 시대에는 모든 유형의 객체를 직접 던질 수 있습니다. 3.x 시대에는 BaseException을 상속받은 객체만 던질 수 있습니다. ·2.x raise 문은 쉼표를 사용하여 던져진 객체 유형과 매개변수를 구분합니다. 3.x에서는 이 이상한 쓰기 방법을 취소하고 생성자를 직접 호출하여 객체를 던집니다.
2.x 시대에는 코드의 예외가 프로그램 오류를 나타낼 뿐만 아니라 일반적인 제어 구조에서 수행해야 하는 작업도 수행하는 경우가 많습니다. 3.x에서는 디자이너가 예외를 더 구체적으로 만든 것을 볼 수 있습니다. 오류가 발생하는 경우에만 예외 포착 문을 사용하여 이를 처리할 수 있습니다.
5. 예: for 루프 또는 목록/설정/사전 이해.
이는 생성기와 매우 유사하게 동작합니다(예: "지연 평가"). 하지만 이 xrange-iterable은 무한합니다. 즉, 무한히 탐색할 수 있다는 의미입니다.
6. 8진수 리터럴은
을 의미합니다.
八进制必须写成0o777,原来的形式0777不能用了;二进制0b111。新增了一个bin()函数用于将一个整数转换成二进制字串。python2.6已经支持这两种语法
7.不等运算符
python2.x中不等于 !=和<>
python3.x中不等于只有!=
8.去掉了repr表达式"
python2.x中反引号"相当于repr函数的作用
python3.x中去掉了"这种写法,只允许repr函数,感觉repr只有debug的时候才用,多数时候还是用str函数来用字符串描述对象。
9.多个模块被改名(根据PEP8)
旧名字 | 新名字 |
---|---|
_winreg | winreg |
ConfigParser | configparser |
copy_reg | copyreg |
Queue | queue |
SocketServer | socketserver |
repr | reprlib |
StringIO模块现在被合并到新的io模组内new,md5,gopherlib等模块被删除 。python2.6已经支援新的io模组。
httplibBase,HTTPServer,CGIHTTPServer,SimpleHTTPServer,Cookie,cookerlib被合并到http包内。取消了exec语句只剩下exec()函数。python2.6已经支援exec()函数。
10.数据类型
python3.x去除了long类型,现在只有一种整型——int
新增了bytes类型,对应于2.x版本的八位串,定义一个butes字面量方法如下
b=b'lalala'type(b)#输出<type 'bytes'>
str对象和bytes对象可以使用encode()(str->bytes)or.decode()(bytes->str)方法互相转换。
s=b.decode()b1=s.encode()
dict的.keys()、.items和.values()方法返回迭代器,而之前的iterkeys()等函数都被遗弃。同事去掉的还有dict.has_key(),用in替代它吧>_<。
总结
总之一句话,用python3吧,不要再倔强了!
才开始学习计算机不久,第一次写博客,如果有问题希望大家指正,希望我们能一起学习一起进步。共勉!
위 내용은 Python2와 3의 차이점을 설명하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!