zoukankan      html  css  js  c++  java
  • Python3与Python2的差异


    基于python3浅谈python3与python2的差异。由于现今主流Python3,但是之前用Python2做的项目,还得维护,所以作为python工作者,不免要了解其中差异,其中,Python2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。而 Python3.X 源码文件默认使用utf-8编码,以及一个字节类:byte 和 bytearrays。这就使得以下代码是合法的:

    编码差异:

    我 = 'zhongguo'

    print(我)

    Python3结果:zhongguo

    :python2中是不合法的,不论是代码还是注释都是不能出现汉字的,除非申明:#!/usr/bin/python -*- coding: UTF-8 -*-

    作为一种默认规范或者代码素养,通常不用汉字,尽量让代码写的python点!


    python3与python2最大的区别就是print输出请参考print的使用:https://blog.csdn.net/u010986753

    Python 3版本中print语句没有了,取而代之的是print()函数。

    print差异:

    正确输出"life is short we neeed python!"代码如下:

    print('life is short we neeed python!')

    Python3结果:life is short we neeed python!

    Python2中的打印:

    print "life is short we neeed python!"/

    print 'life is short we neeed python!'/

    print ('life is short we neeed python!')

    输出结果都是一样的!

    整除差异

    > print(7/3)>

    Python3结果:2.3333333333333335

    > Python2结果:2

    > Python3表示整除是print(7//3)

    不等号的差异:

    Python2中不等于有两种写法 != 和 <>

    Python3中去掉了<>, 只有!=一种写法

    整型的差异:

    Python2中有一种整型—int和长整型-long

    Python3中只有一种整型—int

    提示信息的差异:

    Python2中raw_input( "提示信息" )和input( "提示信息" )

    Python3中只有input( "提示信息" )

    打开文件的差异:

    Python2中file( ..... )或 open(.....)

    Python3中只有open(.....)

    map、filter 和 reduce的差异:

    Python2在交互模式下:

    >>> map

    <built-in function map>

    >>> filter<built-in function filter>

    >>> reduce<built-in function reduce>

    它们输出的结果类型都是列表:

    >>> map(lambda x:x +2, [4,1,3])

    [6, 3, 5]

    >>> filter(lambda x:x %2 ==0,range(9))

    [0, 2, 4, 6, 8]

    Python3在交互模式下:它们从函数变成了类,其次,它们的返回结果也从当初的列表成了一个可迭代的对象

    >>> map<class 'map'>

    >>> map(print,[1,2,3])

    <map object at 0x10d8bd400>

    >>> filter<class 'filter'>

    >>> filter(lambda x:x % 2 == 0, range(10))

    <filter object at 0x10d8bd3c8>

    遍历元组

    对于比较高端的 reduce 函数,它在 Python3中已经不属于 built-in 了,被挪到 functools 模块当中。如果需要编写一个遍历元组的列表解析,Python2不需要在元组值周围加上括号。在python3里,这些括号是必需的。

    Python2中[ i for i in 1, 2]

    Python3中[i for i in (1,2)]

    获得一定范围内的数字

    python2里,有两种方法获得一定范围内的数字:range(),返回一个列表,还有xrange(),返回一个迭代器。

    python3 里,range()返回迭代器,xrange()不再存在。

    Python2中[ i for i in 1, 2]

    Python3中[i for i in (1,2)]

    欢迎关注小婷儿的博客 https://blog.csdn.net/u010986753不足之处请留言,会尽快修改!

    欢迎关注小婷儿的博客:
        文章内容来源于小婷儿的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解     有趣的事,Python永远不会缺席!
        如需转发,请注明出处:小婷儿的博客python    https://www.cnblogs.com/xxtalhr/
        博客园:https://www.cnblogs.com/xxtalhr/
        CSDN:https://blog.csdn.net/u010986753
    有问题请在博客下留言或加作者:
         微信:tinghai87605025
         QQ :87605025
         python QQ交流群:py_data 483766429

    培训说明:
         OCP培训说明连接:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA
         OCM培训说明连接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA
         小婷儿的python正在成长中,其中还有很多不足之处,随着学习和工作的深入,会对以往的博客内容逐步改进和完善哒。重要的事多说几遍。。。。。。
  • 相关阅读:
    11111 Generalized Matrioshkas
    Uva 442 Matrix Chain Multiplication
    Uva 10815 Andy's First Dictionary
    Uva 537 Artificial Intelligence?
    Uva 340 MasterMind Hints
    SCAU 9508 诸葛给我牌(水泥题)
    Uva 10420 List of Conquests(排序水题)
    Uva 409 Excuses, Excuses!
    10/26
    11/2
  • 原文地址:https://www.cnblogs.com/pythonbao/p/9037411.html
Copyright © 2011-2022 走看看