Python變量與數(shù)據(jù)類型全解析(最新整理)
1、變量
變量是數(shù)據(jù)的載體,簡單的說就是一塊用來保存數(shù)據(jù)的內(nèi)存空間,變量的值可以被讀取和修改,這是所有運算和控制的基礎(chǔ)。
變量命名規(guī)范
在 Python 中,變量命名需要遵循以下的規(guī)則和慣例。
規(guī)則部分:
規(guī)則1:變量名由字母、數(shù)字和下劃線構(gòu)成,數(shù)字不能開頭。需要說明的是,這里說的字母指的是 Unicode 字符,Unicode 稱為萬國碼,囊括了世界上大部分的文字系統(tǒng),這也就意味著中文、日文、希臘字母等都可以作為變量名中的字符,但是一些特殊字符(如:!、@、#等)是不能出現(xiàn)在變量名中的。我們強烈建議大家把這里說的字母理解為盡可能只使用英文字母。
規(guī)則2:Python 是大小寫敏感的編程語言,簡單的說就是大寫的A和小寫的a是兩個不同的變量,這一條其實并不算規(guī)則,而是需要大家注意的地方。
規(guī)則3:變量名不要跟 Python 的關(guān)鍵字重名,盡可能避開 Python 的保留字。這里的關(guān)鍵字是指在 Python 程序中有特殊含義的單詞(如:is、if、else、for、while、True、False等),保留字主要指 Python 語言內(nèi)置函數(shù)、內(nèi)置模塊等的名字(如:int、print、input、str、math、os等)。
Python數(shù)據(jù)類型
1、基本數(shù)據(jù)類型
數(shù)值類型(Number):
- int: 整數(shù),如
10,-5,0 - float: 浮點數(shù),如
3.14,-0.001,2.0 - complex: 復數(shù),如
1+2j,3-4j
a = 10 # int b = 3.14 # float c = 1 + 2j # complex print(a, b, c)
整型(int):Python 中可以處理任意大小的整數(shù),而且支持二進制(如0b100,換算成十進制是4)、八進制(如0o100,換算成十進制是64)、十進制(100)和十六進制(0x100,換算成十進制是256)的表示法。
print(0b100) # 二進制整數(shù) print(0o100) # 八進制整數(shù) print(100) # 十進制整數(shù) print(0x100) # 十六進制整數(shù)
浮點型(float):浮點數(shù)也就是小數(shù),之所以稱為浮點數(shù),是因為按照科學記數(shù)法表示時,一個浮點數(shù)的小數(shù)點位置是可變的,浮點數(shù)除了數(shù)學寫法(如123.456)之外還支持科學計數(shù)法(如1.23456e2)
print(123.456) # 數(shù)學寫法 print(1.23456e2) # 科學計數(shù)法
復數(shù)(complex)是Python中的一種數(shù)字類型,用于表示數(shù)學中的復數(shù)。復數(shù)由實數(shù)部分和虛數(shù)部分組成,
a = 3 + 4j # 復數(shù) 3+4i
e = complex(2, 3) # 2+3j
f = complex(4) # 4+0j
g = complex('5+6j') # 從字符串創(chuàng)建 5+6j
print(a, e, f, g)布爾類型(bool)
布爾型(bool):布爾型只有True、False兩種值,要么是True,要么是False,可以用來表示現(xiàn)實世界中的“是”和“否”,命題的“真”和“假”,狀況的“好”與“壞”,水平的“高”與“低”等等。如果一個變量的值只有兩種狀態(tài),我們就可以使用布爾型。
is_active = True is_admin = False print(is_active, is_admin) print(is_active and is_admin)
字符串(str)
字符串型(str):字符串是以單引號或雙引號包裹起來的任意文本,比如'hello'和"hello",使用反斜杠 \ 轉(zhuǎn)義特殊字符,三引號''' '''/""" """包圍也是字符串
s1 = 'hello' s2 = "world" s3 = '''多行 字符串''' print(s1, s2, s3)
2、復合數(shù)據(jù)類型
(1) 列表(list)
特點:
- 有序的可變序列
- 用方括號
[]表示 - 可以包含不同類型的元素
- 允許重復元素
# 創(chuàng)建列表
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2, 3, 4, 5]
mixed = [1, 'a', True, 3.14]
# 訪問元素
print(fruits[0]) # 'apple' (正向索引從0開始)
print(fruits[-1]) # 'cherry' (負索引表示從后往前)
# 修改元素
fruits[1] = 'blueberry'
print(fruits) # ['apple', 'blueberry', 'cherry']
# 切片操作
print(numbers[1:3]) # [2, 3] (獲取索引1到2的元素)
print(numbers[:2]) # [1, 2] (從開始到索引1)
print(numbers[2:]) # [3, 4, 5] (從索引2到結(jié)束)
# 常用方法
fruits.append('orange') # 末尾添加
fruits.insert(1, 'pear') # 指定位置插入
fruits.remove('apple') # 刪除指定元素
popped = fruits.pop(2) # 刪除并返回指定索引元素
fruits.sort() # 排序(原地修改)
sorted_fruits = sorted(fruits) # 返回新排序列表實際案例:學生成績管理:
# 初始化學生成績列表
grades = [85, 90, 78, 92, 88]
# 添加新成績
grades.append(95)
print("添加后:", grades) # [85, 90, 78, 92, 88, 95]
# 計算平均分
average = sum(grades) / len(grades)
print("平均分:", average)
# 找出最高分和最低分
print("最高分:", max(grades))
print("最低分:", min(grades))
# 排序成績
grades.sort(reverse=True)
print("降序排列:", grades)(2) 元組(tuple)
特點:
- 有序的不可變序列
- 用圓括號
()表示 - 可以包含不同類型的元素
- 一旦創(chuàng)建不能修改
# 創(chuàng)建元組
colors = ('red', 'green', 'blue')
coordinates = (10.5, 20.3)
single_element = (42,) # 注意逗號,區(qū)分(42)是整數(shù)
# 訪問元素
print(colors[1]) # 'green'
print(coordinates[0]) # 10.5
# 切片操作
print(colors[:2]) # ('red', 'green')
# 元組解包
x, y = coordinates
print(f"x: {x}, y: {y}") # x: 10.5, y: 20.3
# 不可變性嘗試(會報錯)
# colors[1] = 'yellow' # TypeError
# 元組連接
new_tuple = colors + ('yellow', 'black')
print(new_tuple) # ('red', 'green', 'blue', 'yellow', 'black')實際案例:RGB顏色處理:
# 定義一組RGB顏色
color1 = (255, 0, 0) # 紅色
color2 = (0, 255, 0) # 綠色
color3 = (0, 0, 255) # 藍色
# 計算灰度值函數(shù)
def calculate_grayscale(rgb):
r, g, b = rgb
return round(0.299 * r + 0.587 * g + 0.114 * b)
# 計算各顏色的灰度值
print(f"紅色的灰度值: {calculate_grayscale(color1)}")
print(f"綠色的灰度值: {calculate_grayscale(color2)}")
print(f"藍色的灰度值: {calculate_grayscale(color3)}")
# 顏色混合函數(shù)
def mix_colors(color_a, color_b, ratio=0.5):
return tuple(round(a * ratio + b * (1 - ratio)) for a, b in zip(color_a, color_b))
# 混合紅色和藍色
purple = mix_colors(color1, color3)
print(f"混合紅色和藍色得到: {purple}") # (128, 0, 128)(3) 集合(set)
特點:
- 無序的不重復元素集
- 用花括號
{}表示(但空集合必須用set()) - 可變集合(set)和不可變集合(frozenset)兩種
- 支持數(shù)學集合運算
# 創(chuàng)建集合
unique_numbers = {1, 2, 3, 3, 4} # 實際為{1, 2, 3, 4}
letters = set('hello') # {'h', 'e', 'l', 'o'}
empty_set = set() # 空集合(不能用{},這是空字典)
# 添加/刪除元素
unique_numbers.add(5)
unique_numbers.remove(2) # 如果元素不存在會報錯
unique_numbers.discard(10) # 安全刪除,不存在也不報錯
popped = unique_numbers.pop() # 隨機刪除并返回一個元素
# 集合運算
a = {1, 2, 3}
b = {2, 3, 4}
print(a | b) # 并集 {1, 2, 3, 4}
print(a & b) # 交集 {2, 3}
print(a - b) # 差集 {1}
print(a ^ b) # 對稱差集 {1, 4}
# 集合推導式
squares = {x**2 for x in range(5)}
print(squares) # {0, 1, 4, 9, 16}實際案例:數(shù)據(jù)分析
# 兩個班級的學生
class_a = {'Alice', 'Bob', 'Charlie', 'David'}
class_b = {'Charlie', 'David', 'Eve', 'Frank'}
# 找出同時在兩個班級的學生
both_classes = class_a & class_b
print("同時在兩個班級的學生:", both_classes)
# 找出只在A班的學生
only_a = class_a - class_b
print("只在A班的學生:", only_a)
# 所有不重復的學生
all_students = class_a | class_b
print("所有學生:", all_students)
# 添加新學生
class_a.add('Grace')
print("更新后的A班:", class_a)
# 檢查學生是否存在
print("Alice在A班嗎?", 'Alice' in class_a)
print("Eve在A班嗎?", 'Eve' in class_a)(4) 字典(dict)
特點:
- 鍵值對集合
- 用花括號
{}表示,鍵值對用:分隔 - 鍵必須是不可變類型,值可以是任意類型
- 從Python 3.7開始保持插入順序
# 創(chuàng)建字典
person = {'name': 'Alice', 'age': 25, 'city': 'New York'}
grades = {'math': 90, 'english': 85, 'history': 88}
empty_dict = {}
# 訪問元素
print(person['name']) # 'Alice'
print(grades.get('math', 0)) # 90 (get方法可設(shè)置默認值)
# 添加/修改元素
person['email'] = 'alice@example.com' # 添加
grades['math'] = 95 # 修改
# 刪除元素
del person['city']
popped_value = grades.pop('english') # 刪除并返回值
# 常用方法
print(person.keys()) # 所有鍵
print(person.values()) # 所有值
print(person.items()) # 所有鍵值對
# 字典推導式
squares = {x: x**2 for x in range(5)}
print(squares) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}實際案例:單詞統(tǒng)計
def word_count(text):
"""統(tǒng)計文本中單詞出現(xiàn)次數(shù)"""
word_counts = {}
# 分割文本為單詞(簡單處理)
words = text.lower().split()
for word in words:
# 去除標點符號(簡單處理)
word = word.strip(".,!?")
# 更新計數(shù)
if word in word_counts:
word_counts[word] += 1
else:
word_counts[word] = 1
return word_counts
# 測試文本
text = "Hello world! Hello Python. Python is great, isn't it? The world is big."
# 統(tǒng)計單詞
counts = word_count(text)
# 打印結(jié)果
print("單詞統(tǒng)計結(jié)果:")
for word, count in sorted(counts.items()):
print(f"{word}: {count}")
# 找出出現(xiàn)最多的單詞
most_common = max(counts.items(), key=lambda item: item[1])
print(f"\n最常出現(xiàn)的單詞是 '{most_common[0]}',出現(xiàn)了 {most_common[1]} 次")類型 | 可變性 | 有序性 | 元素要求 | 表示符號 | 主要用途 |
列表(list) | 可變 | 有序 | 無 |
| 存儲有序數(shù)據(jù)集合,可能修改 |
元組(tuple) | 不可變 | 有序 | 無 |
| 存儲不應(yīng)修改的有序數(shù)據(jù) |
集合(set) | 可變 | 無序 | 必須可哈希 |
| 存儲唯一元素,快速成員檢查 |
字典(dict) | 可變 | 有序(3.7+) | 鍵必須可哈希 |
| 存儲鍵值對關(guān)聯(lián)數(shù)據(jù) |
到此這篇關(guān)于Python變量與數(shù)據(jù)類型全解析的文章就介紹到這了,更多相關(guān)Python變量與數(shù)據(jù)類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python中的變量和數(shù)據(jù)類型使用方式
- Python入門教程之變量與數(shù)據(jù)類型
- Python變量和數(shù)據(jù)類型詳解
- 深入理解Python變量的數(shù)據(jù)類型和存儲
- Python3變量與基本數(shù)據(jù)類型用法實例分析
- Python變量、數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換相關(guān)函數(shù)用法實例詳解
- Python變量和數(shù)據(jù)類型詳解
- 詳細解析Python中的變量的數(shù)據(jù)類型
- 詳細解析Python當中的數(shù)據(jù)類型和變量
- python基礎(chǔ)教程之基本數(shù)據(jù)類型和變量聲明介紹
相關(guān)文章
Python的基礎(chǔ)語法和輸入輸出函數(shù)你都了解嗎
這篇文章主要為大家詳細介紹了Python的基礎(chǔ)語法和輸入輸出函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-02-02
利用python實現(xiàn)聚類分析K-means算法的詳細過程
K-means算法是很典型的基于距離的聚類算法,采用距離作為相似性的評價指標,即認為兩個對象的距離越近,其相似度就越大,下面通過本文給大家介紹利用python實現(xiàn)聚類分析K-means算法的詳細過程,感興趣的朋友一起看看吧2021-11-11
基于python實現(xiàn)類似網(wǎng)盤的多層級文件瀏覽器
在現(xiàn)代文件管理應(yīng)用中,用戶體驗至關(guān)重要,網(wǎng)盤的文件瀏覽方式以其直觀的多層級展示而備受好評,所以本文將使用Python實現(xiàn)類似的功能,感興趣的可以了解下2025-08-08
Python將視頻或者動態(tài)圖gif逐幀保存為圖片的方法
本文是基于opencv將視頻和動態(tài)圖gif保存為圖像幀的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2019-09-09

