詳解Python數(shù)據(jù)類型、進(jìn)制轉(zhuǎn)換、字符串格式化的問題
1. 整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)

Python2中區(qū)分整型int、長整型long
Python3中只有統(tǒng)稱為 整型int
浮點(diǎn)數(shù)
即帶有小數(shù)點(diǎn)的數(shù)字,因?yàn)楦↑c(diǎn)數(shù)用二進(jìn)制表示的,小數(shù)部分有時(shí)是無法表示的。是不精確的

float組成: 由整數(shù)位,小數(shù)點(diǎn),小數(shù)位組成,也可以用科學(xué)計(jì)數(shù)法表示

Decimal
是精確的
from decimal import Decimal #從decimal 包導(dǎo)入Decimal 類
mydec = Decimal("3.22") #將字符串轉(zhuǎn)換成decimal類型
print(mydec, type(mydec))
mydec2 = Decimal(3.22) #浮點(diǎn)型3.22 是不精確的,轉(zhuǎn)換成decimal就是精確的
print(mydec2, type(mydec))
結(jié)果:3.22 <class 'decimal.Decimal'>
3.220000000000000195399252334027551114559173583984375 <class 'decimal.Decimal'>復(fù)數(shù)
dir(a) 查看屬性
a.imag 獲取虛部,無論定義的時(shí)候是整型還是浮點(diǎn)型最終都會(huì)轉(zhuǎn)換成浮點(diǎn)型
a.real 獲取實(shí)部
>>> a = 4 + 5j >>> a.imag 5.0 >>> a.real 4.0
2.進(jìn)制轉(zhuǎn)換

進(jìn)制數(shù)字類型
二進(jìn)制、八進(jìn)制、十六進(jìn)制都是整型
>>> a=0b11 二進(jìn)制 binary >>> type(a) <class 'int'> >>> b=0o11 八進(jìn)制 octonary >>> type(b) <class 'int'> >>> c=0x11 十六制 hexadecimal >>> type(c) <class 'int'>
整型進(jìn)制操作
整型轉(zhuǎn)換成2、8、16進(jìn)制,得到的值是字符串類型
>>> num = 100
>>> bin(num) 整型轉(zhuǎn)換成二進(jìn)制,()里面只能是整型
任意進(jìn)制轉(zhuǎn)2進(jìn)制, 接收一個(gè)int, 返回一個(gè)str
'0b1100100'
>>> oct(num) 任意進(jìn)制轉(zhuǎn)8進(jìn)制, 接收一個(gè)int, 返回一個(gè)str
'0o144'
>>> hex(num) 任意進(jìn)制轉(zhuǎn)16進(jìn)制, 接收一個(gè)int, 返回一個(gè)str
'0x64'>>> int (0o11) 接收整型
9
>>> int("0o11",base=8) 接收整型,但要指定幾進(jìn)制
9
>>> int("11") 接收整型,可以不指定,因?yàn)樗且粋€(gè)數(shù)字
11
3. 字符串
3.1 轉(zhuǎn)義字符
r標(biāo)志:是輸出原始字符串,不轉(zhuǎn)義

3.2 字符串取值
下標(biāo)取值法
從左0123456
從右-1 -2 -3 -4 -5
>>> a = 'abcdefghijklmnopq' >>> a[0] 'a' >>> a[-8] 'j'
切片取值法
str[start:end:step] 左閉右開 step 為正數(shù) 從左至右 step 為負(fù)數(shù) 從右至左 str[2:] 從左至右 第三個(gè)數(shù)開始 str[:7] 從左至右到第七位 str[::-1] 從右至左 步長為1 str[4::-2] 從第五個(gè)數(shù)開始從右至左 步長為2
>>> a = 'abcdefghijklmnopq' 一旦定義不可改變 >>> a[2:5] 'cde'
4. 字符串運(yùn)算與轉(zhuǎn)換
>>> str1="qqq" >>> str2 = "lll" >>> str1+str2 # 字符串拼接 'qqqlll' >>> str3="abc" >>> str3*3 'abcabcabc'字符串復(fù)制 >>> result = str(100) # int轉(zhuǎn)換成字符串 >>> type(result) <class 'str'> >>> result '100'
5. 字符串的常用方法
判斷系列


