日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

课时5:闲聊之Python的数据类型

發(fā)布時(shí)間:2024/6/30 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 课时5:闲聊之Python的数据类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄:

一、引言

二、數(shù)據(jù)類型

  >整型

  >浮點(diǎn)型

  >布爾類型

三、類型轉(zhuǎn)換

四、獲得關(guān)于類型的信息

五、課時(shí)05課后習(xí)題及答案

?

***********

一、引言

***********

大家還記得‘520’和520的區(qū)別嗎?

沒錯(cuò),帶了引號(hào)的,無(wú)論是單引號(hào)還是雙引號(hào)或者是三引號(hào),都是字符串;但不帶引號(hào)的,就是數(shù)字。字符串相加叫作拼接。

>>> "520"+'1314' '5201314' >>> 520+1314 1834

今天來(lái)介紹一些Python的數(shù)據(jù)類型,包括整型、浮點(diǎn)型、布爾類型、復(fù)數(shù)類型等。

?

****************

二、數(shù)據(jù)類型

****************

1、整型

整型說(shuō)白了,就是平時(shí)所見的整數(shù),Python3的整數(shù)已經(jīng)與長(zhǎng)整型進(jìn)行了無(wú)縫的結(jié)合,現(xiàn)在的Python3的整型類似于Java的BigInteger類型,它的長(zhǎng)度不受限制。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 如果說(shuō)非要有個(gè)限制,那只限于計(jì)算機(jī)的虛擬內(nèi)存總數(shù)。所以用Python3很容易進(jìn)行大數(shù)的計(jì)算。

2、浮點(diǎn)型

浮點(diǎn)型就是平時(shí)所說(shuō)的小數(shù)。Python區(qū)分整型和浮點(diǎn)型的唯一方式,就是看有沒有小數(shù)點(diǎn)。

談到浮點(diǎn)型,不得不提E記法,E記法就是平常所說(shuō)的科學(xué)記數(shù)法,用于表示特別大和特別小的數(shù)。

>>> a=0.000000000000000000025 >>> a 2.5e-20 >>> 150000000000 150000000000 >>> 1.5e11 150000000000.0

這個(gè)E的意思是指數(shù),指底數(shù)為10,E后邊的數(shù)字是10的多少次冪。

3、布爾類型

布爾類型事實(shí)上是特殊的整型,True相當(dāng)于整數(shù)值1,False相當(dāng)于整數(shù)值0.

>>> True + False 1 >>> True + True 2 >>> True/False Traceback (most recent call last):File "<pyshell#17>", line 1, in <module>True/False ZeroDivisionError: division by zero

當(dāng)然把True和False當(dāng)成1和0來(lái)參與這種運(yùn)算的這種做法是不妥的。

?

***************

三、類型轉(zhuǎn)換

***************

接下來(lái)介紹幾個(gè)跟數(shù)據(jù)類型緊密相關(guān)的函數(shù):int()、float()、str().

1、int()的作用就是將一個(gè)字符串或浮點(diǎn)數(shù)轉(zhuǎn)換為一個(gè)整數(shù)

>>> a = '520' >>> b = int(a) >>> a,b ('520', 520) >>> c = 5.99 >>> d = int(c) >>> c,d (5.99, 5)

注意了,如果是浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù),那么Python會(huì)采取”截?cái)唷疤幚?#xff0c;就是把小數(shù)點(diǎn)后的數(shù)據(jù)直接砍掉,注意不是四舍五入哦。

補(bǔ)充:

>>> a = int("小甲魚") Traceback (most recent call last):File "<pyshell#21>", line 1, in <module>a = int("小甲魚") ValueError: invalid literal for int() with base 10: '小甲魚'

”小甲魚“是一個(gè)字符串,但不是一個(gè)表示數(shù)字的字符串,它是一個(gè)編碼,編碼跟數(shù)字沒有關(guān)系。所以會(huì)報(bào)錯(cuò)。

2、float()的作用是將一個(gè)字符串或整型轉(zhuǎn)換成一個(gè)浮點(diǎn)數(shù)(就是小數(shù))

>>> a = "520" >>> b = float(a) >>> a,b ('520', 520.0) >>> c = 520 >>> d = float(c) >>> c,d (520, 520.0)

3、str()的作用是將一個(gè)數(shù)或任意其他類型轉(zhuǎn)換成一個(gè)字符串

>>> a = 5.99 >>> b = str(a) >>> a,b (5.99, '5.99') >>> c = str(5e15) >>> c '5000000000000000.0' >>> d = str(15) >>> d '15'
>>> c = str(5e19)
>>> c
'5e+19'

?

