C變數和類型

初次接觸C變數和基本類型的介紹 C是一種靜態類型語言。 這意味著任何變數都有一個關聯的類型,而且此類型在編譯時已知。 這與在Python、JavaScript、PHP和其他解釋語言中操作變量的方式非常不同。 在C中創建變量時,您必須在聲明時指定變量的類型。 在此示例中,我們使用類型int對變量age進行初始化: int age; 變量名可以包含任何大小寫字母,可以包含數字和下劃線字符,但不能以數字開頭。AGE和Age10都是有效的變量名,1age則無效。 您也可以在聲明時初始化變量,並指定初始值: int age = 37; 定義變量後,您可以在程序代碼中使用它,並隨時更改其值,例如使用=運算符,就像在age = 100;中一樣,前提是新值具有相同的類型。 在這種情況下: #include <stdio.h> int main(void) { int age = 0; age = 37.2; printf("%u", age); } 編譯器將在編譯時拋出警告,並將十進制數字轉換為整數值。 C的內置數據類型包括int、char、short、long、float、double和long double。讓我們更深入了解這些類型。 整數數字 C為我們提供以下類型來定義整數值: char int short long 大多數情況下,您可能會使用int來存儲整數。但在某些情況下,您可能希望選擇另外3個選項之一。 char類型通常用於存儲ASCII表中的字母,但也可以用來容納從-128到127的小整數。它至少占1個字節。 int至少占2個字節。 short至少占2個字節。 long至少占4個字節。 正如您所看到的,對於不同環境,我們無法保證相同的值。我們只有一個指示。問題在於每種數據類型中可以存儲的確切數字取決於實現和體系結構。 我們保證short不會比int長,并且保證long不會比int短。 美國國家標準協會(ANSI)的C規範標準確定了每種類型的最小值,幸運的是,由於此規範,我們至少可以知道我們可以期望擁有的最小值。 如果您在Arduino上編程C,不同的開發板將具有不同的限制。 在Arduino Uno板上,int存儲2字節值,範圍從-32,768到32,767。在Arduino MKR 1010上,int存儲4字節值,範圍從-2,147,483,648到2,147,483,647。相差很大。 在所有Arduino板上,short存儲2字節值,範圍從-32,768到32,767。long占用4字節,范围从-2,147,483,648到2,147,483,647。 無符號整數 對於上述所有數據類型,我們可以在前面加上unsigned以將範圍從0開始,而不是負數。在許多情況下,這可能是有意義的。 unsigned char的範圍從0到至少255 unsigned int的範圍從0到至少65,535 unsigned short的範圍從0到至少65,535 unsigned long的範圍從0到至少4,294,967,295 溢出問題 鑒於所有這些限制,可能會出現一個問題:我們如何確保我們的數字不超過限制?如果超過限制我們會得到什麼結果? 如果您具有unsigned int數字為255,並將其增加,您將得到256作為結果。這是可以預料的。 如果您的unsigned char數字為255,並將其增加,您將得到0作為結果。它會從初始可能值重新開始計算。...

Python數據類型

Python有幾種內置類型。 如果你創建了一個name變量並將其賦值為“Roger”,這個變量將自動表示一個字符串數據類型。 name = "Roger" 你可以使用type()函數檢查變量的類型,將變量作為參數傳入,然後將結果與str進行比較: name = "Roger" type(name) == str #True 或者使用isinstance(): name = "Roger" isinstance(name, str) #True 注意,在Python中查看True值時,除了在REPL中之外,你需要將這段代碼包裹在print()中,但出於清晰起見,我避免使用它。 我們在這裡使用了str類,但對於其他數據類型也同樣有效。 首先,我們有數字。 整數使用int類來表示。 浮點數(小數)的類型是float: age = 1 type(age) == int #True fraction = 0.1 type(fraction) == float #True 你看到了如何從字面值創建一個類型,就像這樣: name = "Flavio" age = 20 Python會自動從值的類型中檢測類型。 你還可以通過使用類的構造函數來創建特定類型的變量,傳入字面值或變量名: name = str("Flavio") anotherName = str(name) 你還可以通過使用類的構造函數來將一種類型轉換為另一種類型。 Python將嘗試確定正確的值,例如從字符串中提取數字: age = int("20") print(age) #20 fraction = 0.1 intFraction = int(fraction) print(intFraction) #0 這稱為類型轉換。當然,這種轉換可能不總是成功,取決於傳遞的值。如果在上述字符串中寫入test而不是20,你將得到一個ValueError: invalid literal for int() with base 10: 'test'錯誤。...