python---机器学习【5】(08-08)

P= \frac{c_{26}^1\times c_{26}^1 }{c_{52}^2}=\frac{26*26}{26*51}Date: 2019-08-08

1. 下列代码运行结果是?

a = map(lambda x: x**3, [1, 2, 3])
list(a)

结果: [1, 8, 27]

解释: 

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

语法

map() 函数语法:

1

map(function, iterable, ...)

参数

  • function -- 函数
  • iterable -- 一个或多个序列

返回值

Python 2.x 返回列表。

Python 3.x 返回迭代器。

2.  当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包,以下代码输出值为:

def adder(x):
    def wrapper(y):
        return x + y
    return wrapper
adder5 = adder(5)
print(adder5(adder5(6)))

结果; 16

解释: 

adder(5) #返回了 wrapper ,且x=5 

adder5 = adder(5) #    adder5是对wrapper的引用   此时x等于5

adder5(6) # 相当于 wrapper(6)  = 5+6=11 所以 adder5(6)  =11 ,同理adder5(7)=12

adder5(adder5(6)) # = adder5(11) =  wrapper(11) =5+11=16 

3.  Linux文件权限一共10位长度,分成四段,第三段表示的内容是  (表示用户所在组group所拥有的权限)

解释:

1位表示文件类型 -表示普通文件,d表示目录文件(第一段)

2-4位表示文件所有者的读写执行权限 (第二段)

5-7位表示文件所有者所在属组的读写执行权限 (第三段)

8-10位表示文件的其它用户的读写执行权限(第四段)

4. 正常建立一条TCP连接需要(3)个步骤,正常关闭一个TCP连接需要(4)个步骤

解释:3次握手,4次挥手。

5.  一副牌52张(去掉大小王),从中抽取两张牌,一红一黑的概率是多少 =26/51

解释:直接计算P= \frac{c_{26}^1\times c_{26}^1 }{c_{52}^2}=\frac{26*26}{26*51}

6.  

对于以下代码,

char* p=new char[100];

正确的是:    p在栈上,new出来的在堆上

解释:  p是一个指针,所以存储在栈上,p中存储的是新建的动态内存的地址,新建的动态内存在堆上

7.  这是第25道选择题,也是最后一道选择题。

请估算一下,包括本题在内,这25道选择题题干及选项总共大约有多少个字符? 2000

A.500

B.1000

C.2000

D.4000

解释:这题的意思是:在本题的基础上进行估计。题干56字符+选项15字符   估算(56+15)*25=1775 ~=2000 

8.   在黑盒测试方法中,设计测试用例的主要根据是   程序外部功能

9. 1台机器对200个单词进行排序花了200秒(使用冒泡排序),那么花费800秒,大概可以对多少个单词进行排序? 400

解释: 首先要预先知道冒泡排序算法的时间复杂度是O(n^2). 

所以200*200 : 200    

        n*n  :800

又因为800/200=4

所以n 等于对200*200*4开根号得 400。

10.  以下开源软件中经常被用作消息队列的是哪个? A

A. Kafka

B.MongoDB

C.Hadoop

D.Spark

补充解释: 卡夫卡(Kafka)常作为消息队列(另外redits也可以写消息队列),MongoDB是一种数据库,hadoop是分布式集群,Spark是基于hadoop的一种分布式计算框架。

11.  目前移动设备主流的屏幕帧率是每秒()帧? 60

