python和python3的区别

如果设置python,输入如下代码:
a=int(input())
if a%40==0:
b=a/40
print(b)
else:
e=a/40
c=int(e)
d=c+1
print(d)
系统显示accepted
但如果换成python3,则无法通过(AC:6;WA:4)
而如果输入如下代码:
a=int(input())
if(a%40==0):
    print(a//40)
else:
    print(a//40 + 1)
无论是python还是python3都显示accepted
请问这是为什么?二者区别在哪里?

1 条评论

  • @ 2020-01-08 16:11:30

    经过查找资料,我学习到了python2和python3的如下区别:

    以下每一行每一项分别对应:区别 python2 python3 说明
    print print 'abc' print('abc') print从语句变为函数
    加不加括号决定了函数和语句的区别,在类里是属性和方法的区别。
    除以 1/2=0 1/2=0.5 1//2=0 python2 / 和python3 // 意义均为除以后保留整数
    py2的除法中不是浮点数则只返回商,py3除法返回值正常。
    *
    range xrange range 重命名
    不等于 < >或!= !=

    运行程序 识别相同目录下普通文件夹中的模块 识别文件夹标识后的包中的模块

    输入 raw_input('') input('')

    默认编码 ASCII utf-8 py2出现中文时需要在第一行加上#coding=utf-8,而py3不需要。
    与MySQL的交互 安装MySQLdb pymsql

    urllib urllib2或urllib3 urllib3
    打开或创建文件 open()或file() open()

    队列 Queue queue

    缩进机制 1个tab键和8个space等价 1个tab只能找另外一个tab替代 py2可以同时允许tab和space在代码中共存,而py3不允许。
    加密 import md5或者import hashlib import hashlib

    返回对象 列表 容器 py3可以使用迭代器取出,有的也可以直接list()强制转换.
    如dictionary关联的keys()、values()、items(),zip(),map(),filter()
    库的名称 _winreg
    ConfigParser
    copy_reg
    SocketServer
    repr winreg
    configparser
    copyreg
    sochetserver
    reprlib

    从表中加粗部分可以获知这个问题的原因。
    综合上面的对比分析,我发现:
    1.在Python2版本有些死板,而python3越来越摆脱关于程序的死板,有着一些类似“智能”的变通;
    2.py2兼容能力比较强,有些情况下两种表达方式都可以被py2接受;py3表示方法更单一,涵盖更多,但py2有些表示就不再适用了,如:Python3中range的机制也进行修改并提高了大数据集生成效率,即涵盖了xrange的功能。也正是因此,在做题过程中,有些表达python和python3都可以认可,而有的只有python接受;
    3.py3对py2的编码方式进行了优化,比如输入中文很方便;且py3比py2编写起来更加方便快捷,比如:分子小于分母的正整数相除时得到的都是0,但是在3.X里面已经没有了这方面的问题;又比如:减少了大写字母和符号_的使用。

  • 1

信息

ID
1010
难度
8
分类
(无)
标签
(无)
递交数
2126
已通过
186
通过率
9%
上传者