Python 在框中输入消息

Python 在框中输入消息,python,python-3.x,Python,Python 3.x,我需要创建一个带有参数的框,用于打印用户输入的任何输入。我想框应该是字符串的长度,但是我被空代码困住了,因为我不知道从哪里开始 应该是这样的: 希望您能够学习,不要只为您编写代码。基本上把它分成几个步骤。首先,您需要接受用户输入。如果您不知道如何执行此操作,请尝试通过谷歌搜索“python接受来自stdin的用户输入”,或者以下是该搜索的结果之一: 然后,正如您所提到的,您需要输入的字符串的长度。你可以通过len函数得到。然后进行计算:看起来您需要“|”和字符串两侧的两个空格,长度加上6(“|”

我需要创建一个带有参数的框,用于打印用户输入的任何输入。我想框应该是字符串的长度,但是我被空代码困住了,因为我不知道从哪里开始

应该是这样的:


希望您能够学习,不要只为您编写代码。基本上把它分成几个步骤。首先,您需要接受用户输入。如果您不知道如何执行此操作,请尝试通过谷歌搜索“python接受来自stdin的用户输入”,或者以下是该搜索的结果之一:

然后,正如您所提到的,您需要输入的字符串的长度。你可以通过len函数得到。然后进行计算:看起来您需要“|”和字符串两侧的两个空格,长度加上6(“|”在任意一侧)。这个新长度是您应该创建“+--+”字符串的长度。使用print()函数打印每一行。我真的不想说太多了,因为你应该锻炼你的大脑来找出答案。如果您对如何生成适当长度(适当数量的“-”字符)的“+--+”有疑问,可以使用字符串连接和循环,或者只使用python字符串构造函数(提示:google“构造长度重复字符的python字符串”)。嗯

还有一件事,在查看代码之后,除了我关于在框中打印字符串本身的评论之外,我还看到代码中存在一些小的逻辑错误(例如,为什么要从宽度中减去2)。我想告诉我的一点是,如果你想把它分解成多个小函数(这里有点过分,但如果你只是在学习,因为它教会了你一项重要的技能),那么你应该单独测试每个函数,以确保它做你认为和期望它做的事情。我想你会这样看待你的逻辑错误。

我同意你的评论。不尝试就不要寻求帮助

如果你仍然不知道怎么做,那就只看我剩下的评论

只需打印: str=输入的字符串 len(str)=字符串长度

+-(len(str) * '-')-+    
|        str       |
+-(len(str) * '-')-+    

我是Python新手,我发现了这个解决方案。也许不是最好的解决方案,但它确实有效

test = input()

print("+-", end='')
for i in test:
    print("-", end='')
print("-+")
print("| " + test + " |")
print("+-", end='')
for i in test:
    print("-", end='') 
print("-+")

这里是解决方案,但我建议您自己尝试一下,将问题分解成更小的部分,然后从那里开始

def format(word):
    #It declares all the necessary variables
    borders =[]
    result = []

    # First part of the result--> it gives the two spaces and the "wall"
    result.append("|  ")
   # Second part of the result (the word)
    for letter in word:
    result.append(letter)
    # Third part of the result--> Ends the format
    result.append("  |")
    #Transforms the list to a string
    result = "".join(result)

    borders.append("+")
    borders.append("--"+"-"*len(word)+"--")
    borders.append("+")
    borders="".join(borders)
    print(borders)
    print(result)
    print(borders)


sentence = input("Enter a word: ")
format(sentence)

我以前创建过这个框,并认为可以对它进行一点编辑,但它使用了参数“宽度和高度”。我现在必须创建的框只允许使用paramater,我不知道你在这里说什么“我以前创建过这个框,并认为可以对它进行编辑,但它使用了参数width&height。”也许你还需要接受字符串作为参数输出?当然,您需要将该字符串与框的侧面一起打印。(不能只打印框,而期望字符串自己打印);我也不确定你到底在问什么。。。看起来你的思路是对的。谢谢你在输入和len函数方面的帮助。我想出了这个代码:现在唯一的问题是没有使用参数。我不知道它应该用来做什么。你肯定是在正确的轨道上。玩代码,做一些小改动,看看会发生什么,测试各个函数;一旦你走上了正确的道路,最好的学习方式就是在实践中学习。我想你会明白的。我写道:剩下的唯一一件事就是弄清楚如何实现参数。我仍然不确定它在函数中做了什么。很好,你想出了一些东西(虽然不是很优雅)。但是对于像这样的简单问题,请不要只给出答案:这无助于任何人学习如何学习。我不明白你的(s)参数会做什么。我相信这样它会做任何事。如果问题不完整,请修改您的问题