python開發(fā)之路【第三章】:python數(shù)字類型與字符串
數(shù)字類型
整型
表示整數(shù),包含正數(shù)、負(fù)數(shù)、0。
Python中使用4種進(jìn)制表示整型,分別為二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制。
- 0b1010----二進(jìn)制
- 0o12------八進(jìn)制
- 10--------十進(jìn)制
- 0xA-------十六進(jìn)制
浮點(diǎn)型
表示小數(shù),包含正數(shù)、負(fù)數(shù),0.0。
浮點(diǎn)數(shù)一般以十進(jìn)制形式表示,對(duì)于較大或較小的浮點(diǎn)數(shù),可以使用科學(xué)計(jì)數(shù)法表示。
- num_one = 3.14------# 十進(jìn)制形式表示
- num_two = 2e2-------# 科學(xué)計(jì)數(shù)法表示
- num_third = 2e-2-----# 科學(xué)計(jì)數(shù)法表示
復(fù)數(shù)類型
復(fù)數(shù)有以下3個(gè)特點(diǎn):
- 復(fù)數(shù)由實(shí)部和虛部構(gòu)成,其一般形式為:real+imagj*1j。
- 實(shí)部real和虛部的imag都是浮點(diǎn)型。
- 虛部必須有后綴j或J。
Python中有兩種創(chuàng)建復(fù)數(shù)的方式,一種是按照復(fù)數(shù)的一般形式直接創(chuàng)建,另一種是通過(guò)內(nèi)置函數(shù)complex()創(chuàng)建。
- num_one = 3 + 2j----------------# 直接創(chuàng)建
- num_two = complex(3, 2)--------# 通過(guò)內(nèi)置函數(shù)創(chuàng)建
布爾類型
Python中的布爾類型(bool)只有兩個(gè)取值:True和False。
Python中的任何對(duì)象都可以轉(zhuǎn)換為布爾類型,若要進(jìn)行轉(zhuǎn)換,符合以下條件的數(shù)據(jù)都會(huì)被轉(zhuǎn)換為False:
- None;
- 任何為0的數(shù)字類型,如0、0.0、0j;
- 任何空序列,如''''、()、[];
- 任何空字典,如{};
- 用戶定義的類實(shí)例,如類中定義了__bool__()或者_(dá)_len__()。
類型轉(zhuǎn)換函數(shù)
Python內(nèi)置了一系列可實(shí)現(xiàn)強(qiáng)制類型轉(zhuǎn)換的函數(shù),保證用戶在有需求的情況下,將目標(biāo)數(shù)據(jù)轉(zhuǎn)換為指定的類型。

- int()函數(shù)、float()函數(shù)只能轉(zhuǎn)換符合數(shù)字類型格式規(guī)范的字符串;
- 使用int()函數(shù)將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù)時(shí),若有必要會(huì)發(fā)生截?cái)啵ㄈ≌┒撬纳嵛迦搿?/li>
點(diǎn)擊查看代碼
# str -> int
data01 = int("3")
# int -> str
data02 = str(5)
# str -> float
data03 = float("1.2")
# float -> str
data04 = str(1.2)
# int -> float
data05 = float(250)
# float -> int
data06 = int(1.9)
print(data06) # 1 向下取整(截?cái)鄤h除)
字符串
Python支持使用單引號(hào)、雙引號(hào)和三引號(hào)定義字符串,其中單引號(hào)和雙引號(hào)通常用于定義單行字符串,三引號(hào)通常用于定義多行字符串。
- 使用單引號(hào)------'hello world'
- 使用雙引號(hào)------"hello world"
- 使用三引號(hào)------"""my name is itcast
- ----------------------my name is itcast"""
注:定義字符串時(shí)單引號(hào)與雙引號(hào)可以嵌套使用,需要注意的是,使用雙引號(hào)表示的字符串中允許嵌套單引號(hào),但不允許包含雙引號(hào),同樣,使用單引號(hào)表示的字符串中不允許包含單引號(hào)。
字符格式化輸出
f-strings
f-strings在格式上以f或F引領(lǐng)字符串,字符串中使用{}標(biāo)明被格式化的變量。
點(diǎn)擊查看代碼
name = '小淇'
age = 20
gender = '男'
print(f'我的名字是{name},今年{age}歲了,我的性別是:{gender}。')
"我的名字是小淇,今年20歲了,我的性別是:男。"
字符串拼接
字符串的拼接可以直接使用“+”符號(hào)實(shí)現(xiàn)
點(diǎn)擊查看代碼
name = "小淇"
print("您好:" + name) # 文本拼接
"您好:小淇"
字符串替換
replace()
字符串的replace()方法可使用新的子串替換目標(biāo)字符串中原有的子串。
該方法的語(yǔ)法格式如下:
str.replace(old, new, count=None)
- old --- 表示原有子串。
- new --- 表示新的子串。
- count -- 用于設(shè)定替換次數(shù)。
點(diǎn)擊查看代碼
name = "我是小淇,我今年20歲了"
print(name.replace("我", "他", 2))
"他是小淇,他今年20歲了"
字符串分割
split()
字符串的split()方法可以使用分隔符把字符串分割成序列。
該方法的語(yǔ)法格式如下:
str.split(sep=None, maxsplit=-1)
- sep ------- 分隔符,默認(rèn)為空格。
- maxsplit -- 用于設(shè)定分割次數(shù)。
主:分割后返回的是一個(gè)字符串列表
點(diǎn)擊查看代碼
name = "小淇 小羽"
print(name.split())
['小淇', '小羽']
去除字符串兩側(cè)的字符
strip()
字符串對(duì)象的strip()方法一般用于去除字符串兩側(cè)的空格。
該方法的語(yǔ)法格式如下:
str.strip(chars=None)
- chars -- 要去除的字符,默認(rèn)為空格
點(diǎn)擊查看代碼
word = " strip "
print(word.strip())
"strip"
字符串的索引與切片
索引
字符串是一個(gè)由元素組成的序列,每個(gè)元素所處的位置是固定的,并且對(duì)應(yīng)著一個(gè)位置編號(hào),編號(hào)從0開始,依次遞增1,這個(gè)位置編號(hào)被稱為索引或者下標(biāo)。
索引自0開始從左至右依次遞增,這樣的索引稱為正向索引;若索引自-1開始,從右至左依次遞減,則索引為反向索引。


通過(guò)索引可以獲取指定位置的字符,語(yǔ)法格式如下:
- 字符串[索引]
當(dāng)通過(guò)索引訪問(wèn)字符串值時(shí),索引的范圍不能越界,否則程序會(huì)報(bào)索引越界的異常。
切片
切片是截取目標(biāo)對(duì)象中一部分的操作,語(yǔ)法格式如下:
- [起始:結(jié)束:步長(zhǎng)]
切片步長(zhǎng)默認(rèn)為1。注意,切片選取的區(qū)間屬于左閉右開型,切下的子串包含起始位,但不包含結(jié)束位。
點(diǎn)擊查看代碼
string = "python"
string[0:4:2]
"pt"
運(yùn)算符
算術(shù)運(yùn)算符
算術(shù)運(yùn)算符包括+、-、*、/、//、%和**,這些運(yùn)算符都是雙目運(yùn)算符,每個(gè)運(yùn)算符可以與兩個(gè)操作數(shù)組成一個(gè)表達(dá)式。

Python中的算術(shù)運(yùn)算符支持對(duì)相同或不同類型的數(shù)字進(jìn)行混合運(yùn)算。
點(diǎn)擊查看代碼
>>> 3 + (3 +2j) # 整型+復(fù)數(shù)
(6 + 2j)
>>> 3 * 4.5 # 整型+浮點(diǎn)型
13.5
>>> 5.5 - (2 + 3j) # 浮點(diǎn)型-復(fù)數(shù)
(3.5 - 3j)
>>> True + (1 + 2j) # 布爾類型+復(fù)數(shù)
(2 + 2j)
Python在對(duì)不同類型的對(duì)象進(jìn)行運(yùn)算時(shí),會(huì)強(qiáng)制將對(duì)象的類型進(jìn)行臨時(shí)類型轉(zhuǎn)換,這些轉(zhuǎn)換遵循如下規(guī)律:
- 布爾類型進(jìn)行算術(shù)運(yùn)算時(shí),被視為數(shù)值0或1;
- 整型與浮點(diǎn)型運(yùn)算時(shí),將整型轉(zhuǎn)化為浮點(diǎn)型;
- 其它類型與復(fù)數(shù)運(yùn)算時(shí),將其它類型轉(zhuǎn)換為復(fù)數(shù)類型。
比較運(yùn)算符
比較運(yùn)算符有:==、!=、>、<、>=、<=。比較運(yùn)算符同樣是雙目運(yùn)算符,它與兩個(gè)操作數(shù)構(gòu)成一個(gè)表達(dá)式。

增強(qiáng)運(yùn)算符
“=”是基本的賦值運(yùn)算符,此外“=”可與算術(shù)運(yùn)算符組合成增強(qiáng)運(yùn)算符。

邏輯運(yùn)算符
Python中分別使用or、and、not這三個(gè)關(guān)鍵字作為邏輯運(yùn)算“或”、“與”、“非”的運(yùn)算符,其中or與and為雙目運(yùn)算符,not為單目運(yùn)算符。
and(與)
表示并且的關(guān)系,類似串聯(lián)

or(或)
表示或者的關(guān)系,類似并聯(lián)

not(非)
表示取反

運(yùn)算符優(yōu)先級(jí)
為了避免含有多個(gè)運(yùn)算符的表達(dá)式出現(xiàn)歧義,Python為每種運(yùn)算符都設(shè)定了優(yōu)先級(jí)。

默認(rèn)情況下,運(yùn)算符的優(yōu)先級(jí)決定了復(fù)雜表達(dá)式中的哪個(gè)單一表達(dá)式先執(zhí)行,但用戶可使用圓括號(hào)“()”改變表達(dá)式的執(zhí)行順序。
- 例如:(3+4)*5
練習(xí)題
1. 溫度轉(zhuǎn)換器:
攝氏度 = (華氏度 - 32) 除以 1.8
在終端中錄入攝氏度,計(jì)算華氏度
點(diǎn)擊查看代碼
celsius = float(input("請(qǐng)輸入攝氏度數(shù):"))
fahrenheit = celsius * 1.8 + 32
print(f"{celsius}攝氏度等于{fahrenheit:.2f}華氏度")
2. 閏年計(jì)算
能夠被4整除但是不能被100整除,或者是可以被400整除
終端中輸入一個(gè)4位年份,輸出true或者false
點(diǎn)擊查看代碼
year = int(input("請(qǐng)輸入一個(gè)年份:"))
print((year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
3. 單位換算
古代的稱 一斤16兩 在終端中獲取兩, 計(jì)算是幾斤幾兩
假設(shè): 20兩 ==> 1斤4兩
點(diǎn)擊查看代碼
# 1. 獲取數(shù)據(jù)
num = int(input("請(qǐng)輸入兩數(shù):"))
# 2. 邏輯計(jì)算
jin_num = num // 16
liang_num = num % 16
# 3. 格式化輸出
print(f"{num}兩等于{jin_num}斤{liang_num}兩")
4. 計(jì)算相加和
在終端中輸入一個(gè)四位數(shù),計(jì)算每一位相加和
- 例如:1234 1+2+3+4=10
- 效果:
- 請(qǐng)輸入四位整數(shù):1234
- 結(jié)果是:10
點(diǎn)擊查看代碼
four_numbers = int(input("請(qǐng)輸入一個(gè)四位整數(shù):"))
# 取個(gè)位
ge_wei = four_numbers % 10
# 取十位
shi_wei = four_numbers // 10 % 10
# 取百位
bai_wei = four_numbers // 100 % 10
# 取千位
qian_wei = four_numbers // 1000
total = ge_wei + shi_wei + bai_wei + qian_wei
print("總和是:", total)
浙公網(wǎng)安備 33010602011771號(hào)