相当于Genie / vala中的raw_input()?

时间:2015-10-02 05:17:10

标签: python genie

我正在尝试使用Genie创建一个简单的Hello World程序,但我希望能够在终端上输入一些输入。我的目标是在Genie中重复以下python代码:

#!/usr/bin/env python
print 'Hello. I am a python program.'
name = raw_input("What is your name? ")
print "Hello there, " + name + "!"

到目前为止,我所做的是;

[indent=4]

uses System

init
    print "Hello. I am a python program."
    var name = Console.ReadLine("What is your name? ")
    print "Hello there, " + name + "!"

但是我得到了一些错误,可能是因为我不知道语言,这里是错误:

hw.gs:4.5-4.10: error: The namespace name `System' could not be found
    System
    ^^^^^^
Compilation failed: 1 error(s), 0 warning(s)
hw.gs:3.6-3.11: error: The namespace name `System' could not be found
uses System
     ^^^^^^
Compilation failed: 1 error(s), 0 warning(s)

我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:2)

BigOldTree给了我一个建议,实际上已经成功了。以下是Geanie中代码的样子:

[indent=4]
init
    print "Hello. I am a python program."
    print "What's your name?"
    var name = stdin.read_line()
    print "Hello there, " + name + "!"

我不知道是否可以将参数发送到stdin.read_line(),就像在python中使用raw_input()一样。很高兴知道,我也不知道如何找到有关特定功能的信息以及如何导入它们。我来自R,在那里我可以使用?function(),它会给我一些关于它的指令。 Genie / Vala上有类似的东西吗?

答案 1 :(得分:2)

如果您愿意,可以编写自己的raw_input函数:

[indent=4]

def raw_input (query : string? = null) : string?
    if (query != null)
        stdout.printf ("%s\n", query)
    return stdin.read_line ()

init
    print "Hello. I am a python program."
    var name = raw_input ("What's your name?")
    print "Hello there, " + name + "!"