如何使函数将其参数转换为字符串

时间:2014-11-05 23:58:50

标签: python string function arguments

所以我试图找出如何将函数作为输入的一系列字符(未定义为字符串),并让它自动将其解释为字符串,例如:

def printstring(sequence_of_characters):
    a=str(sequence_of_characters)
    print(a)

现在我跑的时候:

printstring(hello)

我希望终端输出:

'hello'

而是输出

Traceback (most recent call last):
    File "<pyshell#7>", line 1, in <module>
        printstring(hello)
NameError: name 'hello' is not defined

现在我意识到我可以在&#34; hello&#34;上调用printstring,但我希望函数能够获取不是字符串的输入,而只是一系列字符。

2 个答案:

答案 0 :(得分:0)

首先,您应该使用带括号的printstring("hello")来调用它(永远不要忘记它们)

python有100%无法接受参数并在没有括号的情况下打印它。如果不包含括号,它会将其视为对象或方法。

因此,你试图将一个类分配为一个字符串。

所以,假设你有一个班级。

class Hello:
    pass

你无法做到

Hello = Hello()

它并没有像那样工作。

def printstring(sequence_of_characters):
    sequence_of_characters=str(sequence_of_characters)
    print(sequence_of_characters)

因为sequence_of_characters是字符串而你正在做的就是重新分配它。

答案 1 :(得分:0)

您的问题是您的sequence_of_characters必须已经是对象或变量。 hello只是一个未分配的变量。唯一可以按您的方式工作的对象是某种数字类型,如intfloatlong

基本上,hello必须是一个等于要工作的数字的变量。没有办法不把它分配给某些东西。