【一】數字類型(int/float)
【1】作用
【2】定義
# (1)整型 -- int
shuzi = 10
#查看內存地址
print(id(shuzi)) #2220708266512
#查看變量類型
print(type(shuzi)) #<class 'int'>
# (3)使用場景
# 可以用來進行加減乘除的運算
# 【2】浮點數類型
# (1)用途
# 可以用來表示帶小數的數值
# (2)語法
# 變量名 = 浮點數
height = 175.00
print(type(height)) # <class 'float'>
# (3)場景
# 取款的時候你會發現取款金額和余額都不是整數
# 100.00
【二】字符串類型
【1】用途
# 用來標識文本信息
【2】語法
# 變量名 = 變量值(加引號 ,一個單引號,一個雙引號,三個單引號,三個雙引號)
name = "song"
print(name, type(name)) # dream <class 'str'>
name = 'song'
print(name, type(name)) # Dream <class 'str'>
name = '''song'''
print(name, type(name)) # Dream <class 'str'>
name = """song"""
print(name, type(name)) # Dream <class 'str'>
# 如果單雙引號進行混用
name = "'name'" # 雙引號中混用的單引號
print(name, type(name)) # 'name' <class 'str'>
name = '"name"' # 單引號中混用的雙引號
print(name, type(name)) # "name" <class 'str'>
# 測試在雙引號內存出現單獨的單引號
name = "name'"
print(name, type(name)) # name' <class 'str'>
name = 'name"'
print(name, type(name)) # name" <class 'str'>
sentence = "my name is dream ,I'm 18 years old,hope you 'wonderful!'"
# 中間的 ' 產生了歧義 按照正常的字符串語法 單雙引號應該成對出現
# 所以在單引號內部不能出現單獨單引號,但是單引號內部可以出現單獨的雙引號
# sentence = 'my name is dream ,I'm 18 years old,hope you "wonderful!"'
# 所以在雙引號內部不能出現單獨雙引號,但是雙引號內部可以出現單獨的單引號
# sentence = "my name is dream ,I"m 18 years old,hope you 'wonderful!'"
# 在三引號內部,如果第一行不寫內容默認存在一個換行
sentence = '''my name is dream ,
I'm 18 years old,
hope you 'wonderful!'
'''
print(sentence, type(sentence)) # <class 'str'>
【3】使用方法
# (1)字符串加法
# 字符串可以通過加號 `+` 進行拼接
# 相加其實就是簡單的字符串拼接
greeting = "Hello"
name = "Dream"
message = greeting + ", " + name + "!"
print(message) # Hello, Dream!
# (2)相乘
divider = "-" * 20
print(divider) # --------------------
# (3)索引取值
# 字符串屬于序列類型,所謂序列,指的是一塊可存放多個值的連續內存空間,這些值按一定順序排列,可通過每個值所在位置的編號(稱為索引)訪問它們。
![]()
msg = 'Hello World'
print(len(msg)) # 11
# 取索引為 0 的位置的元素
print(msg[0]) # H
# 取索引位置為 10 的元素 (上面打印的長度為11,但是我們是從 0 開始計數的,所以是 11-1=10)
print(msg[10]) # d
# Python 還支持索引值是負數,此類索引是從右向左計數,換句話說,從最后一個元素開始計數,從索引值 -1 開始
![]()
msg = 'Hello World'
print(len(msg)) # 11
# 取索引為 -1 的位置的元素
print(msg[-1]) # d
# 取索引位置為 -11 的元素 (上面打印的長度為11,但是我們是從 -1 開始計數的,所以是 -11)
print(msg[-11]) # H
【4】字符串的格式化輸出
# 變量可以用來存儲值
# (1)格式化輸出語法一 : %
name = "Dream"
age = 18
height = 175.5
# 使用 %s 占位符,輸出字符串
print("My name is %s." % name)
# My name is Dream.
# 使用 %d 占位符,輸出整數
print("My age is %d." % age)
# My age is 18.
# 使用 %f 占位符,輸出浮點數,默認保留六位小數
print("My height is %f." % height)
# My height is 175.500000.
# 使用 %.2f 占位符,保留兩位小數
print("My height is %.2f." % height)
# My height is 175.50.
# 使用 %x 占位符,輸出十六進制整數
number = 255
print("Number in hex: %x." % number)
# Number in hex: ff.
# 兩個以上的占位符格式化輸出
print("My name is %s; My age is %d" % (name, age))
# My name is Dream; My age is 18
# (2)f + {}
# myself_sentence = f"my name is {name},my age is {age}"
name = "Dream"
age = 18
print(f"My name is {name}; My age is {age}")
# My name is Dream; My age is 18
# (3)format輸出語法
# 按照位置傳值
# myself_sentence = "my name is {},my age is {}".format(name, age)
# 按照關鍵字傳值
myself_sentence = "my age is {age},my name is {name}".format(name=name, age=age)
print(myself_sentence)
name = "Dream"
age = 18
print("My name is {}; My age is {}".format(name, age))
# My name is Dream; My age is 18
# \ 在python中輸入數轉移符號
# name = "dream \n"
name = "dream\\" # dream\
print(name)
print(age)
【三】列表類型
【1】作用
# 用來存取多個相同屬性的值,并且方便存取
# 如果我們需要用一個變量記錄多個學生的姓名,用數字類型是無法實現,字符串類型則可以記錄下來
【2】語法
# 字符串類型
stu_names=’張三 李四 王五’
# 列表類型
names_list = ['張三', '李四', '王五']
【3】索引取值
列表類型
names_list = ['張三', '李四', '王五']
# 索引取值
first_student = names_list[0]
print(first_student) # 輸出結果:張三
second_student = names_list[1]
print(second_student) # 輸出結果:李四
【4】列表嵌套及嵌套取值
info_list = [
"dream", ["15", ["上海"]]
]
# 如果想取到最后一層
print(info_list) # ['dream', ['15', ['上海']]]
print(info_list[1]) # ['15', ['上海']]
print(info_list[1][1]) # ['上海']
print(info_list[1][1][0]) # 上海
print(f"以下是字典類型")
【四】字典類型
【1】作用
# 可以記錄多個值,并且這些值帶有各自及的名字
# 字典數據存儲的方式 是 key:value
【2】語法
# 里面存的每一個值都是 key:value 的 kv鍵值對
infO_data = {
"name": "dream",
"age": 18,
"hobby": ["music", "run", "make girlfriends"]
}
【3】取值
(一)字典取值(鍵取值)
person_info = {'name': 'Dream', 'age': 18, 'height': 185.3, 'hobby': ["動漫", "小說"]}
# 字典取值(鍵取值)
name = person_info['name']
print(name) # 輸出結果:Dream
age = person_info['age']
print(age) # 輸出結果:18
# .get(鍵)取值
print(infO_data.get("name")) # dream
# .get(key) 取值,如果字典中不存在鍵對應的值不會報錯,而是反悔了一個 None
print(infO_data.get("addr"), type(infO_data.get("addr"))) # None <class 'NoneType'>
(2)字典嵌套及取值
info = {
'name': 'Dream',
'addr': {
'國家': '中國',
'info': [666, {'age': 18}, 999, {'編號': 466722, 'hobby': ['read', 'study', 'music']}]
}
}
# 格式化輸出
# sentence = "my name is name ,my age is age ,my id is id ,my location is location , my hobby is music-read-study"
d1 = info['name']
d2 = info['addr']['info'][1]['age']
d3 = info['addr']['info'][3]['編號']
d4 = info['addr']['國家']
d5 = info['addr']['info'][3]['hobby']
d6 = d5[0]
d7 = d5[1]
d8 = d5[2]
print(f"my name is {d1},my age is {d2},my id is {d3},my location is {d4},my hobby is {d6} {d7} {d8}")
【五】布爾類型
【1】作用
- 布爾類型用于表示邏輯值,只有兩個取值:True 和 False。
- 在編程中,布爾類型經常用于控制程序的流程,例如條件判斷、循環等。
【2】定義
- 布爾類型只有兩個取值:True 和 False。在 Python 中,首字母必須大寫
- 布爾值的命名規范:結果可能是布爾值的情況,我們都采用 is 開頭 命名
# 定義布爾類型
is_student = True
is_adult = False
(1)條件判斷
# 使用布爾類型進行條件判斷
is_raining = True
if is_raining:
print("Remember to bring an umbrella!")
else:
print("Enjoy the weather!")
(2)比較運算
# 使用布爾類型進行比較運算
x = 5
y = 10
is_greater = x > y
print(is_greater) # 輸出結果:False
【3】python中的真與假
# 哪些情況是真?
# 數字 1 為真 非空列表、非空字典、非空集合等
# 非零數字 非空字符串
# 不存在的情況:空值為假,空的字符串、空的列表、空的字典、空的元組、數字 0
name = ""
name = []
name = {}
name = 2
# name = False
print(bool(name)) # False
name = "11"
print(bool(name))
【六】元組類型
【1】作用
- 元組(tuple)是一種不可變的序列類型,類似于列表,用于存儲多個有序元素。
- 元組與列表的主要區別在于元組的元素不能被修改、刪除或添加,是不可變的數據類型。
- 元組通常用于存儲相關聯的數據,保持數據的完整性。
【2】定義
- 元組通過小括號
() 定義,其中的元素可以是不同的數據類型,用逗號 , 分隔。
- 可以使用索引訪問元組的元素。
# 定義元組
my_tuple = (1, 'hello', 3.14, True)
# 訪問元組元素
first_element = my_tuple[0]
second_element = my_tuple[1]
print(first_element) # 1
print(second_element) # 'hello'
【3】使用
- 由于元組是不可變的,不能對元素進行修改、刪除或添加。
(1)基本操作
# 切片操作
my_tuple = (1, 'hello', 3.14, True)
sliced_tuple = my_tuple[1:3]
print(sliced_tuple) # ('hello', 3.14)
# 拼接操作
new_tuple = my_tuple + ('world', False)
print(new_tuple) # (1, 'hello', 3.14, True, 'world', False)
(2)解包
- 元組解包是一種將元組中的元素分配給多個變量的方法。
# 元組解包
a, b, c, d = my_tuple
print(a) # 1
print(b) # 'hello'
print(c) # 3.14
print(d) # True
# name = 'dream'
# age = 18
# print("my name is %s my age is %d" % (name, age))
# 特別注意:元組中有一個元素的時候一定要加 ,
name = ("dream")
print(name, type(name)) # dream <class 'str'>
name = ("dream",)
print(name, type(name)) # ('dream',) <class 'tuple'>
# 字符串類型
name_tuple = ('dream')
# 字符類型 + , ----> 元組類型
name_tuple = ('dream',)
name_tuple = ('dream', 18)
print(name_tuple)
print(type(name_tuple))
# 字符串定義的時候 后面不要 + ,
name_one = 'dream',
print(name_one)
print(type(name_one))
【七】集合類型
# 集合 : 無序且去重 在集合里面看不到重復的元素
# {key:value} : 字典
# {key} : 集合
num = {1, 2, 3, 4, 5, 5, 5, 5, 5, 5}
print(num, type(num))
# 集合類型中不能存放的元素類型是 字典和列表 : 因字典和列表是可變數據類型不能被 hash
num = {1, 2, 3, 'name', 'dream', 4, 1.11, 5, 5, 5, 5, 5, 5}
print(num)
# {1, 2, 3, 4, 1.11, 5, 'dream', 'name'}
# {1, 'name', 3, 2, 4, 1.11, 5, 'dream'}
# {'name', 2, 3, 4, 1, 1.11, 5, 'dream'}