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

  1. import collections
  2. from random import choice
  3. Card = collection.namedtuple('Card', ['rank', 'suit'])
  4. class FrenchDeck:
  5. ranks = [str(n) for n in range(2, 11)] + list('JQKA')
  6. suits = 'spades diamonds clubs hearts'.split()
  7. def __init__(self):
  8. self._card = [Card(rank, suit) for suit in self.suits
  9. for rank in self.ranks]
  10. def __len__(self):
  11. return len(self._card)
  12. def __getitem__(self, position):
  13. return self._cards[position]
  14. #1
  15. beer_card = Card('7', 'diamonds')
  16. print(beer_card)
  17. deck = FrenchDeck()
  18. print(len(deck))
  19. print(deck[0])
  20. print(deck[-1])
  21. #2
  22. print(choice(deck))
  23. print(choice(deck))
  24. print(choice(deck))

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

(2)判断:

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

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

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

答案:

  1. (1):
  2. Card(rank=7, suit='diamonds')
  3. 52
  4. Card(rank='2', suit='spades')
  5. Card(rank='A', suit='hearts')
  6. (2):



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

  1. from math import hypot
  2. class Vector:
  3. def __init__(self, x=0, y=0):
  4. self.x = x
  5. self.y = y
  6. def __repr__(self):
  7. return 'Vector(%r, %r)' % (self.x, self.y)
  8. def __abs__(self):
  9. return hypot(sef.x, self.y)
  10. def __bool__(self):
  11. return bool(abs(self))
  12. def __add__(self, other):
  13. x = self.x + other.x
  14. y = self.y + other.y
  15. return Vector(x, y)
  16. def __mul__(self, scalar):
  17. return Vector(self.x * scalar, self.y * scalar)
  18. v1 = Vector(2, 4)
  19. v2 = Vector(3, 1)
  20. print(v1 + v2)
  21. v = Vector(3, 4)
  22. print(abs(v))
  23. print(v * 3)
  24. print(abs(v * 3))

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

(2)判断:

__init__是用来初始化Vector类的

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

__mul__是用来求Vector的模的

答案:

  1. Vector(4, 5)
  2. 5.0
  3. Vector(9, 12)
  4. 15.0



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

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

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

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

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

C. 以上两个都不对

D. A和B都是对的

答案:

  1. D

--未完待续--

Python夺命20问的更多相关文章

  1. powershell玩转xml之20问

    powershell玩转xml之20问 powershell 传教士 原创文章 2014-01-30,2015-10-27改 允许转载,但必须保留名字和出处,否则追究法律责任 问:xml文件编码情况如 ...

  2. 二十. Python基础(20)--面向对象的基础

    二十. Python基础(20)--面向对象的基础 1 ● 类/对象/实例化 类:具有相同属性.和方法的一类人/事/物 对象(实例): 具体的某一个人/事/物 实例化: 用类创建对象的过程→类名(参数 ...

  3. python day 20: 线程池与协程,多进程TCP服务器

    目录 python day 20: 线程池与协程 2. 线程 3. 进程 4. 协程:gevent模块,又叫微线程 5. 扩展 6. 自定义线程池 7. 实现多进程TCP服务器 8. 实现多线程TCP ...

  4. python面试必问 知识整理

      一 数据类型 1 数字 整型与浮点型   #整型int 作用:年纪,等级,身份证号,qq号等整型数字相关 定义: age=10 #本质age=int(10) #浮点型float 作用:薪资,身高, ...

  5. 10个Python面试常问的问题

    概述 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试官经常问的问题,供大家参考学习. 类继承 有如下的 ...

  6. Python面试常问的10个问题

    很多人想找Python工作,面试往往在基础知识点采坑了 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试 ...

  7. Python学习--20 Web开发

    HTTP格式 HTTP协议是基于TCP和IP协议的.HTTP协议是一种文本协议. 每个HTTP请求和响应都遵循相同的格式,一个HTTP包含Header和Body两部分,其中Body是可选的. HTTP ...

  8. Python学习(20):Python函数(4):关于函数式编程的内建函数

    转自http://www.cnblogs.com/BeginMan/p/3178103.html 一.关于函数式编程的内建函数 apply()逐渐被舍弃,这里不讨论 1.filter() #filte ...

  9. python学习(20) 网络编程

    原文链接:http://www.limerence2017.com/2018/01/02/python20/ python 网络编程和基本的C语言编程一样,效率不是很高,如果为了封装通信库建议采用C/ ...

随机推荐

  1. Arcmap软件报错:This application cannot run under a virtual machine arcmapr, 但是你并没有使用虚拟机

    在任务栏搜索"启用或关闭 windows 功能",取消 "适用于 Linux 的 Windows 子系统" (有可能还需要 取消 "虚拟机平台&quo ...

  2. redis持久化 RDB与AOF

    redis持久化 RDB与AOF RDB与AOF区别 rdb: 基于快照的持久化,速度更快,一般用做备份,主从复制也是依赖于rdb持久化功能 aof:以追加的方式记录redis操作日志的文件,可以最大 ...

  3. SQL存储过程的学习01

    虽工作多年,但是sql的存储过程一致都没怎么用过,今天来按照博客https://www.cnblogs.com/applelife/p/11016674.html来学习一下(我使用postgre sq ...

  4. WIRESHARK 提取百度云客户端中的下载地址

    序言:近两年感觉云盘是越来越不行了,什么115,360,华为,新浪一些网盘纷纷关门,现在手里能用的就只剩下一个百度云坚挺着.可那速度,简直感人,好吧,没钱冲VIP,就去找了一个破解版,用了一年,爽得飞 ...

  5. Java多线程之线程同步【synchronized、Lock、volatitle】

    线程同步 线程同步:当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多. ...

  6. wifi钓鱼

    无线网络的加密方式和破解方式 1.WEP加密及破解 1).WEP加密方式 有线等效保密(wired euivalent pricacy,WEP)协议的使用RC4(rivest cipher4)串流加密 ...

  7. mmap代替通用IO读取文件数据(curious)

    提供一份测试demo: #include <stdio.h> #include <string.h> #include <stdlib.h> #include &l ...

  8. APUE1--3.8-3.10wirte、read函数以及IO效率

    1read函数 #include<unistd.h> ssize_t read(int fd,void* buf,size_t nbytes) 返回值:读到的字节数,若已到文件尾,返回0; ...

  9. 麒麟系统开发笔记(二):国产麒麟系统搭建Qt开发环境安装Qt5.12

    前言   开发国产应用,使用到银河麒麟V4,V10,本篇以V10记录,参照上一篇可安装V4.V7.V10三个版本,麒麟V4系自带了Qt,麒麟V10没有自带Qt,需要自己编译搭建环境.   银河麒麟V1 ...

  10. 为什么在重写 equals 方法的时候需要重写 hashCode 方法?

    因为有强制的规范指定需要同时重写 hashcode 与 equal 是方法,许多容器类, 如 HashMap.HashSet 都依赖于 hashcode 与 equals 的规定.