2015-08-28 31 views
-4

在Python中,有沒有辦法將結果賦給變量並立即打印出來?換句話說,我要尋找一個單行相當於在Python中同時指定和打印

a = something() 
print(a) 

(只需一次,不是每個分配應當自動打印)。

+1

是的,但不是一個理智的方式(除@ ScottHunter的答案,這是簡單的兩行用';'而不是'\ n'分隔)。 –

+0

是什麼課?一個函數? – veggie1

+0

你在這裏找到了多麼精確?在最低級別,打印一個'syscall'(本質上發生了什麼事情,當你打印()')某個東西不能在同一時間改變一個值(設置你的變量)完成。 –

回答

0

從技術上講,這是一個行:

a = something(); print(a) 
+0

鑑於這個問題的含糊性,這似乎是一個合理的答案對我來說 –

+0

爲什麼倒票?這是一個有效的答案,問題不是我讀過的最清楚的問題 –

0

這是從Python和一個很好的理由我猜失蹤。在C語言中,您可以擁有一個有效的語句,如 if a=30 { ... } ,因爲任何賦值語句都會具有指定的值,這可能會導致某人第一次看到該代碼時會撓頭。

此外,由於你的函數體內部參考副本,而不是實際的變量

TL烘烤自己分配的功能會產生問題; DR; - >不,不存在

1

那麼,如果你只是想創建一個新的變量,並打印出你所指示的那個變量的值,你可以有一個簡單的函數來打印並返回值:

def print_and_return(value): 
    print(value) 
    return value 

現在你可以使用它像這樣:

>>> a = print_and_return(5) 
5 
>>> print(a) 
5 

的其他辦法,你不應該使用,是使用globals()字典。

我再說一遍,你不應該這樣做。現在

def print_and_set(name, value): 
    globals()[name] = value 
    print(globals()[name]) 

您可以使用調用它:

print_and_set('a', 5) 

它將打印5,您還可以訪問變量a在全局命名空間。