程序就是用來(lái)處理數(shù)據(jù)的,而變量就是用來(lái)存儲(chǔ)數(shù)據(jù)的
目標(biāo)
變量定義
變量的類(lèi)型
變量的命名
- 變量定義
在 Python 中,每個(gè)變量 在使用前都必須賦值,變量 賦值以后 該變量 才會(huì)被創(chuàng)建
等號(hào)(=)用來(lái)給變量賦值
= 左邊是一個(gè)變量名
= 右邊是存儲(chǔ)在變量中的值
變量名 = 值
變量定義之后,后續(xù)就可以直接使用了
- 變量演練1 —— iPython
定義 qq_number 的變量用來(lái)保存 qq 號(hào)碼
In [1]: qq_number = "1234567"
輸出 qq_number 中保存的內(nèi)容
In [2]: qq_number
Out[2]: '1234567'
定義 qq_password 的變量用來(lái)保存 qq 密碼
In [3]: qq_password = "123"
輸出 qq_password 中保存的內(nèi)容
In [4]: qq_password
Out[4]: '123'
使用交互式方式,如果要查看變量?jī)?nèi)容,直接輸入變量名即可,不需要使用 print 函數(shù)
- 變量演練 2 —— PyCharm
定義 qq 號(hào)碼變量
qq_number = "1234567"
定義 qq 密碼變量
qq_password = "123"
在程序中,如果要輸出變量的內(nèi)容,需要使用 print 函數(shù)
print(qq_number)
print(qq_password)
使用解釋器執(zhí)行,如果要輸出變量的內(nèi)容,必須要要使用 print 函數(shù)
- 變量演練 3 —— 超市買(mǎi)蘋(píng)果
可以用 其他變量的計(jì)算結(jié)果 來(lái)定義變量
變量定義之后,后續(xù)就可以直接使用了
需求
蘋(píng)果的價(jià)格是 8.5 元/斤
買(mǎi)了 7.5 斤 蘋(píng)果
計(jì)算付款金額
定義蘋(píng)果價(jià)格變量
price = 8.5
定義購(gòu)買(mǎi)重量
weight = 7.5
計(jì)算金額
money = price * weight
print(money)
思考題
如果 只要買(mǎi)蘋(píng)果,就返 5 塊錢(qián)
請(qǐng)重新計(jì)算購(gòu)買(mǎi)金額
定義蘋(píng)果價(jià)格變量
price = 8.5
定義購(gòu)買(mǎi)重量
weight = 7.5
計(jì)算金額
money = price * weight
只要買(mǎi)蘋(píng)果就返 5 元
money = money - 5
print(money)
提問(wèn)
上述代碼中,一共定義有幾個(gè)變量?
三個(gè):price/weight/money
money = money - 5 是在定義新的變量還是在使用變量?
直接使用之前已經(jīng)定義的變量
變量名 只有在 第一次出現(xiàn) 才是 定義變量
變量名 再次出現(xiàn),不是定義變量,而是直接使用之前定義過(guò)的變量
在程序開(kāi)發(fā)中,可以修改之前定義變量中保存的值嗎?
可以
變量中存儲(chǔ)的值,就是可以 變 的
- 變量的類(lèi)型
在內(nèi)存中創(chuàng)建一個(gè)變量,會(huì)包括:
變量的名稱(chēng)
變量保存的數(shù)據(jù)
變量存儲(chǔ)數(shù)據(jù)的類(lèi)型
變量的地址(標(biāo)示)
2.1 變量類(lèi)型的演練 —— 個(gè)人信息
需求
定義變量保存小明的個(gè)人信息
姓名:小明
年齡:18 歲
性別:是男生
身高:1.75 米
體重:75.0 公斤
利用 單步調(diào)試 確認(rèn)變量中保存數(shù)據(jù)的類(lèi)型
提問(wèn)
在演練中,一共有幾種數(shù)據(jù)類(lèi)型?
4 種
str —— 字符串
bool —— 布爾(真假)
int —— 整數(shù)
float —— 浮點(diǎn)數(shù)(小數(shù))
在 Python 中定義變量時(shí)需要指定類(lèi)型嗎?
不需要
Python 可以根據(jù) = 等號(hào)右側(cè)的值,自動(dòng)推導(dǎo)出變量中存儲(chǔ)數(shù)據(jù)的類(lèi)型
2.2 變量的類(lèi)型
在 Python 中定義變量是 不需要指定類(lèi)型(在其他很多高級(jí)語(yǔ)言中都需要)
數(shù)據(jù)類(lèi)型可以分為 數(shù)字型 和 非數(shù)字型
數(shù)字型
整型 (int)
浮點(diǎn)型(float)
布爾型(bool)
真 True 非 0 數(shù) —— 非零即真
假 False 0
復(fù)數(shù)型 (complex)
主要用于科學(xué)計(jì)算,例如:平面場(chǎng)問(wèn)題、波動(dòng)問(wèn)題、電感電容等問(wèn)題
非數(shù)字型
字符串
列表
元組
字典
提示:在 Python 2.x 中,整數(shù) 根據(jù)保存數(shù)值的長(zhǎng)度還分為:
int(整數(shù))
long(長(zhǎng)整數(shù))
使用 type 函數(shù)可以查看一個(gè)變量的類(lèi)型
In [1]: type(name)
2.3 不同類(lèi)型變量之間的計(jì)算
- 數(shù)字型變量 之間可以直接計(jì)算
在 Python 中,兩個(gè)數(shù)字型變量是可以直接進(jìn)行 算數(shù)運(yùn)算的
如果變量是 bool 型,在計(jì)算時(shí)
True 對(duì)應(yīng)的數(shù)字是 1
False 對(duì)應(yīng)的數(shù)字是 0
演練步驟
定義整數(shù) i = 10
定義浮點(diǎn)數(shù) f = 10.5
定義布爾型 b = True
在 iPython 中,使用上述三個(gè)變量相互進(jìn)行算術(shù)運(yùn)算
- 字符串變量 之間使用 + 拼接字符串
在 Python 中,字符串之間可以使用 + 拼接生成新的字符串
In [1]: first_name = "三"
In [2]: last_name = "張"
In [3]: first_name + last_name
Out[3]: '三張'
字符串變量 可以和 整數(shù) 使用 * 重復(fù)拼接相同的字符串
In [1]: "-" * 50
Out[1]: '--------------------------------------------------'數(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'
類(lèi)型錯(cuò)誤:+ 不支持的操作類(lèi)型:int 和 str
2.4 變量的輸入
所謂 輸入,就是 用代碼 獲取 用戶(hù)通過(guò) 鍵盤(pán) 輸入的信息
例如:去銀行取錢(qián),在 ATM 上輸入密碼
在 Python 中,如果要獲取用戶(hù)在 鍵盤(pán) 上的輸入信息,需要使用到 input 函數(shù)
- 關(guān)于函數(shù)
一個(gè) 提前準(zhǔn)備好的功能(別人或者自己寫(xiě)的代碼),可以直接使用,而 不用關(guān)心內(nèi)部的細(xì)節(jié)
目前已經(jīng)學(xué)習(xí)過(guò)的函數(shù)
函數(shù)
說(shuō)明
print(x)
將 x 輸出到控制臺(tái)
type(x)
查看 x 的變量類(lèi)型
- input 函數(shù)實(shí)現(xiàn)鍵盤(pán)輸入
在 Python 中可以使用 input 函數(shù)從鍵盤(pán)等待用戶(hù)的輸入
用戶(hù)輸入的 任何內(nèi)容 Python 都認(rèn)為是一個(gè) 字符串
語(yǔ)法如下:
字符串變量 = input("提示信息:")
- 類(lèi)型轉(zhuǎn)換函數(shù)
函數(shù) 描述
int(x [,base])
將x轉(zhuǎn)換為一個(gè)整數(shù)
long(x [,base] )
將x轉(zhuǎn)換為一個(gè)長(zhǎng)整數(shù)
float(x)
將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
complex(real [,imag])
創(chuàng)建一個(gè)復(fù)數(shù)
str(x)
將對(duì)象 x 轉(zhuǎn)換為字符串
repr(x)
將對(duì)象 x 轉(zhuǎn)換為表達(dá)式字符串
eval(str)
用來(lái)計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象
tuple(s)
將序列 s 轉(zhuǎn)換為一個(gè)元組
list(s)
將序列 s 轉(zhuǎn)換為一個(gè)列表
set(s)
轉(zhuǎn)換為可變集合
dict(d)
創(chuàng)建一個(gè)字典。d 必須是一個(gè)序列 (key,value)元組。
frozenset(s)
轉(zhuǎn)換為不可變集合
chr(x)
將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符
unichr(x)
將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符
ord(x)
將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值
hex(x)
將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串
oct(x)
將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串
- 變量輸入演練 —— 超市買(mǎi)蘋(píng)果增強(qiáng)版
需求
收銀員輸入 蘋(píng)果的價(jià)格,單位:元/斤
收銀員輸入 用戶(hù)購(gòu)買(mǎi)蘋(píng)果的重量,單位:斤
計(jì)算并且 輸出 付款金額
演練方式 1
1. 輸入蘋(píng)果單價(jià)
price_str = input("請(qǐng)輸入蘋(píng)果價(jià)格:")
2. 要求蘋(píng)果重量
weight_str = input("請(qǐng)輸入蘋(píng)果重量:")
3. 計(jì)算金額
1> 將蘋(píng)果單價(jià)轉(zhuǎn)換成小數(shù)
price = float(price_str)
2> 將蘋(píng)果重量轉(zhuǎn)換成小數(shù)
weight = float(weight_str)
3> 計(jì)算付款金額
money = price * weight
print(money)
提問(wèn)
演練中,針對(duì) 價(jià)格 定義了幾個(gè)變量?
兩個(gè)
price_str 記錄用戶(hù)輸入的價(jià)格字符串
price 記錄轉(zhuǎn)換后的價(jià)格數(shù)值
思考 —— 如果開(kāi)發(fā)中,需要用戶(hù)通過(guò)控制臺(tái) 輸入 很多個(gè) 數(shù)字,針對(duì)每一個(gè)數(shù)字都要定義兩個(gè)變量,方便嗎?
演練方式 2 —— 買(mǎi)蘋(píng)果改進(jìn)版
定義 一個(gè) 浮點(diǎn)變量 接收用戶(hù)輸入的同時(shí),就使用 float 函數(shù)進(jìn)行轉(zhuǎn)換
price = float(input("請(qǐng)輸入價(jià)格:"))
改進(jìn)后的好處:
節(jié)約空間,只需要為一個(gè)變量分配空間
起名字方便,不需要為中間變量起名字
改進(jìn)后的“缺點(diǎn)”:
初學(xué)者需要知道,兩個(gè)函數(shù)能夠嵌套使用,稍微有一些難度
提示
如果輸入的不是一個(gè)數(shù)字,程序執(zhí)行時(shí)會(huì)出錯(cuò),有關(guān)數(shù)據(jù)轉(zhuǎn)換的高級(jí)話題,后續(xù)會(huì)講!
2.5 變量的格式化輸出
蘋(píng)果單價(jià) 9.00 元/斤,購(gòu)買(mǎi)了 5.00 斤,需要支付 45.00 元
在 Python 中可以使用 print 函數(shù)將信息輸出到控制臺(tái)
如果希望輸出文字信息的同時(shí),一起輸出 數(shù)據(jù),就需要使用到 格式化操作符
% 被稱(chēng)為 格式化操作符,專(zhuān)門(mén)用于處理字符串中的格式
包含 % 的字符串,被稱(chēng)為 格式化字符串
% 和不同的 字符 連用,不同類(lèi)型的數(shù)據(jù) 需要使用 不同的格式化字符
格式化字符
含義
%s
字符串
%d
有符號(hào)十進(jìn)制整數(shù),%06d 表示輸出的整數(shù)顯示位數(shù),不足的地方使用 0 補(bǔ)全
%f
浮點(diǎn)數(shù),%.2f 表示小數(shù)點(diǎn)后只顯示兩位
%%
輸出 %
語(yǔ)法格式如下:
print("格式化字符串" % 變量1)
print("格式化字符串" % (變量1, 變量2...))
格式化輸出演練 —— 基本練習(xí)
需求
定義字符串變量 name,輸出 我的名字叫 小明,請(qǐng)多多關(guān)照!
定義整數(shù)變量 student_no,輸出 我的學(xué)號(hào)是 000001
定義小數(shù) price、weight、money,輸出 蘋(píng)果單價(jià) 9.00 元/斤,購(gòu)買(mǎi)了 5.00 斤,需要支付 45.00 元
定義一個(gè)小數(shù) scale,輸出 數(shù)據(jù)比例是 10.00%
print("我的名字叫 %s,請(qǐng)多多關(guān)照!" % name)
print("我的學(xué)號(hào)是 %06d" % student_no)
print("蘋(píng)果單價(jià) %.02f 元/斤,購(gòu)買(mǎi) %.02f 斤,需要支付 %.02f 元" % (price, weight, money))
print("數(shù)據(jù)比例是 %.02f%%" % (scale * 100))
課后練習(xí) —— 個(gè)人名片
需求
在控制臺(tái)依次提示用戶(hù)輸入:姓名、公司、職位、電話、郵箱
按照以下格式輸出:
公司名稱(chēng)
姓名 (職位)
電話:電話
郵箱:郵箱
實(shí)現(xiàn)代碼如下:
"""
在控制臺(tái)依次提示用戶(hù)輸入:姓名、公司、職位、電話、電子郵箱
"""
name = input("請(qǐng)輸入姓名:")
company = input("請(qǐng)輸入公司:")
title = input("請(qǐng)輸入職位:")
phone = input("請(qǐng)輸入電話:")
email = input("請(qǐng)輸入郵箱:")
print("" * 50)
print(company)
print()
print("%s (%s)" % (name, title))
print()
print("電話:%s" % phone)
print("郵箱:%s" % email)
print("" * 50)
謝謝