我在Ruby中使用Hash,只需检查某个单词是否在“pairs”类中并替换它们。最初我用python编写代码,想把它转换成我不熟悉的ruby。这是我写的ruby代码。在
import sys
pairs = {'butter' => 'flies', 'cheese' => 'wheel', 'milk'=> 'expensive'}
for line in sys.stdin:
line_words = line.split(" ")
for word in line_words:
if word in pairs
line = line.gsub!(word, pairs[word])
puts line
它显示以下错误
^{pr2}$下面是原始的python脚本,它是正确的:
import sys
pairs = dict()
pairs = {'butter': 'flies', 'cheese': 'wheel', 'milk': 'expensive'}
for line in sys.stdin:
line = line.strip()
line_words = line.split(" ")
for word in line_words:
if word in pairs:
line = line.replace(word ,pairs[word])
print line
是因为“导入系统”还是“缩进”
试试这个:
这将循环传递给脚本的每个项,并返回由空格连接的单词或替换单词。在
for
通常不在Ruby中使用,因为它有一些不寻常的作用域。在我是这样写的:
import
在Ruby中不存在,因此不应该存在。在Ruby中,你还必须用end
来“关闭”每个块,仅仅使用缩进是不够的(缩进对Ruby来说没有任何意义,尽管为了可读性你还是应该保留它)。在相关问题 更多 >
编程相关推荐