牛客python错题整理

1.下面程序运行结果:

for i in range(5):
	i+=1
	print("-------")
	if i == 3:
		continue
	print(i)
运行结果:
-------1-------2--------------4-------5

错误原因:忘记了在i == 3时先输出-------后判断
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.arrage(b.shape[0]),c] = 1
print(b)
答案:一个shape =105)的one-hot矩阵
备注:one-hot编码方式:如果一个特征值有n个值,那么他就可以用一个n维的向量去表示这个特征
#第一行解析import numpy as np
numpy是python的一种开源的数值计算扩展,这种工具可用来存储和处理大型矩阵
#第二行解析a = np.repeat(np.arange(5).reshape([1,-1],10,axis = 0)+10.0
np.arrange(5)#生成数组[0,1,2,3,4]
reshape([n,-1])#意思是将原数组重组为n行x/n列的新数组,即将原数组重组为1行5列的数组
axis()=0#所以是沿着横轴放向重复,增加行数所以原数组增加10行
最后np.repeate()10表示数组每个元素都+10
执行后生成:
arry([[10,11,12,13,14],
	 [10,11,12,13,14],
	 [10,11,12,13,14],
	 [10,11,12,13,14],
	 [10,11,12,13,14],
	 [10,11,12,13,14],
	 [10,11,12,13,14],
	 [10,11,12,13,14],
	 [10,11,12,13,14],
	 [10,11,12,13,14]])
#第三行解析b = np.random.randint(5,size = a.shape)
随机生成大小为a.shape的数组,数组元素为[05)区间范围的整数
执行后生成:
array([[2,0,0,3,0],
	   [0,4,4,1,3],
	   [2,4,2,0,4],
	   [2,0,2,2,2],
	   [4,3,1,3,0],
	   [3,3,4,3,3],
	   [4,4,4,3,3],
	   [4,0,4,1,4],
	   [1,2,0,1,0],
	   [0,1,0,3,4]])
#第四行解析c = np.argmin(a*b,axis = 1)
a*b组成的新数组,给出每行最小值的下标
#第五行解析b = np.zeros(a.shape)
生成a.shape大小的全0数组
#第六行解析b[np.arrage(b.shape[0]),c] = 1
b.shape[0]表示b的行数,10行
b[np.arrage(10),c] = 1表示np.arrage(10)生成的数组中,所有c对应的位置全置为1
执行后输出
array([[0.,1.,0.,0.,0.],
	   [1.,0.,0.,0.,0.],
	   [0.,0.,0.,1.,0.],
	   [0.,1.,0.,0.,0.],
	   [0.,0.,0.,0.,1.],
	   [1.,0.,0.,0.,0.],
	   [0.,0.,0.,1.,0.],
	   [0.,1.,0.,0.,0.],
	   [0.,0.,1.,0.,0.],
	   [1.,0.,0.,0.,0.]])

错误原因:不了解numpy库
3.关于python中的复数
1)表示复数的语法:real + imagej
2)实部和虚部都是浮点数
3)虚部的后缀可以是J或者j
4)复数的方法conjugate方法可以返回该复数的共轭复数
4.字典{}列表[]仔细看选项
5.在python3中,下列程序运行结果说明正确的是

strs = 'abcd12efg'
print(strs.upper().title())
运行结果:
'Abcd12Efg'
str.upper()#把所有字符中小写字母转换成大写字母
str.lower()#把所有字符中大写字母转换成小写字母
str.capitalize()#把第一个字母转化为大写,其余小写
str.title()#每个单词首字母大写,其余小写

6.执行以下程序,输出结果:

def outer(fn):
	print('outer')
	def inner():
		print('inner')
		return fn
	return inner
@outer
def fun():
	print('fun')
	
输出结果;
outer
@为装饰器用法
相当于将fun函数作为一个参数传入outer
写法如:fun = outer(fun)

7.执行以下程序,输出结果为

def outer():
	def inner():
		print('inner',end="")
	print('outer',end="")
	return inner
outer()
输出结果;
outer
outer函数返回一个函数对象
如果像调用inner函数
outer()()
没有inner()就不会输出inner
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尾迹双冒号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值