12. 一个栈的入栈序列为ABCDE,则栈的不可能的输出序列为 D(回忆剑指offer上的判断是否是出栈序列的编程题解题思路

A. DCBEA

B.ACBED

C.DCEBA

D.DEBCA

记住栈是“先进后出”的数据结构就可以逐一进行排查!

13.  从sd卡加载一张图片为bitmap并显示到屏幕上的一个view,该view占用的内存主要和什么因素有关 ?

bitmap分辨率和颜色位数

14.  下列代码输出为:6

str1 = "Hello,Python";
str2 = "Python";
print(str1.index(str2));

15.  一个包里有5个黑球,10个红球和17个白球。每次可以从中取两个球出来,放置在外面。那么至少取________次以后,一定出现过取出一对颜色一样的球。  结果:16

解释:考虑极端情况下:白球数最多,超过另外两种球的数量之和,则进行极端取法:前面每次取一个白球,取完黑和红球是第15次,则在第16次必定是两个白球。

牛客上就是:

考虑最坏情况

黑球用B表示

红球用R表示

白球用W表示

前面15次取球情况

(B,W)(B,W) (B,W) (B,W) (B,W)

(R,W)(R,W) (R,W) (R,W) (R,W) (R,W) (R,W) (R,W) (R,W) (R,W)

最后只剩下两个白球了(W,W)

所以至少16次,才一定出现。

16.  下面关于ID3算法中说法错误的是(D)

A.ID3算法要求特征必须离散化 (对,必须离散化)

B. 信息增益可以用熵,而不是GINI系数来计算(对,信息增益就是利用熵的知识进行的计算)

C.选取信息增益最大的特征,作为树的根节点(每个节点特征的选择,即是选取相应子集中信息增益最大的那个特征作为划分节点)

D.ID3算法是一个二叉树模型(错,ID3并不是一个二叉树模型,是一个多叉树模型,叉的数量主要根据节点特征的类别数量)

补充解释:

ID3算法(Iterative Dichotomiser 3 迭代二叉树3代)是一个由Ross Quinlan发明的用于决策树算法。可以归纳为以下几点:

  1. 使用所有没有使用的属性并计算与之相关的样本熵值
  2. 选取其中熵值最小的属性
  3. 生成包含该属性的节点

D3算法对数据的要求:

    1) 所有属性必须为离散量;

    2) 所有的训练例的所有属性必须有一个明确的值;

    3) 相同的因素必须得到相同的结论且训练例必须唯一。

17.下列哪个不属于CRF模型对于HMM和MEMM模型的优势()B

A.特征灵活

B.速度快

C.可容纳较多上下文信息

D. 全局最优

解释

隐马尔可夫模型(Hidden Markov Model,HMM),最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)以及条件随机场(Conditional Random Field,CRF)是序列标注中最常用也是最基本的三个模型。


*** HMM模型是对转移概率和表现概率直接建模,统计共现概率。
*** MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率,但MEMM容易陷入局部最优,是因为MEMM只在局部做归一化。
*** CRF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置(label bias)的问题。

CRF优点: 

1)  CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。特征设计灵活。(与ME一样) ————与HMM比较
2) 由于CRF计算全局最优输出节点的条件概率,它还克服了最大熵马尔可夫模型标记偏置(Label-bias)的缺点。 ­­————与MEMM比较
3) CRF是在给定需要标记的观察序列的条件下,计算整个标记序列的联合概率分布,而不是在给定当前状态条件下,定义下一个状态的状态分布。
缺点: CRF需要训练的参数更多,与MEMM和HMM相比,它存在训练代价大、复杂度高的缺点。

18.在移动设备息屏时,以下哪种情况不一定导致大量耗电  D

A. 使用gps导航

B.信号特别弱

C.电话通话中

D.打开过大量应用

19.  关于Python中的复数,下列说法错误的是  C

A. 表示复数的语法是real + image j

B.实部和虚部都是浮点数

C.虚部必须后缀j,且必须是小写(可大写,也可小写)

D. 方法conjugate返回复数的共轭复数

20.在一次大选中候选人A和B进行竞选。候选人A的抽样支持率为60%,95%的置信区间为(50% - 70%),请问在最终大选中候选人A落选的概率与下列哪个最为接近? 2.5%

解释:这题有点绕; 

A落选的情况为:支持率小于50%

而A有95%的概率支持率在50%-70%

所以:A的支持率小于50%和大于70%的概率为5%

因为左右两边置信概率相等,得出小于50%的概率为2.5%

21.  编译程序是一种   翻译程序

补充解释: 

C/C++程序编译连接过程:

源文件→预处理→编译→汇编→链接→可执行文件

22.  Assuming the filename for the code below is /usr/lib/python/person.py
and the program is run as: python /usr/lib/python/person.py
What gets printed?()

class Person:
 def __init__(self):
 pass
 def getAge(self):
 print (__name__)
p = Person()p.getAge()

__name__:name是一个变量,前后加了__ __标记为系统变量,__name__用于标识模块的名字的一个系统变量。