****************************

四、獲得關(guān)于類型的信息

****************************

Python提供了一個(gè)函數(shù),可以明確的告訴我們變量的類型,這就是type函數(shù):

>>> type("520") <class 'str'> >>> type(5.20) <class 'float'> >>> type(520) <class 'int'> >>> type(true) Traceback (most recent call last):File "<pyshell#3>", line 1, in <module>type(true) NameError: name 'true' is not defined >>> type(True) <class 'bool'>

我們更建議使用isinstance()這個(gè)BIF來(lái)確定變量的類型。這個(gè)BIF有兩個(gè)參數(shù):第一個(gè)是待確定類型的數(shù)據(jù);第二個(gè)是指定一個(gè)數(shù)據(jù)類型。

>>> type(True) <class 'bool'> >>> a = "小甲魚" >>> isinstance(a,str) True >>> isinstance(520,float) False >>> isinstance(520,int) True

?

*******************************

五、課時(shí)05課后習(xí)題及答案

*******************************

測(cè)試題:

0. 在 Python 中,int 表示整型,那你還記得 bool、float 和 str 分別表示什么嗎?
1. 你知道為什么布爾類型(bool)的 True 和 False 分別用 1 和 0 來(lái)代替嗎?
2. 使用 int() 將小數(shù)轉(zhuǎn)換為整數(shù),結(jié)果是向上取整還是向下取整呢?
3. 我們?nèi)祟愃季S是習(xí)慣于“四舍五入”法,你有什么辦法使得 int() 按照“四舍五入”的方式取整嗎?
4. 取得一個(gè)變量的類型,視頻中介紹可以使用 type() 和 isinstance(),你更傾向于使用哪個(gè)?
5. Python3 可以給變量命名中文名,知道為什么嗎?

動(dòng)動(dòng)手:

0. 針對(duì)視頻中小甲魚提到的小漏洞,再次改進(jìn)我們的小游戲:當(dāng)用戶輸入錯(cuò)誤類型的時(shí)候,及時(shí)提醒用戶重新輸入,防止程序崩潰。 如果你嘗試過以下做法,請(qǐng)舉下小手: temp = input("不妨猜一下小甲魚現(xiàn)在心里想的是哪個(gè)數(shù)字:") # 這種想法是因?yàn)閠ype(1)會(huì)返回<class 'int'>,如果type(temp)返回結(jié)果一致說(shuō)明輸入是整數(shù)。 while type(temp) != type(1):print("抱歉,輸入不合法,", end='')temp = input("請(qǐng)輸入一個(gè)整數(shù):")

或者可能這樣:

temp = input("不妨猜一下小甲魚現(xiàn)在心里想的是哪個(gè)數(shù)字:") # not操作符的作用是將布爾類型的結(jié)果翻轉(zhuǎn):即取反的意思,not True == Flase while not isinstance(temp, int):print("抱歉,輸入不合法,", end='')temp = input("請(qǐng)輸入一個(gè)整數(shù):")

以上方法的思路是正確的,不過似乎忽略了一點(diǎn)兒:就是input()的返回值始終是字符串,所以type(temp)永遠(yuǎn)是<class 'str'>!??
其實(shí)有蠻多的做法可以實(shí)現(xiàn)的,不過就目前我們學(xué)習(xí)過的內(nèi)容來(lái)看,還不足夠。
所以,在讓大家動(dòng)手完成這道題之前,小甲魚介紹一點(diǎn)新東西給大家!

s為字符串s.isalnum() 所有字符都是數(shù)字或者字母,為真返回 Ture,否則返回 False。s.isalpha() 所有字符都是字母,為真返回 Ture,否則返回 False。s.isdigit() 所有字符都是數(shù)字,為真返回 Ture,否則返回 False。s.islower() 所有字符都是小寫,為真返回 Ture,否則返回 False。s.isupper() 所有字符都是大寫,為真返回 Ture,否則返回 False。s.istitle() 所有單詞都是首字母大寫,為真返回 Ture,否則返回 False。s.isspace() 所有字符都是空白字符,為真返回 Ture,否則返回 False。例如:>>> s = 'I LOVE FISHC' >>> s.isupper() >>> True

好了,文字教程就到這里,大家趕緊趁熱打鐵,改造我們的小游戲吧!

1. 寫一個(gè)程序,判斷給定年份是否為閏年。(注意:請(qǐng)使用已學(xué)過的 BIF 進(jìn)行靈活運(yùn)用)
這樣定義閏年的:能被4整除但不能被100整除,或者能被400整除都是閏年。

?

答案:

測(cè)試題答案:

