計(jì)算機(jī)二級(jí)python學(xué)習(xí)教程(3) python語(yǔ)言基本數(shù)據(jù)類(lèi)型
本文繼續(xù)計(jì)算機(jī)二級(jí)python教程的學(xué)習(xí),之前已經(jīng)學(xué)習(xí)過(guò)了計(jì)算機(jī)二級(jí)python學(xué)習(xí)教程(1) 、計(jì)算機(jī)二級(jí)python學(xué)習(xí)教程(2)
3.1 數(shù)字類(lèi)型
數(shù)字類(lèi)型:整數(shù)類(lèi)型、浮點(diǎn)數(shù)類(lèi)型、復(fù)數(shù)類(lèi)型。
整數(shù)類(lèi)型:十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制。
#不同進(jìn)制的整數(shù)之間可以直接運(yùn)算 >>> 0x3F2/1010 1.0 >>> (0x3F2+1010)/0o1762 2.0
浮點(diǎn)數(shù)類(lèi)型:必須帶有小數(shù)部分,小數(shù)部分可以是0,例如1010.0。表示方法有一般表示(只有十進(jìn)制)和科學(xué)計(jì)數(shù)法。數(shù)值范圍和小數(shù)精度受不同計(jì)算機(jī)系統(tǒng)的限制,一般認(rèn)為沒(méi)有范圍限制。有不確定尾數(shù)。
#科學(xué)計(jì)數(shù)法 格式:<a>e<b> = a*10的b次方 (或E) >>> print(1.01e3) 1010.0 >>> print(-1.01E-3) -0.00101 #浮點(diǎn)數(shù)不確定尾數(shù) >>> 0.1 + 0.2 0.30000000000000004 >>> 0.1 + 0.2 == 0.3 False #使用round()函數(shù)四舍五入 限定保留尾數(shù) 去掉不確定尾數(shù) >>> round(0.1 + 0.2,3) == 0.3 True
復(fù)數(shù)類(lèi)型:含有虛數(shù)單位(j)的數(shù)??梢钥醋魇嵌行?qū)崝?shù)對(duì)(a, b),表示為:a + bj,a是實(shí)數(shù)部分,簡(jiǎn)稱(chēng)實(shí)部,b是虛數(shù)部分,簡(jiǎn)稱(chēng)虛部。當(dāng)b為1時(shí),1不能省略,1j表示復(fù)數(shù),j表示Python程序中的一個(gè)變量。
#獲得實(shí)數(shù)部分 >>> (1.23e4+5.64e4j).real 12300.0 #獲得虛數(shù)部分 >>> (1.23e4+5.64e4j).imag 56400.0 >>>
3.2 數(shù)字類(lèi)型的運(yùn)算
9個(gè)基本的數(shù)值運(yùn)算操作符:
>>> 2+5 7 >>> 2-5 -3 >>> 2*5 10 >>> 2/5 0.4 >>> 2//5 0 >>> 2%5 2 >>> 5%2 1 >>> -5 -5 >>> +5 5 >>> 2**5 32
整數(shù)和浮點(diǎn)數(shù)運(yùn)算結(jié)果為浮點(diǎn)數(shù),整數(shù)/整數(shù)結(jié)果為浮點(diǎn)數(shù),整數(shù)或浮點(diǎn)數(shù)與復(fù)數(shù)運(yùn)算結(jié)果為復(fù)數(shù)。
增強(qiáng)賦值操作符:+=、-=、*=、/=、//=、%=、**=
>>> x=3 >>> x**=3 #等價(jià)于x = x**3 >>> print(x) 27
數(shù)值運(yùn)算函數(shù):
#絕對(duì)值 >>> abs(-666) 666 #返回二元組(x//y,x%y),即(整數(shù)商,除法余數(shù)) >>> divmod(10,3) (3, 1) #x的y次冪,即x**y >>> pow(3,3) 27 #x的y次冪%z (模運(yùn)算與冪運(yùn)算同時(shí)進(jìn)行 速度更快) >>> pow(55,1999999,10000) 4375 #四舍五入 >>> round(6.6) 7 #保留小數(shù)尾數(shù)四舍五入 >>> round(3.1415926,3) 3.142 #取最大值 >>> max(1,2,3,4,5,0.1) 5 #取最小值 >>> min(1,2,3,4,5,0.1) 0.1
3.3 字符串類(lèi)型及格式化
單行字符串可以由一對(duì)單引號(hào)(')或雙引號(hào)(")作為邊界來(lái)表示,單引號(hào)和雙引號(hào)作用相同。
多行字符串可以由一對(duì)三單引號(hào)(''')或三雙引號(hào)(""")作為邊界來(lái)表示,兩者作用相同。
>>> print('這是"單行字符串"') 這是"單行字符串" >>> print("這是'單行字符串'") 這是'單行字符串' >>>print("""這是'多行字符串'的第一行 這是'多行字符串'的第二行 """) 這是'多行字符串'的第一行 這是'多行字符串'的第二行 >>>print('''這是"多行字符串"的第一行 這是"多行字符串"的第二行 ''') 這是"多行字符串"的第一行 這是"多行字符串"的第二行
語(yǔ)言轉(zhuǎn)義符: \ 。例如:\n表示換行、\\表示反斜杠、\'表示單引號(hào)、\"表示雙引號(hào)、\t表示制表符(TAB)等。
>>> print("既需要'單引號(hào)'又需要\"雙引號(hào)\"") 既需要'單引號(hào)'又需要"雙引號(hào)"
字符串的索引:
>>> "青青子衿,悠悠我心。"[-5] '悠' >>> s = "青青子衿,悠悠我心。" >>> s[5] '悠'
字符串的切片:
>>>"青青子衿,悠悠我心。"[8:4] '' >>>"青青子衿,悠悠我心。"[:4] '青青子衿' >>>"青青子衿,悠悠我心。"[5:] '悠悠我心。' >>>print("青青子衿,悠悠我心。"[5:]) 悠悠我心。
format()方法使用:"包含{ }的字符串模板".format(逗號(hào)分隔的參數(shù)1,2,3...) 參數(shù)從0開(kāi)始編號(hào),{ }代表槽
>>> "{}曰:學(xué)而時(shí)習(xí)之,不亦{}。".format("孔子","說(shuō)乎") '孔子曰:學(xué)而時(shí)習(xí)之,不亦說(shuō)乎。 >>> "{1}曰:學(xué)而時(shí)習(xí)之,不亦{0}。".format("說(shuō)乎","孔子") '孔子曰:學(xué)而時(shí)習(xí)之,不亦說(shuō)乎。'
format()方法中模板字符串的槽除了包括參數(shù)序號(hào),還可以包括格式控制信息。{<參數(shù)序號(hào)>: <格式控制標(biāo)記>}
>>>s = "等級(jí)考試" >>>"{:25}".format(s) #左對(duì)齊,默認(rèn) '等級(jí)考試 ' >>>"{:^25}".format(s) #居中對(duì)齊 ' 等級(jí)考試 ' >>>"{:>25}".format(s) #右對(duì)齊 ' 等級(jí)考試' >>>"{:*^25}".format(s) #居中對(duì)齊且填充*號(hào) '**********等級(jí)考試***********' >>>"{:+^25}".format(s) #居中對(duì)齊且填充+號(hào) '++++++++++等級(jí)考試+++++++++++' >>>"{:十^25}".format(s) #居中對(duì)齊且填充漢字“十” '十十十十十十十十十十等級(jí)考試十十十十十十十十十十十' >>>"{:^1}".format(s) #z指定寬度為1,不足變量s的寬度 '等級(jí)考試' >>>"{:.2f}".format(12345.67890) '12345.68' >>>"{:>25.3f}".format(12345.67890) ' 12345.679' >>>"{:.5}".format("全國(guó)計(jì)算機(jī)等級(jí)考試") '全國(guó)計(jì)算機(jī)' >>>"{:b},{:c},{:d},{:o},{:x},{:X}".format(425) '110101001,Ʃ,425,651,1a9,1A9' >>>"{:e},{:E},{:f},{:%}".format(3.14) '3.140000e+00,3.140000E+00,3.140000,314.000000%' >>>"{:.2e},{:.2E},{:.2f},{:.2%}".format(3.14) # 對(duì)比輸出 '3.14e+00,3.14E+00,3.14,314.00%' #常用的format()方法格式控制信息 >>>"{:.2f}".format(3.1415926) # 輸出小數(shù)點(diǎn)后兩位 '3.14' >>>"{:x}".format(1010) # 輸出整數(shù)的十六機(jī)制形式 '3f2' >>>"{:.5}".format("這是一個(gè)很長(zhǎng)的字符串") # 輸出字符串的前5位 '這是一個(gè)很' >>>"{:-^10}".format("PYTHON") # 居中并填充 '--PYTHON--'
3.4 字符串類(lèi)型的操作
字符串操作符:
#連接兩個(gè)字符串x與y >>> "PHP" + "是世界上最好的語(yǔ)言" 'PHP是世界上最好的語(yǔ)言' #復(fù)制n次字符串x >>> "lws"*3 'lwslwslws' #如果x是s的子串,返回True,否則返回False >>> name = "lws" >>> l in name >>> "l" in name True
字符串處理函數(shù):
#返回字符串x的長(zhǎng)度 >>> len("lws") 3 #返回任意類(lèi)型x所對(duì)應(yīng)的字符串形式 >>> str(0x3f) '63' #返回Unicode編碼x對(duì)應(yīng)的單字符 >>> chr(10000) '✐' #返回單字符x表示的Unicode編碼 >>> ord("和") 21644 #返回整數(shù)x對(duì)應(yīng)十六進(jìn)制數(shù)的小寫(xiě)形式字符串 >>> hex(1010) '0x3f2' #返回整數(shù)x對(duì)應(yīng)八進(jìn)制數(shù)的小寫(xiě)形式字符串 >>> oct(-255) '-0o377'
字符串處理方法:采用<a>.func(x)形式調(diào)用。方法僅作用于前導(dǎo)對(duì)象<a>
#str.split(sep) 能夠根據(jù)sep分隔字符串str,分割后的內(nèi)容以列表類(lèi)型返回。 >>> "Python is an excellent language.".split() ['Python', 'is', 'an', 'excellent', 'language.'] >>> "Python is an excellent language.".split('a') ['Python is ', 'n excellent l', 'ngu', 'ge.'] #str.count(sub)方法返回字符串str中出現(xiàn)sub的次數(shù),sub是一個(gè)字符串。 >>>"Python is an excellent language.".count('a') 3 #str.replace(old, new)方法將字符串str中出現(xiàn)的old字符串替換為new字符串,old和new的長(zhǎng)度可以不同。 >>>"Python is an excellent language.".replace('a', '#') 'Python is #n excellent l#ngu#ge.' >>>"Python is an excellent language.".replace('Python', 'C') 'C is an excellent language.' str.center(width, fillchar)方法返回長(zhǎng)度為width的字符串,其中,str處于新字符串中心位置,兩側(cè)新增字符采用fillchar填充,當(dāng)width小于字符串長(zhǎng)度時(shí),返回str。其中,fillchar是單個(gè)字符。 >>>"Python".center(20, "=") '=======Python=======' >>>"Python".center(2, "=") 'Python'
3.5 類(lèi)型判斷和類(lèi)型間轉(zhuǎn)換
Python語(yǔ)言提供type(x)函數(shù)對(duì)變量x進(jìn)行類(lèi)型判斷,適用于任何數(shù)據(jù)類(lèi)型。
n = eval(input('請(qǐng)輸入一個(gè)數(shù)字:')) if type(n) == type(123): print("輸入的數(shù)字是整數(shù)。") elif type(n) == type(11.3): print("輸入的數(shù)字是浮點(diǎn)數(shù)。") else: print("無(wú)法判斷輸入類(lèi)型。")
通過(guò)內(nèi)置的數(shù)字類(lèi)型轉(zhuǎn)換函數(shù)轉(zhuǎn)換:
#浮點(diǎn)數(shù)或字符串轉(zhuǎn)換為整數(shù) >>> int(10.01) 10 #整數(shù)或字符串轉(zhuǎn)換為浮點(diǎn)數(shù) >>> float(10) 10.0 #整數(shù)或浮點(diǎn)數(shù)轉(zhuǎn)換為字符串 >>> str(10.0) '10.0'
第三章結(jié)束
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
DjangoRestFramework 使用 simpleJWT 登陸認(rèn)證完整記錄
Djangorestframework-simplejwt是Django REST Framework框架的一個(gè)jwt插件,使用 python http 工具進(jìn)行接口測(cè)試的方法文中給大家提到,重點(diǎn)給大家分享djangorestframework-simplejwt 使用記錄及登陸認(rèn)證的完成過(guò)程,感興趣的朋友跟隨小編一起看看吧2021-06-06Matplotlib繪制混淆矩陣的實(shí)現(xiàn)
對(duì)于機(jī)器學(xué)習(xí)多分類(lèi)模型來(lái)說(shuō),其評(píng)價(jià)指標(biāo)除了精度之外,常用的還有混淆矩陣和分類(lèi)報(bào)告,下面來(lái)展示一下如何繪制混淆矩陣,這在論文中經(jīng)常會(huì)用到。感興趣的可以了解一下2021-05-05學(xué)會(huì)這個(gè)炫酷圖表利器pyecharts,還怕不被公司重用?
前段時(shí)間,公司高層要看上半年度項(xiàng)目組業(yè)績(jī)數(shù)據(jù)分析,沒(méi)辦法,硬著頭皮也要上!說(shuō)到數(shù)據(jù)分析,肯定離不開(kāi)數(shù)據(jù)的可視化,畢竟圖表比冷冰冰的數(shù)字更加直觀,Boss只想一眼就能看出趨勢(shì)和結(jié)論.今天我們就聊一聊 pyecharts 中幾種常用的圖表, ,需要的朋友可以參考下2021-06-06pandas和spark dataframe互相轉(zhuǎn)換實(shí)例詳解
這篇文章主要介紹了pandas和spark dataframe互相轉(zhuǎn)換實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02對(duì)Pandas DataFrame缺失值的查找與填充示例講解
今天小編就為大家分享一篇對(duì)Pandas DataFrame缺失值的查找與填充示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11python smtplib發(fā)送多個(gè)email聯(lián)系人的實(shí)現(xiàn)
這篇文章主要介紹了python smtplib發(fā)送多個(gè)email聯(lián)系人的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Python學(xué)習(xí)之時(shí)間包使用教程詳解
本文主要介紹了Python中的內(nèi)置時(shí)間包:datetime包?與?time包?,通過(guò)學(xué)習(xí)時(shí)間包可以讓我們的開(kāi)發(fā)過(guò)程中對(duì)時(shí)間進(jìn)行輕松的處理,快來(lái)跟隨小編一起學(xué)習(xí)一下吧2022-03-03