当我单独执行一个模块,我的这个系统变量的值为__main__

当我在模块2导入“这个模块”后,”这个模块”的__name__值为这个模块的名称:“这个模块”.

‘__main__’:是顶级代码执行的作用域的名称。

***

__name__,

如果是放在Modules模块中,就表示是模块的名字;

如果是放在Classs类中,就表示类的名字;

23.  有如下python代码:

foo = [1,2]
foo1 = foo
foo.append(3)

有如下结果:  foo 值为[1,2,3]  + foo1 值为[1,2,3]

24.  Python中函数是对象,描述正确的是? ABCD

A.函数可以赋值给一个变量
B.函数可以作为元素添加到集合对象中
C.函数可以作为参数值传递给其它函数
D.函数可以当做函数的返回值

解释:在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量、可以作为元素添加到集合对象中、可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的。

 25.  下列有关k-mean算法说法正确的是()AD

A. 不能自动识别类的个数,随机挑选初始点为中心点计算

B.数据数量不多时,输入的数据的顺序不同会导致结果不同(Kmeans优化目标函数的过程中,两步均是遍历所有的点,累加损失。 因此与数据的输入顺序无关。)

C.不能自动识别类的个数,不是随机挑选初始点为中心点计算 (错)

D.初始聚类中心的选择对聚类结果的影响很大

26.  解释型语言的特性有什么?

* 非独立性(JavaScript语言依赖执行环境,对于客户端来说是浏览器,对于服务端来说是node。)

* 低效率性(执行前不需要编译,执行时才编译,因此效率低。)

解释: 

解释性语言和编译性语言的定义:

计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。

解释性语言的定义:
解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。
现代解释性语言通常把源程序编译成中间代码,然后用解释器把中间代码一条条翻译成目标机器代码,一条条执行。

编译性语言的定义:
编译性语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

27.  现在有M个桶,每桶都有N个乒乓球,乒乓球的颜色有K种,并且假设第i个桶第j种颜色的球个数为Cij, 比例为Rij=Cij/N,现在要评估哪个桶的乒乓球颜色纯度最高,下列哪种算法和描述是合理的? BCF (暂时没懂,有争议,欢迎留言!)

B. -∑Cij*LOG(Rij)越小越纯

C.∑(1-Rij*Rij)越小越纯

F.-∑Rij*LOG(Rij)越小越纯

 

1. 一个段代码定义如下,下列调用结果正确的是?

# 类似pow(multiple,n)的作用
def bar(multiple):
    def foo(n):
        return multiple ** n
    return foo

结果: bar(2)(3) == 8

2.  a与b定义如下,下列哪个是正确的?

a = '123'
b = '123'

一些补充解释:

1) 

a,b为字符串不可变类型,所以指向相同地址,所以  a is b

is指地址相同

==内容相同

===内容和格式相同

a+b=‘123123’

2) 

Python中的对象包含三要素:id、type、value

其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值

is判断的是a对象是否就是b对象,是通过id来判断的

在这里,a,b为字符串不可变类型,所以指向相同地址,所以  a is b

==判断的是a对象的是否和b对象的相等,是通过value来判断的

3) 直接说a,b为字符串不可变类型,指向相同地址,所以  a is b 这种说法其实是不对的。这和小数据池有关。如果用python自带的解释器将a,b定义一个超出小数据池的元素例如a = 2777,b=2777,print(a is b) 即会返回False;用pycharm 会返回True这是pycharm本身给优化了。

3.  Python不支持的数据类型有 char

支持的数据类型有: int, float, list, tuple, set, dict 等

补充解释:

python 中的标准数据类型:
                                      图片说明
其中数字类型有:
                                     图片说明
注意:
string 不是 char!!!!
可变数据类型(可改变变量的值,且不会新建对象 ):列表list[ ]、字典dict{ }
不可变数据类型(不允许变量的值发生改变,发生改变时会新建对象 ):整型int、字符串str' '、元组tuple()

4. 下列哪种类型是Python的映射类型? dict  (字典是 Python 语言中唯一的映射类型。)

5.  以下关于协程理解有:(回忆:进程 —— 线程 —— 协程)

