1.请观看下列代码并回答问题:

import collections
from random import choice Card = collection.namedtuple('Card', ['rank', 'suit']) class FrenchDeck:
ranks = [str(n) for n in range(2, 11)] + list('JQKA')
suits = 'spades diamonds clubs hearts'.split() def __init__(self):
self._card = [Card(rank, suit) for suit in self.suits
for rank in self.ranks] def __len__(self):
return len(self._card) def __getitem__(self, position):
return self._cards[position] #1
beer_card = Card('7', 'diamonds')
print(beer_card)
deck = FrenchDeck()
print(len(deck))
print(deck[0])
print(deck[-1])
#2
print(choice(deck))
print(choice(deck))
print(choice(deck))

(1)写出#1段代码的输出

(2)判断:

2段代码的输出一定不一样

FrenchDeck是可迭代的,也可以反向迭代

FrenchDeck是怎么样也无法改变顺序的(除非破坏这个类的封装性)

答案:

(1):
Card(rank=7, suit='diamonds')
52
Card(rank='2', suit='spades')
Card(rank='A', suit='hearts')
(2):



2.请观看下列代码并回答问题:

from math import hypot

class Vector:
def __init__(self, x=0, y=0):
self.x = x
self.y = y def __repr__(self):
return 'Vector(%r, %r)' % (self.x, self.y) def __abs__(self):
return hypot(sef.x, self.y) def __bool__(self):
return bool(abs(self)) def __add__(self, other):
x = self.x + other.x
y = self.y + other.y
return Vector(x, y) def __mul__(self, scalar):
return Vector(self.x * scalar, self.y * scalar) v1 = Vector(2, 4)
v2 = Vector(3, 1)
print(v1 + v2) v = Vector(3, 4)
print(abs(v))
print(v * 3)
print(abs(v * 3))

(1)写出#1段代码的输出

(2)判断:

__init__是用来初始化Vector类的

__repr__是用来输出对象的字符串表达形式的

__mul__是用来求Vector的模的

答案:

Vector(4, 5)
5.0
Vector(9, 12)
15.0



3.请观看下列代码并回答问题:

>>>t = (1, 2, [30, 40])
>>>t[2] += [50, 60]

请问下列哪个说法是对的:

A. t变成(1, 2, [30, 40, 50, 60])

B. 因为tuple不支持对它的元素赋值,所以会抛出TypeError异常

C. 以上两个都不对

D. A和B都是对的

答案:

D

--未完待续--

最新文章

  1. SIFT特征提取分析
  2. Vmware /CentOS访问Windows中的文件
  3. Matlab学习(一):数字图像处理大作业用到的函数
  4. PHP中的赋值运算符
  5. java--vo
  6. c#中@符号作用
  7. mac更新node
  8. Highcharts20151130
  9. c#浅谈反射内存的处理
  10. html或jsp实现打印三种方法
  11. shell脚本调用C语言之字符串切分之strtok函数
  12. 从Object和Function说说JS的原型链
  13. [js高手之路]Node.js模板引擎教程-jade速学与实战1
  14. 201521123053《Java程序设计》第八周学习总结
  15. ubuntu16.04下编译安装vim8.1
  16. PHP单一文件入口框架简析
  17. java中Char到底是什么格式的编码
  18. C和C指针小记(二)-注释,三字母词,编译选项
  19. nodeJs项目 相关命令
  20. iOS.Thread.OSAtomic

热门文章

  1. openEuler网络配置+换源+桌面环境ukui等基本环境部署
  2. [SPDK/NVMe存储技术分析]003 - NVMeDirect论文
  3. 74CMS 3.0 CSRF漏洞
  4. Session Cookie Token Json-Web-Token
  5. 论文解读(GMI)《Graph Representation Learning via Graphical Mutual Information Maximization》
  6. Java 中的 LinkedList 是单向链表还是双向链表?
  7. Mybatis 开发 dao 的方法
  8. 企业流程再造(BPR)--系统重构
  9. 开关电源PCB排版,基本要点分析
  10. Blog Ideas