2010-10-14 41 views
4

我是一名編程學生,我的老師從C開始教給我們編程範例,他說如果我用python交付我的作業也是可以的(它更簡單快捷家庭作業)。我想有我的代碼儘可能靠近更多鈔票在平原C. 問題是 我如何申報數據類型在Python的變量,比如你在C.前做:如何在Python中聲明變量類型,C風格

int X,Y,Z; 

我知道我可以在python

x = 0 
y = 0 
z = 0 

做到這一點,但似乎很多工作,它忽略了蟒蛇是容易的點/快於C. 那麼,什麼的shorttest方式做到這一點? P.S.我知道你不必須申報蟒蛇大部分時間的數據類型,但我仍想做到這一點,所以我的代碼看起來儘可能多儘可能像同學們。

+0

你不完全理解Python中的變量是什麼。可以把它看作C void *指針:它們沒有固有的類型,它們是用來指代任何東西的名稱。在Python中,對象存在於解釋器的內存叢林中,您可以給它們名稱並記住使用變量找到它們的位置。你的變量在C語言中沒有類型,它只是指向一個對象。 – slezica 2010-10-15 00:35:49

回答

21

無法在Python中聲明變量,因爲C語義中的​​「聲明」和「變量」都不存在。這將綁定三個相同的對象:

x = y = z = 0 
6

Python是不一定容易/比C快,雖然它是可能,它是簡單的;)

爲了澄清另一個您所做的陳述「您不必聲明數據類型」 - 應該重申您不可以聲明數據類型。當您爲變量賦值時,值的類型將變爲變量的類型。這是一個微妙的差異,但不同。

+0

我會說C比Python更簡單。它缺少裝飾器,元類,描述符等等。當然,這些都可以用C語言實現,但這是你的程序,它是複雜的,而不是下層語言。 – aaronasterling 2010-10-14 13:09:29

+0

@aaron - 說明我說過可能:)我已經完成了超過25年的C語言和python只有一年 - 我仍然使用C編寫所有我的小東西(但不是因爲它很簡單) – KevinDTimm 2010-10-14 13:11:44

+0

語言可能更簡單職能條款。但重點在於實現裝飾器,元類,描述符等並不簡單。 – Falmarri 2010-10-14 20:52:59

3

Python中的所有東西都是一個對象,包括類,類實例,函數中的代碼,函數庫,稱爲模塊的函數庫,以及像整數,浮點數,字符串或容器(如列表和字典)的數據值。它甚至包括類似字典(或映射)的容器的名稱空間,用於跟蹤標識符名稱(字符串對象)和當前存在的對象之間的關聯。如果兩個或多個標識符與同一對象關聯,則對象甚至可以具有多個名稱。

將標識符與對象關聯稱爲「將名稱綁定到對象」。這是Python中最接近變量聲明的東西。名稱可以在不同的時間與不同的對象相關聯,因此,聲明您將要附加的數據類型是沒有意義的 - 您只需要這樣做。通常它是在一行或一段代碼中完成的,它指定了對象值的名稱和定義以使其創建,如<variable> = 0或以def <funcname>開頭的函數。

這是如何幫助。

2

但強類型和變量定義實際上是爲了使開發更容易。如果你事先沒有想過這些事情,那麼你不是設計和開發代碼,而只是黑客行爲。

鬆散的類型只是將複雜性從「設計/黑客」時間轉移到運行時間。

1

我很驚訝,沒有人指出,實際上,你可以這樣做:

decimalTwenty = float(20) 

在很多情況下是沒有意義的一個變量的類型,因爲它可以在任何時間重新輸入。然而在上面的例子中它可能是有用的。還有其他類型的功能,如:int(),long(),float()complex()