【问题标题】:Passing user input() from main() func into a string in the next function将用户 input() 从 main() func 传递到下一个函数中的字符串
【发布时间】:2019-10-25 08:36:42
【问题描述】:

我很难将我在主函数中输入提示的用户名传递到下一个函数中的字符串中。

我已经构建了一个函数程序,它将预先确定的名称传递到下一个函数字符串消息中。但是现在我已经尝试加强它并使用输入法,我在下一个函数中将它传递到字符串消息中非常费时。

def main():
    someMessage = input("Enter your name:")
    return someMessage

def buildGreeting (someMessage):
    message = "Greetings " +input(someMessage)+ " you have been hacked! This message will self destruct in ten seconds!"
    return message
def printMessage(aMessage):
    print(aMessage)

if __name__ == '__main__':
    main()

我想让它说“你好,Leif,你被黑了!这条消息将在十秒内自毁!”

这是我目前的结果。它提示输入我的名字,然后什么也不做。这是我运行程序时读取的内容。

输入你的名字:Leif

进程以退出代码 0 结束

【问题讨论】:

  • 你应该遵循 python 教程。这是一个基本的基础,从长远来看,帮助您解决这个问题并无济于事。
  • 我不知道为什么它在我的信息中间有一个很大的空间,但我相信你们都知道它应该是什么。感谢您的任何帮助。我在网上搜索了一个例子,但找不到我要找的东西。
  • 我只是按照我得到的说明创建一个在运行时自动调用的主函数,然后创建一个接受字符串值的 greetUser 函数,因为它是唯一的参数。 greetUser 函数将返回使用传入的字符串参数创建的字符串消息。然后主函数将打印由 greetUser 返回的字符串。我已经做到了,但我现在想用输入法做到这一点。
  • 谢谢你的语法悔恨,这很有帮助。我会阅读那篇文章,看看我是否能以正确的方式理解这一点。我知道这是我学习的基础,从长远来看,我不希望自己残废,所以我能清楚地听到你的声音。

标签: python python-3.x


【解决方案1】:

另一种方法,

def main():
    someMessage = input("Enter your name:")
    return someMessage
    
someMessage = main()

def buildGreeting(someMessage):
    message = "Greetings " +someMessage+ " you have been hacked! This message will self destruct in ten seconds!"
    return message
    
aMessage = buildGreeting(someMessage)


def printMessage(aMessage):
    print(aMessage)
   

if __name__ == '__main__':
    printMessage(aMessage)

【讨论】:

    【解决方案2】:

    试试这个:

    def main():
        someMessage = input("Enter your name:")
        buildGreeting(someMessage)
    
    def buildGreeting (someMessage):
        message = "Greetings " +someMessage +" you have been hacked! This message will self destruct in ten seconds!"
        printMessage(message)
    
    def printMessage(aMessage):
        print(aMessage)
    
    if __name__ == '__main__':
        main()
    

    buildGreeting 函数中的 +input(someMessage) 也不是必需的,因为您已经将该输入传递给该函数。

    【讨论】:

    • 也谢谢您!如果我不像你的那样把我的主要放在第一位,我的老师就会有我的 keister,我还没有完全理解。但是感谢您提供我需要的视觉效果。
    【解决方案3】:

    您会希望这样做,因为 main 需要调用其他函数才能打印任何内容:

    def buildGreeting():
        name = input("Enter your name:")
        message = "Greetings " + name + " you have been hacked! This message will self destruct in 10 seconds."
        return message
    
    def printMessage(aMessage):
        print(aMessage)
    
    def main():
        message = buildGreeting()
        printMessage(message)
    
    if __name__ == '__main__':
        main()
    

    当我运行它时:

    [dkennetz fun]$ python destruct.py
    Enter your name:Dennis
    Greetings Dennis you have been hacked! This message will self destruct in 10 seconds.
    

    PS 消息不会自毁。

    【讨论】:

    • 这就是我如此沮丧的原因。我知道我走在正确的道路上,但我知道有些地方不对劲。当然,我还有很长的路要走,感谢您的指出。在这种情况下,我需要一个视觉。我将更多地讨论这个话题,以进一步巩固它在我的脑海中。我在这里没有得到非常基本的东西,我正在让自己发疯。
    • 我们都必须从某个地方开始!重要的是要了解buildGreeting() 返回一个字符串但不需要任何参数。当程序运行时,它会要求您输入(即名称),然后将其添加到同一函数中的 message 变量中。然后我们返回 message 的值(它是一个字符串)。因此,当我们在 main 中调用 buildGreeting() 时,我们将 return 值保存为一个名为 message 的变量,然后我们将其传递给 printMessage(message),然后它会将您的消息打印出来。
    • 拉德!如果我能从现在开始在我需要它的地方得到这样的解释,我会更快地理解这一点。至少在我重新训练我的大脑以更好地思考之前。现在很酷,我也开始使用函数构建温度转换程序。祝我知识和理解大声笑
    猜你喜欢
    • 2013-02-13
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 2012-02-01
    • 2018-07-14
    • 1970-01-01
    • 2021-02-16
    相关资源
    最近更新 更多