Python夺命20问
2024-08-30 05:13:53
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
--未完待续--
最新文章
- SIFT特征提取分析
- Vmware /CentOS访问Windows中的文件
- Matlab学习(一):数字图像处理大作业用到的函数
- PHP中的赋值运算符
- java--vo
- c#中@符号作用
- mac更新node
- Highcharts20151130
- c#浅谈反射内存的处理
- html或jsp实现打印三种方法
- shell脚本调用C语言之字符串切分之strtok函数
- 从Object和Function说说JS的原型链
- [js高手之路]Node.js模板引擎教程-jade速学与实战1
- 201521123053《Java程序设计》第八周学习总结
- ubuntu16.04下编译安装vim8.1
- PHP单一文件入口框架简析
- java中Char到底是什么格式的编码
- C和C指针小记(二)-注释,三字母词,编译选项
- nodeJs项目 相关命令
- iOS.Thread.OSAtomic
热门文章
- openEuler网络配置+换源+桌面环境ukui等基本环境部署
- [SPDK/NVMe存储技术分析]003 - NVMeDirect论文
- 74CMS 3.0 CSRF漏洞
- Session Cookie Token Json-Web-Token
- 论文解读(GMI)《Graph Representation Learning via Graphical Mutual Information Maximization》
- Java 中的 LinkedList 是单向链表还是双向链表?
- Mybatis 开发 dao 的方法
- 企业流程再造(BPR)--系统重构
- 开关电源PCB排版,基本要点分析
- Blog Ideas