python的一些莫名报错(1)

今天在做项目的时候遇到一个小doubt,四处求解无望,所以先把它记录下来,万一以后会了呢!哈哈
闲话莫多唠,步入正题:
numpy中的random函数模块中有个uniform函数,
random函数是用于随机生成[0, 1)之间的一个实数,而uniform()函数可以在给定参数下生成一个实数,这个实数在给定参数之间,如:

import random
random.uniform(x, y)
#参数为x,y,返回值为一个浮点数,在[x, y]之间,包含x,y

现在我们想要指定返回参数个数,怎么办呢,假如在[x,y]之间,随机返回10个浮点数,常理的话我们应该写成:

import numpy as np
from random import uniform

random.uniform(0,30,10)
#或者
uniform(0,10,30)

但是,解释器会毫不留情面的给你个No!typeerror:

TypeError: uniform() takes 3 positional arguments but 4 were given

这个报错简直睁眼说瞎话,我明明就只写了三个参数么,非得说我给了4个,可能在传递参数的时候有隐藏参数吧,的确,我减少一个参数后就可以正常编译,但是并不能满足我想输出多个浮点数的要求。

而后我继续探索,我惊讶的发现当我更改函数的调用方式时,竟然可以通过编译:

np.random.uniform(0,30,10)
>>>array([21.56304668, 19.50495065,  1.90127879, 20.2703811 , 28.16924328,6.72824345,  1.14104405,  4.20529112, 24.31898167, 10.93371833])

amazing , but I don’t know why !
能够解决和使用,以后再遇到这种报错,最起码知道用这种方式可能会解决。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值