2014-11-05 18 views
1

所以我想弄清楚如何我可以使一個函數作爲輸入一個字符序列,沒有定義爲一個字符串,並讓它自動解釋作爲實例的字符串:我如何使一個函數將其參數轉換爲字符串

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 

現在我意識到,我可以叫PRINTSTRING的「你好」,但我希望函數能夠採取的輸入,是不是已經是一個字符串,而僅僅是一個序列chracters。

+2

U應該調用打印字符串(「hello」) – Srinath 2014-11-06 00:01:40

+0

@Srinath說什麼,再加上你可以'print(sequence_of_characters)'。 – martineau 2014-11-06 00:04:03

+0

根據定義,字符序列是一個字符串。 – etheranger 2014-11-06 00:07:24

回答

0

你的問題是你的sequence_of_characters必須已經是一個對象或變量。 hello只是一個未分配的變量。唯一可以像你想要的那樣工作的對象是某種數字類型,如intfloatlong

基本上,hello將必須是一個變量等於工作的數字。沒有辦法避免將它分配給某些東西。

+0

那麼有沒有辦法解決這個問題? – 2014-11-06 00:10:45

+0

你是什麼意思? – AHuman 2014-11-06 00:10:56

+0

@ A-P沒有 – KodyVanRy 2014-11-06 00:11:08

0

首先,你應該用圓括號printstring("hello")調用它(永遠不會忘記他們)

它是100%不可能的蟒蛇帶任何參數,並打印不帶括號。如果你不包括括號,它會把它當作一個對象或方法來對待。

正因爲如此,您試圖將類指定爲字符串。

因此可以說你有一堂課。

class Hello: 
    pass 

你不能做

Hello = Hello() 

它不喜歡的工作來代替。

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

becasue sequence_of_characters是字符串,你正在做的是重新分配它。

+3

供參考:'字符串'不是一個對象。 – AHuman 2014-11-06 00:05:06

相關問題