一个线程可以运行多个协程; 协程的调度由所在程序自身控制; Linux中线程的调度由操作系统控制

补充解释:协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。

线程由操作系统控制,协程由程序自身控制

6.  下述字符串格式化语法正确的是?   'GNU\'s Not %s %%' % 'UNIX'

补充解释:

python里面%d表数字,%s表示字符串,%%表示一个%;

单引号内嵌套单引号需要转义字符/;单引号内嵌套双引号不需要嵌套;

双引号内嵌套双引号需要转义字符/;双引号内引用单引号不需要转义字符;

7. (看走眼的一题!) 

What gets printed?()

1

2

3

numbers = [1, 2, 3, 4]

numbers.append([5,6,7,8])

print len(numbers)

注意:该题答案是5,而非8. 后面追加的一个元素是一个list,则number = [1, 2, 3, 4, [5, 6, 7, 8]]。如果采用numbers += [5, 6, 7, 8]    那长度就应该是8.

8.  以下代码的结果:

x = 1
def change(a):
    x += 1
    print x
change(x)

报错:UnboundLocalError: local variable 'x' referenced before assignment

原因在于: change(a) 函数内的局部变量 x 在使用前未定义

正确的使用方式:

解法一:用 global 声明变量 x,使其成为全局变量

1

2

3

4

5

6

x = 1

def change(a):

    global x

    x += 1

    print x

change(x)

解法二:将函数内的 x 参数改为 a

1

2

3

4

5

x = 1

def change(a):

    a += 1

    print a

change(x)

9.  

What gets printed?()

print (r"\nwoow")

解果:the text like exactly like this: \nwoow

解释: Python 中字符串的前导 r 代表原始字符串标识符,该字符串中的特殊符号不会被转义,适用于正则表达式中繁杂的特殊符号表示。

最典型的例子,如要输出字符串 \n,由于反斜杠的转义,因此一般的输出语句为:

1

print "\\n"

这里的 \\ 将被转义为 \ 。而采用原始字符串输出时,则不会对字符串进行转义:

1

print r"\n"

10.下面代码结果:

counter = 1
def doLotsOfStuff(): 
    global counter
    for i in (1, 2, 3): 
        counter += 1
doLotsOfStuff()
print counter

结果:4 (注意在函数体内如何引用全局变量)。

11. 下面代码运行后,a、b、c、d四个变量的值,描述错误的是?

import copy
a = [1, 2, 3, 4, ['a', 'b']] 
b = a 
c = copy.copy(a) 
d = copy.deepcopy(a) 
a.append(5) 
a[4].append('c')

