错题本——Python

时间:2024-04-08 17:45:29

从运行层面上来看,从四个选项选出不同的一个。
正确答案: B
JAVA
Python
objectC
C#

解析:
Python 是动态语言

已知print_func.py的代码如下:
print(‘HelloWorld!’)
print(’__name__value: ', name)
def main():
 print(‘This message is from main function’)
if name == ‘main’:
 main()
print_module.py的代码如下:
import print_func
print(“Done!”)
运行print_module.py程序,结果是:
答案:
Hello World!
name value: print_func
Done!

解析:
如果是直接执行print_func文件,则__name__的值为__main__;
如果是以导入模块的形式执行print_func文件,则__name__的值为该文件名print_func。

name 的目的就是如果是以导入模块的形式执行文件,不会执行if __ name__ == '__ main__'下面的语句


补充
__ name__ 就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__ mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__ mian__:”后面的内容。


下列程序打印结果为( )
import re
str1 = “Python’s features”
str2 = re.match( r’(.)on(.?) .*’, str1, re.M|re.I)
print str2.group(1)
答案:
Pyth

解析:
多个标志可以通过按位 OR(|) 来指定
re.M:多行匹配,影响 ^ 和 $
re.I:使匹配对大小写不敏感
分组:即用圆括号将要提取的数据包住,通过 .group()获取,一般和“|”结合使用
re.match( r’(.)on(.?) .*’, str1, re.M|re.I),将on左边和右边分组
print(str2.group(0))
Python’s features
print(str2.group(1))
Pyth
print(str2.group(2))
's

具体参考:
Python正则表达式中的re.S,re.M,re.I的作用
Python高级——正则表达式 re模块1.match方法
Python高级——正则表达式 re模块 2.高级应用

import numpy as np
a = np.repeat(np.arange(5).reshape([1,-1]),10,axis = 0)+10.0 b = np.random.randint(5, size= a.shape)
c = np.argmin(a*b, axis=1)
b = np.zeros(a.shape)
b[np.arange(b.shape[0]), c] = 1
print b
以上函数输出结果为()
答案:
一个 shape = (10,5) 的 one-hot 矩阵

解析:
#生成数组[0,1,2,3,4]
np.arange(5)
#原数组共有x个元素,reshape([n,-1])意思是将原数组重组为n行x/n列的新数组
#所以数组共有5个元素,重组为1行5列的数组
reshape([1,-1])
#因为axis=0,所以是沿着横轴方向重复,增加行数
#所以原数组增加10行
repeat(np.arange(5).reshape([1,-1]), 10, axis = 0)
#数组每个元素都+10
a = repeat(np.arange(5).reshape([1,-1]), 10, axis = 0) + 10
错题本——Python
b = np.random.randint(5, size= a.shape) #生成[0,5)随机矩阵,大小和矩阵a相同
错题本——Python
c = np.argmin(a*b, axis=1) #矩阵a和b乘积,返回每行最小值位置
错题本——Python
b = np.zeros(a.shape) #与矩阵a相同大小的全零矩阵
错题本——Python
#b.shape[0]表示b的行数,10行
b[np.arange(b.shape[0]), c] = 1 #表示将b中每一行的c位置处赋值为1
错题本——Python

python代码如下:
foo = [1,2]
foo1 = foo
foo.append(3)
答案:
正确答案: B D
foo 值为[1,2]
foo 值为[1,2,3]
foo1 值为[1,2]
foo1 值为[1,2,3]

解析:
列表在 python 中是以“列表类”的形式存在,创建一个列表,即实例化一个类。 Python 里面的对象赋值实际上是对象的引用。 li = [1] a = li 就是将列表对象“赋予” a,此时 a 和 li 都是指向内存中同一个对象。而 append() 是列表类的方法(这是关键),append() 方法是在自身对象(关键)上进行操作,因为 a 和 li 都是指向同一个列表对象,所以 a 和 li 会得到同样的结果。 另个一个例子。 li = [2] b = li li= [3] 结果是 b 为 [2],li 为 [3]。 因为 li = [3] 会实例化一个新的列表类。