我在两台不同的机器上运行相同的Perl脚本(Redhat和SUSE).在SUSE上,脚本运行正常,但在Redhat上没有.这是我正在运行的整个脚本:
#!/usr/bin/perl
$str = "Cat|Dog|Bird";
$number = split /\|/, $str;
$type = @_[0];
print "number of args: $number and type is: $type \n";
Run Code Online (Sandbox Code Playgroud)
我得到2个不同的输出
SUSE:
number of args: 3 and type is: Cat
Run Code Online (Sandbox Code Playgroud)
红帽:
number of args: 3 and type is:
Run Code Online (Sandbox Code Playgroud)
我想知道是什么原因导致这个??? 在第一个$type以某种方式初始化
注意:我忽略了警告"标量值@_ [0]更好地写为$ _ [0]",因为如果我改变它没有任何区别.输出将是相同的.
我正在对来自 numpy 数组的标量值进行一些快速计算。正如文档中所说,
使用数组标量的主要优点是它们保留了数组类型(Python 可能没有可用的匹配标量类型,例如 int16)...
但是有没有比这更好(更快,更简洁)的方法来为现有数组标量分配一个新值:
>>> x = np.array(2.0, dtype='float32')
Run Code Online (Sandbox Code Playgroud)
这有效但不是那么方便(我正在做其他算术并希望始终保留该类型)。
由于明显的原因,这不起作用:
>>> x = np.array(1.0, dtype='float32')
>>> print(x, type(x))
1.0 <class 'numpy.ndarray'>
>>> x = 2.0
>>> print(x, type(x))
2.0 <class 'float'>
Run Code Online (Sandbox Code Playgroud)
这也不行:
>>> x = np.array(1.0, dtype='float32')
>>> x[] = 2.0
File "<ipython-input-319-7f36071ff81d>", line 2
x[] = 2.0
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
也不是这个:
>>> x = np.array(1.0, dtype='float32')
>>> x[:] = 2.0
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-24-62cd4ca238ce> in <module>()
1 x …Run Code Online (Sandbox Code Playgroud) 我知道@array[0,2,6]是一个具有多个值的数组.
而且我认为这$scalar=3是一个具有单个标量值的变量.
但是,是什么$array[3, 4]?它是带有两个值的标量变量吗?
前面带有转义字符'\'的数字会产生垃圾值Ex:
$a = \12;
print $a;
Run Code Online (Sandbox Code Playgroud)
此代码给出了以下输出
SCALAR(0x2001ea8)
Run Code Online (Sandbox Code Playgroud)
当我再次执行程序时输出会改变.
如果我在用户给出任何以零开头的输入时从用户获取值(数字),我不希望它将其解释为八进制数.所以如果数字从零开始,我想逃避零.
我试图填充一个以-1开头的整数向量,直到我的size参数的负数.例如:如果参数是6,那么我希望向量有6个项目,从-1到-6.哦,如果size参数小于1,我想返回一个空参数.
我得到一个"从'int'转换为非标量类型"错误消息.据我所知,这是很好的代码,但显然我无法弄明白.任何帮助表示赞赏.
#include <iostream>
#include <vector>
int negativity(int size) {
std::vector<int> vect;
if (size < 1) {
return vect;
}
for (int i=-1; i > size; i--) {
vect.push_back(i);
}
return vect;
}
Run Code Online (Sandbox Code Playgroud)