first = "In function first"
不作函數的返回"In function first"
。
我能理解你爲什麼會認爲並非如此。在某些語言中,返回av的方式alue是將其分配給該功能。在其他語言中,賦值是一個表達式,並且在函數內部評估的最後一個表達式是返回值。所以,有很多語言你在做什麼都行。
但是Python不是其中之一。在Python中,返回值的唯一方法是使用return
聲明。如果您不使用return
聲明,則呼叫者只需獲得None
。
所以,你的代碼只是創建一個局部變量(容易混淆)與函數相同的名字,賦值給它,然後忽略該變量,所以它最終沒有任何效果。
你想要的是:
def first():
return "In function first"
def second():
return "In function section"
print first(), second()
然而,儘管這會給你所需的輸出,它實際上沒有做你說你想要的東西:
功能第一()應打印字符串「In function first()」
在這種情況下,應該其中有print
,而不是return
其他人必須打印的值。
...然後調用函數second()。
然後你需要撥打電話second()
在first
的定義之內,而不是在它之外。
功能第二()應打印字符串「在功能上第二()。
再次,它應該print
,不return
。
所以,這是一個更好的比賽你試圖做:
def first():
print "In function first"
second()
def second():
print "In function second"
first()
話雖這麼說,你寫的代碼(此修復程序)實際上好像不是代碼更好代碼你想寫。從內部函數返回值並處理最高級別的輸出通常比全部都更靈活。
您錯過了「然後調用函數second()'」的部分。你有沒有想過如何以及在哪裏做?另外,你不能在函數外使用'return'。 – BrenBarn 2014-09-28 22:06:04
你也錯過了'打印'字符串的部分... – jonrsharpe 2014-09-28 22:11:41
我改變了一點點,以便讓打印功能回到那裏。我早先把它們拿出來,忘了把它們放回去。 – Kayla 2014-09-28 22:17:41