五道有意思题目的解析

今天分享五道有意思的题目,测试一下我们对Python基础知识了解多少!(大牛就可以不用看了)

注:所有的题目均在Python3.5.4的环境下测试

正文

第一题

1

分别输出什么?

解析:

为什么之前要提及是在Python3.5.4环境下呢?因为Python2和Python3执行这些语句是不同的。例如在Python3下的答案是:

Python2下的答案是:

在执行除法的时候结果是不同的。

因为在Python 2中,’/’执行传统除法,如果操作数都是整数的话,执行截断的整数除法(即对于结果只保留整数部分),否则,执行浮点除法(保留余数);’//’执行Floor除法,与Python3一样,对于整数执行截断除法,浮点数执行浮点除法。

在Python 3中,’/’总是执行真除法,不管操作数的类型,都会返回包含任何余数的浮点结果;’//’执行Floor除法,截除掉余数并且针对整数操作数返回一个整数,如果有任何一个操作数是浮点数,则返回一个浮点数。

第二题

2

请问程序是否报错?如果未报错,程序输出什么?

解析:

因为我们对列表进行切片,返回的也是一个列表;num[6:]本身是不存在的,所以返回[];而num[:6]这个切片实际上是返回索引从0-5的列表,所以当然是全部打印了。

第三题

3

请问程序输出什么?

解析:

第一种情况:在Python中,”==” 操作符测试值的相等性; “is”表达式测试对象的一致性,即是否指向同一个对象。list1和list2的值是相等的,但是它们是不同的对象,有不同的内存区域。

第二种情况:结果或许你会惊讶,觉得这组得到的结果应该和上组得到的结果一致。事实上,内存中只有一个字符串'abc'供str1和str2共享。这个主要是因为在Python内部会暂时存储并重复使用短字符串。也就是说当创建短字符串的时候会首先到字符串的内存区域查找是否已经有该字符串相等的值存在,如果有则会指向该内存区域,否则重新开辟内存。

注意:短字符串中可不能有空格啊。

第四题

4

请问程序输出什么?

解析:

x=1

因为变量是有自己的作用域的,fun(x)函数中的x变量和函数外的x变量各自的作用域不同,不会相互影响。除非在fun()函数中增加global这个关键字。如:

第五题

5

请问程序输出什么?

解析:

sort方法来将这个列表排序,但是因为sort方法会返回None,这个循环会失败。

加入我们的学习交流QQ群,一起学习吧!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180108G00GW400?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区