文章目錄
- 一、數據類型 內置的六大類
- 數字類型
- 整數類型 int
- 浮點數 float
- 布爾 bool
- 字符串 str
- 變量命名
- 二、數字類型的相互轉換
- 顯式類型的轉換
- 整數,浮點數,復數 之間的顯式轉換
- 隱式類型的轉換
- 三、標識符
- 算術運算符
- 比較運算符
- 邏輯運算符
- 位運算符
- 賦值運算符
- 運算符優先級
- 四、分支結構
- if elif else
- while 循環
- for 循環
- break
- continue
- return
一、數據類型 內置的六大類
要想在計算機的內存中保存數據,首先得說一說變量這個概念。在編程語言中,變量是數據的載體,簡單的說就是一塊用來保存數據的內存空間,變量的值可以被讀取和修改,這是所有運算和控制的基礎。
計算機能處理的數據有很多種類型,最常見的就是數值,除了數值之外還有文本、圖像、音頻、視頻等各種各樣的數據類型。雖然數據在計算機中都是以二進制形態存在的,但是我們可以用不同類型的變量來表示數據類型的差異。
數字類型
整數類型 int
Python 中可以處理任意大小的整數,而且支持二進制,八進制,十進制,十六進制。示例如下:
0b11100 # 二進制
0o111 # 八進制
0x111 # 十六進制
浮點數 float
浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,浮點數除了數學寫法(如123.456)之外還支持科學計數法(如1.23456e2,表示 1.23456 × 1 0 2 \small{1.23456 \times 10^{2}} 1.23456×102)。運行下面的代碼,看看會輸出什么。
print(123.456) # 數學寫法
print(1.23456e2) # 科學計數法
布爾 bool
布爾型只有 True
、False
兩種值,要么是 True
,要么是 False
,可以用來表示現實世界中的“是”和“否”,命題的“真”和“假”,狀況的“好”與“壞”,水平的“高”與“低”等等。如果一個變量的值只有兩種狀態,我們就可以使用布爾型。
布爾是 int
的子類,其他類型可以轉換為布爾類型。
字符串 str
字符串是以單引號或雙引號包裹起來的任意文本,比如 'hello'
和 "hello"
。
變量命名
在 Python 中,變量命名需要遵循以下的規則和慣例:
- 規則部分:
- 規則1: 變量名由字母、數字和下劃線構成,數字不能開頭。需要說明的是,這里說的字母指的是 Unicode 字符,Unicode 稱為萬國碼,囊括了世界上大部分的文字系統,這也就意味著中文、日文、希臘字母等都可以作為變量名中的字符,但是一些特殊字符(如:!、@、#等)是不能出現在變量名中的。我們強烈建議大家把這里說的字母理解為盡可能只使用英文字母。
- 規則2: Python 是大小寫敏感的編程語言,簡單的說就是大寫的
A
和小寫的a
是兩個不同的變量,這一條其實并不算規則,而是需要大家注意的地方。 - 規則3: 變量名不要跟 Python 的關鍵字重名,盡可能避開 Python 的保留字。
- 慣例部分:
- 慣例1: 變量名通常使用小寫英文字母,多個單詞用下劃線進行連接。
- 慣例2: 受保護的變量用單個下劃線開頭。
- 慣例3: 私有的變量用兩個下劃線開頭。
二、數字類型的相互轉換
顯式類型的轉換
顯式類型轉換是指通過調用特定的函數來明確地將一種數據類型轉換為另一種數據類型。
整數,浮點數,復數 之間的顯式轉換
# 整數轉浮點數
int_num = 10
float_num = float(int_num)
print(f"整數 {int_num} 轉換為浮點數是 {float_num},類型為 {type(float_num)}")# 浮點數轉整數,會截斷小數部分
float_num = 15.8
int_num = int(float_num)
print(f"浮點數 {float_num} 轉換為整數是 {int_num},類型為 {type(int_num)}")# 整數轉復數
int_num = 20
complex_num = complex(int_num)
print(f"整數 {int_num} 轉換為復數是 {complex_num},類型為 {type(complex_num)}")# 浮點數轉復數
float_num = 25.5
complex_num = complex(float_num)
print(f"浮點數 {float_num} 轉換為復數是 {complex_num},類型為 {type(complex_num)}")# 復數轉整數或浮點數,只能獲取實部
complex_num = complex(30, 5)
real_part_float = float(complex_num.real)
real_part_int = int(complex_num.real)
print(f"復數 {complex_num} 的實部轉換為浮點數是 {real_part_float},類型為 {type(real_part_float)}")
print(f"復數 {complex_num} 的實部轉換為整數是 {real_part_int},類型為 {type(real_part_int)}")
隱式類型的轉換
操作數 1 類型 | 操作數 2 類型 | 隱式轉換規則 | 結果類型 |
---|---|---|---|
int | float | int 轉換為 float | float |
int | complex | int 轉換為 complex (實部為原整數,虛部為 0) | complex |
float | complex | float 轉換為 complex (實部為原浮點數,虛部為 0) | complex |
bool | int | True 轉換為 1,False 轉換為 0 | int |
bool | float | True 轉換為 1.0,False 轉換為 0.0 | float |
bool | complex | True 轉換為 complex(1, 0) ,False 轉換為 complex(0, 0) | complex |
可以通過 Python 內置的函數來改變變量的類型,下面是一些常用的和變量類型相關的函數:
int()
:將一個數值或字符串轉換成整數,可以指定進制。float()
:將一個字符串(在可能的情況下)轉換成浮點數。str()
:將指定的對象轉換成字符串形式,可以指定編碼方式。chr()
:將整數(字符編碼)轉換成對應的(一個字符的)字符串。ord()
:將(一個字符的)字符串轉換成對應的整數(字符編碼)。
"""
變量的類型轉換操作
"""
a = 100
b = 123.45
c = '123'
d = '100'
e = '123.45'
f = 'hello, world'
g = True
print(float(a)) # int類型的100轉成float,輸出100.0
print(int(b)) # float類型的123.45轉成int,輸出123
print(int(c)) # str類型的'123'轉成int,輸出123
print(int(c, base=16)) # str類型的'123'按十六進制轉成int,輸出291
print(int(d, base=2)) # str類型的'100'按二進制轉成int,輸出4
print(float(e)) # str類型的'123.45'轉成float,輸出123.45
print(bool(f)) # str類型的'hello, world'轉成bool,輸出True
print(int(g)) # bool類型的True轉成int,輸出1
print(chr(a)) # int類型的100轉成str,輸出'd'
print(ord('d')) # str類型的'd'轉成int,輸出100
說明:str
類型轉 int
類型時可以通過 base
參數來指定進制,可以將字符串視為對應進制的整數進行轉換。str
類型轉成 bool
類型時,只要字符串有內容,不是 ''
或 ""
,對應的布爾值都是 True
。bool
類型轉 int
類型時,True
會變成 1,False
會變成 0。在 ASCII 字符集和 Unicode 字符集中, 字符 'd'
對應的編碼都是 100。
三、標識符
算術運算符
運算符 | 名稱 | 例子 | 說明 |
---|---|---|---|
+ | 加 | a + b | 求 a 和 b 的和 |
- | 減 | a - b | 求 a 與 b 的差 |
* | 乘 | a * b | 求 a 與 b 的積 |
/ | 除 | a / b | 求 a 除以 b 的商 |
% | 取余 | a % b | 求 a 除以 b 的余數 |
** | 冪 | a ** b | 求 a 的 b 次冪 |
// | 地板除法 | a // b | 求小于 a 與 b 的商的最大整數 |
比較運算符
運算符 | 名稱 | 例子 | 說明 |
---|---|---|---|
== | 等于 | a == b | a 等于 b 返回 True ,否則返回 False |
!= | 不等于 | a != b | 與 == 相反 |
> | 大于 | a > b | a 大于 b 時返回 True ,否則返回 False |
< | 小于 | a < b | a 小于 b 時返回 True ,否則返回 False |
>= | 大于等于 | a >= b | a 大于等于 b 時返回 True ,否則返回 False |
<= | 小于等于 | a <= b | a 小于等于 b 時返回 True ,否則返回 False |
邏輯運算符
運算符 | 名稱 | 例子 | 說明 |
---|---|---|---|
not | 邏輯非 | not a | a 為 True 時,值為 False ,a 為 False 時,值為 True |
and | 邏輯與 | a and b | a ,b 全為 True 時,計算結果為 True ,否則為 False |
or | 邏輯或 | a or b | a ,b 全為 False 時,計算結果為 False ,否則為 True |
位運算符
運算符 | 名稱 | 例子 | 說明 |
---|---|---|---|
~ | 位反 | ~x | 將 x 的值按位取反 |
& | 位與 | x & y | 將 x 與 y 按位進行位運算 |
| | 位或 | x|y | 將 x 與 y 按位進行或運算 |
^ | 位異或 | x ^ y | 將 x 與 y 按位進行位異或運算 |
>> | 右移 | x >> a | 將 x 右移 a 位,高位采用符號位補位 |
<< | 左移 | x << a | 將 x 左移 a 位,低位用 0 補位 |
賦值運算符
運算符 | 名稱 | 例子 | 說明 |
---|---|---|---|
+= | 加賦值 | a += b | 等于 a = a + b |
-= | 減賦值 | a -= b | 等于 a = a - b |
*= | 乘賦值 | a *= b | 等于 a = a * b |
/= | 除賦值 | a /= b | 等于 a = a / b |
%= | 取余賦值 | a %= b | 等于 a = a % b |
**= | 冪賦值 | a **= b | 等于 a = a ** b |
//= | 地板除法賦值 | a //= b | 等于 a = a // b |
&= | 位與賦值 | a &= b | 等價于 a = a & b |
|= | 位或賦值 | `a | = b` |
^= | 位異或賦值 | a ^= b | 等價于 a = a ^ b |
<<= | 左移賦值 | a <<= b | 等價于 a = a << b |
>>= | 右移賦值 | a >>= b | 等價于 a = a >> b |
運算符優先級
優先級 | 運算符 | 說明 |
---|---|---|
1 | () | 小括號 |
2 | ** | 冪 |
3 | ~ | 位反 |
4 | +,- | 正負號 |
5 | *,/,%,// | 乘,除,取余,地板除 |
6 | +,- | 加,減 |
7 | <<,>> | 位移 |
8 | & | 位與 |
9 | ^ | 位異或 |
10 | ` | ` |
11 | <,<=,>,>=,<>,!= | 比較 |
12 | not | 邏輯非 |
13 | and,or | 邏輯與,邏輯或 |
四、分支結構
if elif else
if
、elif
和 else
語句用于根據條件的真假來決定執行哪些代碼塊,實現程序的分支邏輯。
if condition1:# 如果 condition1 為真,執行這里的代碼statement1
elif condition2:# 如果 condition1 為假且 condition2 為真,執行這里的代碼statement2
else:# 如果前面的條件都為假,執行這里的代碼statement3
age = 20
if age < 18:print("你是未成年人")
elif age < 60:print("你是成年人")
else:print("你是老年人")
while 循環
while
循環用于在條件為真時重復執行代碼塊,直到條件變為假。
while condition:# 只要 condition 為真,就會一直執行這里的代碼statement
# 示例
count = 0
while count < 5:print(count)count = count + 1
for 循環
for
循環用于遍歷可迭代對象(如列表、元組、字符串等)中的元素。
for variable in iterable:# 對 iterable 中的每個元素執行這里的代碼statement
# 示例
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:print(fruit)
break
break
語句用于在循環中提前終止循環,即使循環條件仍然為真。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:if fruit == "banana":breakprint(fruit)
continue
continue
語句用于跳過當前循環的剩余部分,直接進入下一次循環。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:if fruit == "banana":continueprint(fruit)
return
return
語句用于從函數中返回一個值,并終止函數的執行。
def function_name():# 函數體return value
# 示例
def add_numbers(a, b):return a + bresult = add_numbers(3, 5)
print(result)
希望以上 Markdown 格式的內容符合你在 CSDN 上展示的需求,如果還有其他需要調整的地方,請隨時告訴我。