演示:
>>> str7= "helloabc xx zz"
>>> str7.startswith("abc")
False
>>> str7.startswith("abc",5)
True
>>> str7.startswith("abc",5,7)
False
>>> str7.startswith("abc",5,8)
True查找統(tǒng)計(jì)系列

len不是字符串的屬性方法,不能通過.len的方式去計(jì)算長度
字符串轉(zhuǎn)換類

>>> str7
'helloabc xx zz'
>>> str7.upper() 轉(zhuǎn)大寫
'HELLOABC XX ZZ'
>>> str7.title() 轉(zhuǎn)標(biāo)題格式
'Helloabc Xx Zz'
>>> str9 = str7.title().swapcase() 大小寫互換
>>> str9
'hELLOABC xX zZ'
>>> str9 = "a b c d e f"
>>> str9.split() 默認(rèn)按空格切割
['a', 'b', 'c', 'd', 'e', 'f']
>>> str10 = "a#b#c#d#e#f#g#h"
>>> str10.split("#")
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> str11 = str10.split("#")
>>> str11
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
>>> "*".join(str11)
'a*b*c*d*e*f*g*h'
+和join的效率問題
+ 拼接效率比join低。+拼接,每一次出現(xiàn)都會(huì)在內(nèi)存中開辟一個(gè)新的空間,所以效率低

6 . 字符串格式化
%格式化


語法格式:%[(name)][flags][width].[precision]typecode
- (name):命名
- flags: +,-,’ '或0。
+表示右對(duì)齊;-表示左對(duì)齊;
’ '為一個(gè)空格,表示在正數(shù)的左側(cè)填充一個(gè)空格,從而與負(fù)數(shù)對(duì)齊,0表示使用0填充。
- width表示顯示寬度
- precision表示小數(shù)點(diǎn)后精度
%s 一個(gè)蘿卜一個(gè)坑,一一對(duì)應(yīng),不能多也不能少

演示:

結(jié)果

