python基本代码以不同的方式打印

2024-06-26 02:41:26 发布

您现在位置:Python中文网/ 问答频道 /正文

[基本上,视频中的教授正在测试完全相同的基本代码,但他打印的代码是“奇”的,而我的python程序打印的是“偶数”,应该是“偶数”的,为什么使用完全相同的代码时打印的方式不同?你知道吗

视频链接在这里https://youtu.be/Pij6J0HsYFA?t=1942]1

x = 15
if (x/2)*2 == x:
    print('Even')
else: print('Odd')

Tags: 代码https程序视频if链接方式be
4条回答

因为讲师使用的是Py2,而您使用的是Py3。你知道吗

在python2中,整数除以的结果是一个整数,它被截断:15 / 2 == 7。因为7 * 2 != 15,讲师打印Odd。你知道吗

在python3中,如果需要保留实际值,则整数除以的结果是一个浮点:15 / 2 == 7.5,因此打印Even。你知道吗

保留类型和楼层的等效Py3操作的结果将是15 // 2 == 7。你知道吗

整数除法在Python2.7和Python3.X中的行为不同

C:\Users\Kevin\Desktop>py -2
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 15/2
7
>>> (15/2)*2
14
>>> ^Z


C:\Users\Kevin\Desktop>py -3
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:38:48) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 15/2
7.5
>>> (15/2)*2
15.0
>>>

教授可能用的是2.7,而你可能用的是3.X

在任何情况下,最好使用模数来检查数字的均匀性,因为它不依赖于特定于版本的行为。你知道吗

>>> def is_even(x):
...     return x%2 == 0
...
>>> is_even(15)
False
>>> is_even(16)
True
>>> is_even(17)
False

相关问题 更多 >