为什么 strip() 不能处理函数中的输入然后被打印?

Why is strip() not working with input in a function then being printed?

是的,我知道这个问题已经被问过很多很多次了,但是在浏览这些答案时 none 似乎回答了我的问题。如果你知道那种剂量的,link 给我,我会读一读,但我找不到。

我有一个名为问题的函数

def question():
   return input("What is the answer \n\t")

然后,当我尝试剥离并打印函数时,它没有剥离:

answer=question()
answer=answer.strip()
print(".", answer, ".")

输出为. answer . (不是单词 answer,变量 answer。 我做错了什么?

看起来您想要在打印语句中使用 'sep' 参数。 'sep' 参数告诉打印函数在发送给它的每个字符串参数之间放置什么。默认情况下,这是单个 space ' '。但是如果你这样做,那么字符串参数之间将没有字符。:

print('.', answer, '.', sep='')

这将输出您想要的行。但是你也可以使用格式化方法来做这个更干净一点:

print('.{}.'.format(answer))

print(f'.{answer}.')

如果“不工作”是指“.”之间的 space。和答案的价值,那是因为你打印它的方式。 试试这个

print(".{}.".format(answer))

您可以定义打印函数的分隔符

print('.',answer,'.', sep='')

或使用 f 字符串

print(f".{answer}.")

使用以下之一,

print('.', answer, '.', sep='')
print('.{}.'.format(answer))
print(f'.{answer}.')

第一个将 sep 定义为 '' 或什么都没有,因此单词之间没有放置 space。

其他两个的基本思想是{}被变量answer的值代替