Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby到Python语法混乱_Python_Ruby_Syntax - Fatal编程技术网

Ruby到Python语法混乱

Ruby到Python语法混乱,python,ruby,syntax,Python,Ruby,Syntax,我正在尝试将某人的Ruby代码转换为Python代码。最初的开发者已经不在了,我也不认识Ruby。他的大部分代码都很容易理解,但下面的一些语法让我大吃一惊 例如: myTable = '' myTable << [ 0, 1, 0, 0, 0, 300].pack('vvvvvv') myTable [40, 4] = [41310005 - 5].pack('V') myTable='

我正在尝试将某人的Ruby代码转换为Python代码。最初的开发者已经不在了,我也不认识Ruby。他的大部分代码都很容易理解,但下面的一些语法让我大吃一惊

例如:

                myTable = ''
                myTable << [ 0, 1, 0, 0, 0, 300].pack('vvvvvv')
                myTable [40, 4] = [41310005 - 5].pack('V')
myTable=''

myTable关于第二行,您错了,但奇怪的是,您是对的,它类似于
struct.pack
myTable
是一个字符串
Array#pack()
返回一个压缩数据字符串(很像
struct.pack
),而
string#否,myTable是一个字符串(它被分配了一个字符串文本)。请查看有关的文档。它将数组转换为二进制序列的字符串表示形式
v
是“短、小尾端字节顺序”的指令,
v
是“长、小尾端字节顺序”

当发送到
字符串
对象时,充当串联。但是,由于字符串在该点之前为空,
myTable
可以立即初始化为
[0,1,0,0,0,300].pack('vvv')


将索引
m
中的子字符串替换为
m+n

,以便理解正在运行的代码,您可以使用“irb”获得交互式Ruby shell。如果你在那里输入代码,它就会被动态执行。使用对象上的inspect()可以经常看到对象发生了什么。因此,在您的情况下,在每一行之后调用myTable.inspect将向您展示更多关于正在发生的事情的信息。谢谢@mrduclaw:顺便说一句:虽然是Ruby官方文档网站,但它的导航也非常难看和混乱。这是新的热点。