a 
Out[78]: [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b
Out[79]: [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c
Out[80]: [1, 2, 3, 4, ['a', 'b', 'c']]
d
Out[81]: [1, 2, 3, 4, ['a', 'b']] 

解释:!!!!

b = a     # 引用,除非直接给a重新赋值,否则a变则b变,b变则a变
c = copy.copy(a)   # 浅复制,只会拷贝父对象, 不会拷贝父对象中的子对象,所以若a的子对象变则c 变,但是父对象变c不会变
d = copy.deepcopy(a) #深拷贝,完全拷贝,完全独立于原对象,a变b也不变
a.append(5) # 改变父对象
a[4].append('c')  #改变父对象中的 ['a', 'b']子对象 

a的存储情况:

首先我们看看看b的情况,b实际上和a指向的是同一个值,就好比人的大名和小名,只是叫法不同,但还是同一个人

 

接下来再看看c的情况,c的情况和a.copy()的情况是一样的,都是我们所谓的浅拷贝(浅复制),浅拷贝只会拷贝父对象,不会拷贝子对象,通俗的说就是只会拷贝到第二层

 

若父对象发生变化,c不会变化,因为它已经复制的所有父对象,假如子对象发生变化则c会变,比如c[4]和a[4]实际都是一个变量list,他们都指向子对象,若子对象发生变化,他们必然都变化,比如变成["a","d"],那它们指向的值也就变成了a、d。

再看看d的情况,这就是我们所说的深复制,不管a进行什么操作,都不会改变d了,他们已经指向不同的值(这里是指在内存中存储的位置不同了)。

总结:

b=a,只是换了一个名字,a怎么变b就怎么变,

c是浅复制,只复制了a的部分值,仍然共用某些值,所以在对a的子对象进行操作时会改变c

d是深复制,完全复制了a的所有值,已经完全与a无关,对a的任何操作都不会影响d

12. 以下代码的输出:

list1 = {'1':1,'2':2}
 list2 = list1
 list1['1'] = 5
 sum = list1['1'] + list2['1']
 print(sum) 

结果:10  参考上题的 a=b的复制时,a怎么变b就怎么变

13.  

请在如下列表中,求出其最大子段和:()7

14.  有一段python的编码程序如下:urllib.quote(line.decode("gbk").encode("utf-16")),请问经过该编码的字符串的解码顺序是( )  结果:url解码 gbk utf16

解释:  

字符串编译的过程:gbk==>unicode==>utf16==>url解码

字符串解码顺序为:url解码==>utf16==>unicode==>gbk

15.  what gets printed? Assuming python version 2.x()

print type(1/2)

结果:Python2 中除法默认向下取整,因此 1/2 = 0,为整型。 

16.  以下声明错误的是:D

A.dic = {}

B.dic = {100:200}

C.dic = {(1,2,3):'test'}

D.dic = {[1,2,3]:'test'}

解释; 

字典本身是可变数据类型,字典的键记住两点:

唯一:同一个字典中的键必须唯一,如果出现多个相同的键,则最新的键会被记住;

不可变:键是不可变数据类型,使用可以是int,string,float,tuple

17.再次考__name__的使用:

其中if __name__ == '__main__':这句估计很多和我一样的初学者都是不求甚解。
这里作一下解释:

1:__name__是一个变量。前后加了爽下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。
2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。
3:import的时候是要执行所import的模块的。
4:__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。

 


1. 如果模块是被导入,__name__的值为模块名字

2. 如果模块是被直接执行,__name__的值为’__main__’

18.  (我是什么人,竟然忘记了0**0=1)

下列代码执行结果是?

[i**i for i in xrange(3)]

结果: [1,1,4]

解释:

1.xrange() 函数用法与 range 完全相同,

        所不同的是生成的不是一个数组,而是一个生成器。

2.0的任何次方的值都为1

所以答案为:

                0**0=1 , 1**1=1, 2**2=4

19.  以下哪个模型的系数矩阵不是全幺模矩阵(totally unimodular matrix)? ()D

A. 最短路问题

B.指派问题

C.最大流问题

D.最小生成树问题

解释全爸模矩阵:

如果是整数矩阵,而且A的所有非零r×r子式等于 1 或-1,则称A为幺模矩阵(unimodular matrix)。

如果A是幺模矩阵,而且还有其各阶子式均等于0,1或-1,则称A为全幺模矩阵(totally unimodular matrix)。

特别,当m=n时,整数矩阵A是幺模矩阵,如果

显然:

(1) 全幺模矩阵的所有元素均为0,1或-1。

(2) 两个nxn的幺模矩阵之积仍是幺模矩阵;在矩阵乘法下,nxn的幺模矩阵全体构成一个群 [1] 

20.  互为对偶的两个线性规划问题的解存在关系()B

A.原问题无可行解,对偶问题也无可行解

B.对偶问题有可行解,原问题可能无可行解

C.若最优解存在,则最优解相同

D.一个问题无可行解,则另一个问题具有无界解

21.  下列说法不正确的是()B

A.梯度下降法是利用当前位置的负梯度作为搜索方向的方法
B.批量梯度下降和随机梯度下降相比,一个优势是对于大规模样本效率很高
C.牛顿法和梯度下降法相比,一个劣势是求解复杂,一个优势是收敛速度加快
D.共轭梯度法仅需利用一阶导数的信息,但是收敛速度高于梯度下降法

解释: 

批量梯度下降法在每次参数更新时同时迭代所有样本,优点是迭代次数少,并行计算,缺点是在样本规模大时训练缓慢;

随机梯度下降法在每次参数更新时迭代一个样本,优点时在样本规模大时训练快,缺点是迭代次数多,且容易收敛到局部最优解;

牛顿法是一种计算二阶梯度的算法,与梯度下降法相比,收敛速度更快,但计算复杂,每次参数更新都要计算Hession矩阵的逆;

22. 小王在经营健身器材店,其中A品牌羽毛球拍的年需求量为8,000。每个羽毛球拍每年的储存成本为2.50元,每次进货的固定成本为50元。若他每次卖完库存就去进货,他每次进货应该订购多少数量的A品牌的羽毛球拍(其它成本忽略不计)?()

283

23.  下列层次聚类算法中,哪些更适合处理大数据?(ABCD )

A.CURE算法

B.ROCK算法

C.Chameleon算法

D.BIRCH算法

 

1. 在Python 2.7中,下列哪种是Unicode编码的书写方式?C

A.a = ‘中文’

B.a = r‘中文’

C.a = u’中文’

D.a = b’中文’

解释: 

  1.   u/U:   表示unicode字符串 
  2. r/R:非转义的原始字符串
  3. b:bytes 
    python3.x里默认的str是(py2.x里的)unicode, bytes是(py2.x)的str, b”“前缀代表的就是bytes 
    python2.x里, b前缀没什么具体意义

2. 关于Python内存管理,下列说法错误的是  B

A. 变量不必事先声明(Python 是弱类型脚本语言,变量就是变量,没有特定类型,因此不需要声明。 )

B.变量无须先创建和赋值而直接使用(使用前必须赋值,在赋值的同时变量也就创建了)

C.变量无须指定类型(Python中变量可以不指定类型,会自动根据赋值语句来决定类型 )

D.可以使用del释放资源(用 del 语句可以释放已创建的变量(已占用的资源)。 )

3.  关于字符串下列说法错误的是  B

A.字符应该视为长度为1的字符串
B.字符串以\0标志字符串的结束(C语言中字符串使用'\0'作为结束符以防止越界,但python中字符串其实是一个固定长度的字符数组,并不需要结束符)
C.既可以用单引号,也可以用双引号创建字符串
D. 在三引号字符串中可以包含换行回车等特殊字符

4..  下列哪种不是Python元组的定义方式? (1)

在定义元组的时候,就曾提过,如果是一个单独的数字,则需要再后面加一个逗号,表明它是一个元组(1,)

5.  有如下类定义,下列描述错误的是?D
 

class A(object):
    pass
class B(A):
    pass
b = B()
A. isinstance(b, A) == True
B. isinstance(b, object) == True
C. issubclass(B, A) == True
D. issubclass(b, B) == True  (b = B() #实例化,所以b是B 的实例,而不是子类)

解释:

isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。实例( isinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True)

issubclass() 函数用于判断参数是否是类型参数的子类。子类

6.  python my.py v1 v2 命令运行脚本,通过 from sys import argv如何获得v2的参数值?  argv[2]

解释:sys.argv是传递给python脚本的命令行参数【字符串】列表 argv[0]为该脚本自身路径,其余为命令行参数

sys.argv是命令参数表,包括文件名

argv[0]: 【path】/my.py

argv[1]: v1

argv[2]: v2

7.  下面代码的输出:TRUE

str = "Hello,Python";
 suffix = "Python";
 print (str.endswith(suffix,2));

解释:

str.endswith(suffix[, start[, end]]) 用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。

可选参数"start""end"为检索字符串的开始与结束位置。

8.  EM算法(Exception Maximization Algorithm)是机器学习领域的一个经典算法,下面关于EM算法的表述中不正确的有( )A

A.EM算法属于一种分类算法
B.如果优化的目标函数是凸函数,那么EM算法一定能找到全局最优解
C.EM算法可以分为E-Step和M-Step两步
D.EM算法可用于从不完整的数据中计算最大似然估计
 

9. 以下输出的结果是:4

a = 1
try:
    a += 1
expect:
    a += 1
else:
    a += 1
finally:
    a += 1
print a

解释:

程序异常执行except

程序正常执行tryelse

无论程序正常执行还是出现异常都执行finally

10. 从运行层面上来看,从四个选项选出不同的一个。B

A.JAVA

B.python

C.ObjectC

D.C#

解释:

A,C,D都是类C语言,B不是

Python是解释执行的,其他语言都需要先编译

11. python3中函数定义时形参的出现顺序:Python3参数顺序:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值