第7節(jié):變量和類型
思考 QQ 程序的登錄過程
思考 1
QQ如何驗(yàn)證賬號和密碼?
答案
CPU 對賬號信息進(jìn)行處理并發(fā)送給服務(wù)器(騰訊保存賬號信息的計(jì)算機(jī)),服務(wù)器校驗(yàn)后將結(jié)果返回給QQ客戶端
思考 2
CPU如何獲取 QQ 號碼 和 QQ 密碼 掂僵?
答案
- 為 QQ號碼 和 QQ密碼 各自分配一塊內(nèi)存空間砌们,將其 保存到內(nèi)存 中
- 在程序內(nèi)肉康,使用 變量 作為 內(nèi)存空間的 別名 來 存儲和訪問內(nèi)存空間中的數(shù)據(jù)
- 程序就是用來處理數(shù)據(jù)的能岩,而變量就是用來存儲數(shù)據(jù)的
01. 變量定義
- 在 Python 中,每個變量 在使用前都必須賦值株灸,變量 賦值以后 該變量 才會被創(chuàng)建
- 等號(=)用來給變量賦值
-
=
左邊是一個變量名 -
=
右邊是存儲在變量中的值
-
變量名 = 值
變量定義之后崇摄,后續(xù)就可以直接使用了
1) 變量演練 1 —— PyCharm
# 定義 qq 號碼變量
qq_number = "1234567"
# 定義 qq 密碼變量
qq_password = "123"
# 在程序中,如果要輸出變量的內(nèi)容慌烧,需要使用 print 函數(shù)
print(qq_number)
print(qq_password)
使用非交互式執(zhí)行逐抑,如果要輸出變量的內(nèi)容,必須要要使用
2) 變量演練 2 —— 超市買蘋果
- 可以用 其他變量的計(jì)算結(jié)果 來定義變量
- 變量定義之后杏死,后續(xù)就可以直接使用了
需求
- 蘋果的價格是 8.5 元/斤
- 買了 7.5 斤 蘋果
- 計(jì)算付款金額
# 定義蘋果價格變量
price = 8.5
# 定義購買重量
weight = 7.5
# 計(jì)算金額
money = price * weight
print(money)
思考題
- 如果 只要買蘋果,就返 5 塊錢
- 請重新計(jì)算購買金額
# 定義蘋果價格變量
price = 8.5
# 定義購買重量
weight = 7.5
# 計(jì)算金額
money = price * weight
# 只要買蘋果就返 5 元
money = money - 5
print(money)
提問
-
上述代碼中捆交,一共定義有幾個變量淑翼?
- 三個:
price
/weight
/money
- 三個:
money = money - 5
是在定義新的變量還是在使用變量?
直接使用之前已經(jīng)定義的變量
變量名 只有在 第一次出現(xiàn) 才是 定義變量
變量名 再次出現(xiàn)品追,不是定義變量玄括,而是直接使用之前定義過的變量
-
在程序開發(fā)中,可以修改之前定義變量中保存的值嗎肉瓦?
- 可以
- 變量中存儲的值遭京,就是可以 變 的
02. 變量的類型
-
生活中的“類型”的例子:車的類型
[圖片上傳失敗...(image-a72bc-1552833399943)]
程序中:
為了區(qū)分變量的功能和更有效率的管理內(nèi)存,變量是有不同的類型的
2.1 變量類型的演練 —— 個人信息
需求
- 定義變量保存小明的個人信息
- 姓名:小明
- 年齡:18 歲
- 性別:是男生
- 身高:1.75 米
- 體重:75.0 公斤
利用 單步調(diào)試 確認(rèn)變量中保存數(shù)據(jù)的類型
提問
-
在演練中泞莉,一共有幾種數(shù)據(jù)類型哪雕?
- 4 種
-
str
—— 字符串 -
bool
—— 布爾(真假) -
int
—— 整數(shù) -
float
—— 浮點(diǎn)數(shù)(小數(shù))
在
Python
中定義變量時需要指定類型嗎?
- 不需要
-
Python
可以根據(jù)=
等號右側(cè)的值鲫趁,自動推導(dǎo)出變量中存儲數(shù)據(jù)的類型
2.2 變量的類型
在
Python
中定義變量是 不需要指定類型(在其他很多高級語言中都需要)數(shù)據(jù)類型可以分為 數(shù)字型 和 非數(shù)字型
-
數(shù)字型
整型 (
int
)浮點(diǎn)型(
float
)-
布爾型(
bool
)
- 真
True
數(shù)學(xué)運(yùn)算時表示 1
- 假
False
數(shù)學(xué)運(yùn)算時表示 0
- 真
-
復(fù)數(shù)型 (
complex
)
- 主要用于科學(xué)計(jì)算斯嚎,例如:平面場問題、波動問題挨厚、電感電容等問題
-
非數(shù)字型
- 字符串
- 列表
- 元組
- 字典
提示:在 Python 2.x 中堡僻,整數(shù) 根據(jù)保存數(shù)值的長度還分為:
int
(整數(shù))long
(長整數(shù))
- 使用
type
函數(shù)可以查看一個變量的類型
In [1]: type(name)
2.3 不同類型變量之間的計(jì)算
1) 數(shù)字型變量 之間可以直接計(jì)算
在 Python 中,兩個數(shù)字型變量是可以直接進(jìn)行 算數(shù)運(yùn)算的
如果變量是
bool
型疫剃,在計(jì)算時
-
True
對應(yīng)的數(shù)字是1
-
False
對應(yīng)的數(shù)字是0
演練步驟
- 定義整數(shù)
i = 10
- 定義浮點(diǎn)數(shù)
f = 10.5
- 定義布爾型
b = True
- 在 iPython 中钉疫,使用上述三個變量相互進(jìn)行算術(shù)運(yùn)算
2) 字符串變量 之間使用 +
拼接字符串
- 在 Python 中,字符串之間可以使用
+
拼接生成新的字符串
In [1]: first_name = "三"
In [2]: last_name = "張"
In [3]: first_name + last_name
Out[3]: '三張'
3) 字符串變量 可以和 整數(shù) 使用 *
重復(fù)拼接相同的字符串
In [1]: "-" * 50
Out[1]: '--------------------------------------------------'
4) 數(shù)字型變量 和 字符串 之間 不能進(jìn)行其他計(jì)算
In [1]: first_name = "zhang"
In [2]: x = 10
In [3]: x + first_name
---------------------------------------------------------------------------
TypeError: unsupported operand type(s) for +: 'int' and 'str'
類型錯誤:`+` 不支持的操作類型:`int` 和 `str`