0. 在 Python 中,int 表示整型,那你還記得 bool、float 和 str 分別表示什么嗎?

bool 表示布爾類型
float 表示浮點(diǎn)型
str 表示字符串

1. 你知道為什么布爾類型(bool)的 True 和 False 分別用 1 和 0 來(lái)代替嗎?

你可能聽說(shuō)過計(jì)算機(jī)是很“笨”的,究其根本是因?yàn)樗徽J(rèn)識(shí)二進(jìn)制數(shù),所以所有的編程語(yǔ)言最終都會(huì)轉(zhuǎn)換成簡(jiǎn)單的二進(jìn)制序列給CPU按照一定的規(guī)則解析。
由于二進(jìn)制只有兩個(gè)數(shù):0 和 1,因此用 0 和 1 來(lái)表示 False 和 True 再適合不過了,因?yàn)椴挥美速M(fèi)資源在轉(zhuǎn)換的過程上!

2. 使用 int() 將小數(shù)轉(zhuǎn)換為整數(shù),結(jié)果是向上取整還是向下取整呢?

我們可愛的小甲魚說(shuō)了,小數(shù)取整會(huì)采用比較暴力的截?cái)喾绞?#xff0c;即向下取整。(注:5.5向上取整為6,向下取整為5)

3. 我們?nèi)祟愃季S是習(xí)慣于“四舍五入”法,你有什么辦法使得 int() 按照“四舍五入”的方式取整嗎?

int() 固然沒那么“聰明”,但機(jī)器是死的,魚油是活的!
5.4 “四舍五入”結(jié)果為:5,int(5.4+0.5) == 5
5.6 “四舍五入”結(jié)果為:6,int(5.6+0.5) == 6
大家看明白了嗎?

4. 取得一個(gè)變量的類型,視頻中介紹可以使用 type() 和 isinstance(),你更傾向于使用哪個(gè)?

建議使用 isinstance(),因?yàn)樗姆祷亟Y(jié)果比較直接,另外 type() 其實(shí)并沒有你想象的那么簡(jiǎn)單,我們后邊會(huì)講到。

5. Python3 可以給變量命名中文名,知道為什么嗎?

Pyhton3 源碼文件默認(rèn)使用utf-8編碼(支持中文),這就使得以下代碼是合法的:?
>>> 小甲魚 = '我愛你'??
>>> print(小甲魚)
>>> 我愛你

?

動(dòng)動(dòng)手答案:

0. 針對(duì)視頻中小甲魚提到的小漏洞,再次改進(jìn)我們的小游戲:當(dāng)用戶輸入錯(cuò)誤類型的時(shí)候,及時(shí)提醒用戶重新輸入,防止程序崩潰。
需要注意的地方在代碼中已經(jīng)注釋!

1 import random 2 times = 3 3 secret = random.randint(1,10) 4 print('------------------我愛魚C工作室------------------') 5 guess = 0 6 print("不妨猜一下小甲魚現(xiàn)在心里想的是哪個(gè)數(shù)字:", end=" ") 7 while (guess != secret) and (times > 0): 8 temp = input() 9 while not temp.isdigit(): 10 temp = input("抱歉,您的輸入有誤,請(qǐng)輸入一個(gè)整數(shù):") 11 guess = int(temp) 12 times = times - 1 # 用戶每輸入一次,可用機(jī)會(huì)就-1 13 if guess == secret: 14 print("我草,你是小甲魚心里的蛔蟲嗎?!") 15 print("哼,猜中了也沒有獎(jiǎng)勵(lì)!") 16 else: 17 if guess > secret: 18 print("哥,大了大了~~~") 19 else: 20 print("嘿,小了,小了~~~") 21 if times > 0: 22 print("再試一次吧:", end=" ") 23 else: 24 print("機(jī)會(huì)用光咯T_T") 25 print("游戲結(jié)束,不玩啦^_^")

1. 寫一個(gè)程序,判斷給定年份是否為閏年。

1 temp = input('請(qǐng)輸入一個(gè)年份:') 2 while not temp.isdigit(): 3 temp = input("抱歉,您的輸入有誤,請(qǐng)輸入一個(gè)整數(shù):") 4 5 year = int(temp) 6 if year/400 == int(year/400): 7 print(temp + ' 是閏年!') 8 else: 9 if (year/4 == int(year/4)) and (year/100 != int(year/100)): 10 print(temp + ' 是閏年!') 11 else: 12 print(temp + ' 不是閏年!')

?

轉(zhuǎn)載于:https://www.cnblogs.com/DC0307/p/9364467.html

總結(jié)

以上是生活随笔為你收集整理的课时5:闲聊之Python的数据类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。