format格式化
num1 = 0.1416926 #轉(zhuǎn)換成百分位
print("%.2f%% " % (num1 * 100))
f格式化
python2不支持這種寫法
print(f"my name is {name},my age is {age}")
結(jié)果:my name is sc,my age is 4
print(f"my name is {name},my age is {age:*>10}")
結(jié)果:my name is sc,my age is *********4練習(xí)
字符串的拼接方式
請(qǐng)計(jì)算出新拼接出來的字符串長度,并取出其中的第七個(gè)字符。
a = "字符串拼接1"
b = "字符串拼接2"
print("方式1:" + a + b)
print("方式2:%s%s" % (a, b))
print(f"方式3:{a}")
print("方式4:{0}{1}".format(a, b))
c = a + b
print("新拼接的字符串長度為:", len(c))
print("第七個(gè)字符為:", c[6])
str1 = "8*y*cali*china**it*soft*linux*python"
count = str1.count("*")
list = str1.split("*")
str2 = "".join(list)
print("*" * count + str2)將字符串"8ycalichina**itsoftlinuxpython"里的所有的*號(hào)抽
取出來放到最前面,里面的字符串保持順序不變
str1 = "8*y*cali*china**it*soft*linux*python"
count = str1.count("*")
list = str1.split("*")
str2 = "".join(list)
print("*" * count + str2)7. 字符串拼接
print(“%s %s”%(str1,str2))
>>> str1 = "你好"
>>> str2 = "hejin"
>>> str1+str2 #方式1:加號(hào)拼接
'你好hejin'
>>> "".join([str1,str2]) #方式2:join拼接
'你好hejin'
>>> print("%s,%s"%(str1,str2)) #方式3:% 占位符
你好,hejin
>>> "{},{}".format(str1,str2) #方式4:format()
'你好,hejin'
>>> "{0},{1}".format(str1,str2) # 方式5
'你好,hejin'
>>> "{1},{0}".format(str1,str2)
'hejin,你好'
>>> "{a},".format(a=str1,b=str2) # 方式6
'你好,hejin'
>>> ",{a}".format(a=str1,b=str2)
'hejin,你好'
>>> f"{str1},{str2}" # 方式7:f格式化
'你好,hejin'練習(xí):猜誰是小偷
嫌疑人A、B、C、D的筆錄如下,其中三人為真,一人為假: a:我不是小偷 b:C是小偷 c:小偷肯定是D d:小偷肯定是D
lst = ["a", "b", "c", "d"]
for x in lst:
if ("a" != x) + ("c" == x) + ("d" == x) + ("d" != x) == 3:
print(f"{x}是小偷")到此這篇關(guān)于Python數(shù)據(jù)類型、進(jìn)制轉(zhuǎn)換、字符串格式化的文章就介紹到這了,更多相關(guān)Python字符串格式化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python字符串格式化format()方法運(yùn)用實(shí)例
- 深入了解Python中字符串格式化工具f-strings的使用
- 詳解Python的字符串格式化
- Python中格式化字符串輸出的4種方式小結(jié)
- Python字符串類型及格式化問題
- python使用?f?格式化字符串的用法
- Python字符串格式化實(shí)例講解
- Python?創(chuàng)建格式化字符串方法
- Python格式化字符串f-string的使用教程
- Python格式化輸出字符串的五種方法總結(jié)
- python字符串格式化函數(shù)
- python實(shí)現(xiàn)三種字符串格式化方法(%、format、f-string)
相關(guān)文章
python Django框架實(shí)現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù)
這篇文章主要介紹了python Django框架實(shí)現(xiàn)web端分頁呈現(xiàn)數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
python星號(hào)(*)和雙星號(hào)(**)?函數(shù)動(dòng)態(tài)參數(shù)匹配及解包操作方法
這篇文章主要介紹了python星號(hào)(*)和雙星號(hào)(**)?函數(shù)動(dòng)態(tài)參數(shù)匹配及解包操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03
Django+Ajax+jQuery實(shí)現(xiàn)網(wǎng)頁動(dòng)態(tài)更新的實(shí)例
今天小編就為大家分享一篇Django+Ajax+jQuery實(shí)現(xiàn)網(wǎng)頁動(dòng)態(tài)更新的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python實(shí)現(xiàn)隨機(jī)游走的示例代碼
隨機(jī)游走是一個(gè)數(shù)學(xué)對(duì)象,稱為隨機(jī)或隨機(jī)過程,它描述了一條路徑,該路徑由一些數(shù)學(xué)空間上的一系列隨機(jī)步驟組成,下面我們就來學(xué)習(xí)一下Python如何實(shí)現(xiàn)隨機(jī)游走的吧2023-12-12
django+celery+RabbitMQ自定義多個(gè)消息隊(duì)列的實(shí)現(xiàn)
本文主要介紹了django+celery+RabbitMQ自定義多個(gè)消息隊(duì)列的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
tensorflow 實(shí)現(xiàn)從checkpoint中獲取graph信息
今天小編就為大家分享一篇tensorflow 實(shí)現(xiàn)從checkpoint中獲取graph信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python動(dòng)態(tài)生成多維數(shù)組的方法示例
這篇文章主要介紹了Python動(dòng)態(tài)生成多維數(shù)組的方法,涉及Python數(shù)組動(dòng)態(tài)遍歷、添加、打印等相關(guān)操作技巧,需要的朋友可以參考下2018-08-08

