首頁 後端開發 Python教學 總結Python中的資料類型

總結Python中的資料類型

Jun 20, 2017 pm 02:26 PM
python 基礎 數據 類型

一、整型

在Python2中還有整數和長整型之分,但Python3中取消了長整型,統一歸類為整數。

Python中的整數數可以用二進制,八進制,十進制和十六進制幾種形式表示

可以用下面的方法來把十進制轉換為其他幾種形式

>>> print(bin(10))           --------->  把十进制转化为二进制
0b1010>>> print(oct(10))           --------->  把十进制转化为八进制
0o12>>> print(hex(10))           --------->  把十进制转化为十六进制0xa>>> print(hex(100))0x64
登入後複製

二、浮点型

浮点型数就是小数,因为用科学计数法表示小数时,小数点的位置是可以变化的,所以称为浮点数。在计算机中,整数永远是准确的,而浮点数在四舍五入的过程中却有可能产生误差。小的浮点数可以直接写,但是对于位数很多的浮点数,就必须用科学计数法来表示。把10用e表示,如1.03乘10的9次方,就要写成1.03e9

三、字符串类型

定义在引号里面的整体称为字符串,是由一个个字符构成的

引号可以是单引号,双引号,三引号,多引号...(在Python中,单引号和双引号没有区别)

字符串的常用操作:

Python为字符串内置了很多种方法,方便处理需求

1..strip()    作用是移除空白,可以在()中指定移除的字符,默认为空格

x='*****abc*****'
print(x.strip('*'))

运行结果为:abc
登入後複製

2..capitalize()   作用是首字母大写

x='hello world'
print(x.capitalize())

运行结果为:Hello world
登入後複製

3.upper()       作用是所有字母都大写,相反的lower()的作用是所有字母小写

x='hello world'
print(x.upper())

运行结果为:HELLO WORLD
登入後複製

4..center(self,width,fillchar)       作用是把字符放中间,左右用指定的字符填充至指定的字符长度

x='hello world'
print(x.center(30,'*'))

 运行结果为:*********hello world*********
登入後複製
5..count      作用是统计字符串中某一字符出现的次数,可以指定范围
登入後複製
x='hello world'
print(x.count('l',0,10))       命令的作用是统计“hello world”中第1到11个字符中,‘l’出现的次数
运行结果为:3

6..startswith()      以..开头
  x='hello world'
  print(x.startswith('a'))       判断x是否以‘a’开头,如果是,结果为True,如果不是,结果为False
登入後複製
 .endswith()         以..结尾

7..find()          寻找,如果结果不为负数,则成功。会返回目标字符在字符串中的位置
             find()和index()的区别是如果找不到对象,find()会返回-1,index()会报错

8..format        格式化字符串(先举个小例子,后续博客中会详细介绍)
  x='myname:{},age:{},sex:{}'
   print(x.format('zhang',18,'male'))
  
  运行结果为:myname:zhang,age:18,sex:male

9..index()   查看某个字符的索引,如果超出范围会报错
  x='hello world'
  print(x[1])           ------>e
  print(x[4])           ------>o
  print(x[-1])          ------>d     倒着数
  print(x.index('w'))    --------->6   查看某一字符在在字符串中的索引

  字符串的切片操作:print(x[1:3])     -------->el    取x中第1,2个字符
    切片也可以加步长:print(x[1:5:2])   ------->el   取x中第1,2,3,4个字符,但是每两个字符取一次,也就是取第1,3个字符   

10..isdigit()     查看字符串是否为整数,是则输出True,否则输出False
  x='hello world'
  print(x.isdigit())
  
  False

11..replace      替换

   x='hello world'
   print(x.replace('e','E'))        #不止可以替换字符,也可以替换字符串

 运行结果为:hEllo world

12..split()         默认以空格为分隔符分割成几部分,当然也可以指定字符作为分隔符
  
  x='hello:world:today:is:a:goodday'
   print(x.split(':'))

  运行结果为:['hello', 'world', 'today', 'is', 'a', 'goodday']

13..issupper()    判断是否全部为大写
  .islower()     判断是否全部为小写
  .isspace()     判断是否为空格
  .istitle()     判断是否首字母大写

14..ljust()       左对齐
  .rjust()       右对齐

15..swapcase()    大小写反转
  .title()       首字母大写
登入後複製

四、列表 list

 列表中可以存放各种数据类型,以逗号分割开,每个位置存放一个元素

1.列表的特性:可以存放多个值,每个值对应一个索引值

       列表中的值可变

       按从左到右的顺序定义列表元素,下标从0开始,是有序的

2.列表的创建

l=['abc','123',12]           ------>['abc', '123', 12]

l=list('abc123')         ------>['a', 'b', 'c', '1', '2', '3']

l=list(['abc','123',12])               ------->['abc', '123', 12]

 

3.列表的常用操作

1)索引

l=['abc','123',12,[3,'e',5]]

print(l[0])          -------->abc

print(l[2])    ---------->12

print(l[3][2])     ----------->5

2) 切片

l=['abc','123',12,'[3,'e',5]]

print(l[1:3])           --------->['123', 12]

注意:切片是读操作,原列表并不会发生改变

3)追加 .append()

l=['abc','123',12,'[3,'e',5]]

l.append('hello')

print(l)         ------------>['abc', '123', 12, [3, 'e', 5], 'hello']

默认是把字符加在原列表最后边

4)插入  .insert()

l=['abc','123',12,'[3,'e',5]]

l.insert(0,'hello')

print(l)       ------------>['hello', 'abc', '123', 12, [3, 'e', 5]] 

注意:insert()中要指定索引位置,必须指定,否则会报错

5)删除 .pop()

l=['abc','123',12]

l.pop(1)

print(l)     ------------>['abc', 12]

注意:()中可以指定要删除的元素的索引值,默认是最后一个

   l.pop()是有返回值的,返回删掉的元素

补充:队列和堆栈

队列是先进先出,可以用append()和pop(0) 或 insert()和pop()模拟

堆栈是先进后出,可以用append()和pop() 或insert()和pop(0)模拟

6)长度 len()

l=[1,2,3]

print(len(l))    ---------------------->3

7)循环

l=[1,2,3]

for i in l:

print(i)           --------------------->1  2  3

8)包含 in

l=['a','b','c']     

print('b' in l)  ------------------------->True

4.列表的其他操作

1)查看某一元素的索引 .index()

l=['a','b','c']

print(l.index('a'))    ------------------>0

2)列表中某个元素的数量 .count()

l=['a','b','c','a']

print(l.count('a))    -------------->2

3)追加 .extend() 和append有区别

l=[1,2,3]
l.append(['a','b','c'])
print(l)    -------------->[1, 2, 3, ['a', 'b', 'c']]
登入後複製
l=[1,2,3]
l.extend(['a','b','c'])
print(l)    --------------->[1, 2, 3, 'a', 'b', 'c']
登入後複製

4)按元素删除 .remove 

 注意当目标元素不存在时会报错,且有多个目标元素时只会删一个

l=[1,2,3]
l.remove('a')
print(l)      ------------->ValueError: list.remove(x): x not in list
登入後複製

5)排序 .sort()   无返回值

l=[3,2,4]
l.sort()
print(l)    ----------------->[2, 3, 4]
登入後複製
l=['a','c','d','cd']
l.sort()
print(l)    ----------------->['a', 'c', 'cd', 'd']

l.sort(reverse=True) 表示倒序排列
登入後複製

6)反转顺序 .reverse()

 

五、元组 tuple

1)元组的定义

t=('a','b',1,(3,4))

形式与列表相似,只是[]改成了()

2)元组的特性:

元组元素可以是任意数据类型;

元组是不可变数据类型;

元组的元素可以是列表,列表的元素可以变,虽然列表的元素改变了,但是列表作为元组的一个元素并没有发生变化,所以不影响元组是不可变数据类型这一特点

因为元组是不可变数据类型,所以不存在增删改的功能,元组的方法只有count() 和 index()

3)元组的常用操作有:索引、切片、循环、长度和包含

4)元组和列表的相互转化:  

t=('a','b',1,2)
l=['f','d',4]

tl=list(tuple(t))
print(tl,type(tl))    ---------->['a', 'b', 1, 2] <class &#39;list&#39;>

lt=tuple(list(l))
print(lt,type(lt))    ---------->('f', 'd', 4) <class &#39;tuple&#39;>
登入後複製

六、字典 dict

1)字典的定义:

d={'x':1,'y':1234}
登入後複製

2)字典的元素是键值对(key - values)

 字典是一种可变数据类型,其中values可变,但是Key不可变

 需注意:定义字典时,key必须是不可变类型,或者说是可hash类型

3)字典的取值

 字典是无序的,没有索引的概念,通过key来取值 print(d['x']) 就能取到1这个值

 如果key找不到的话会报错,可以用.get(key)   如果找不到key,会打印None,但是不会报错 

4)修改值

 d['x']='s'  --------把原字典改成了{‘x’:'s','y':1234}

5)循环 

d={'name':'zhang','age':18}
print(d.keys())                 #dict_keys(['name', 'age'])
print(d.values())               #dict_values(['zhang', 18])
for i in d:
    print(i)                    #name age  直接遍历字典,打印的是key
for k in d:
    print(k,d[k])               #name zhang   age 18
登入後複製

 因为字典是无序的,所以遍历字典的方法只有 for i in d:这一种

字典的常用方法:

1)清除

d={'x':1}
d.clear()      #清除
print(d)       #{}
登入後複製

2)避免找不到元素报错的情况

d={'x':1}
print(d.get('s'))       #None
print(d('s'))             #报错TypeError: 'dict' object is not callable
登入後複製

3)把键值对转换成元组形式

d={'x':1}
d.items()
for k,v in d.items():
    print(k,v)          #x 1
登入後複製

4)把values转换成列表形式

d={'x':1,'y':2322}
print(list(d.values()))      #把values值转换成列表形式----------->[1, 2322]
登入後複製

5)删除 .pop()

d={'x':1,'y':2322}
d.pop('x')
print(d)                      #{'y': 2322}
print(d.pop('x'))               #1    打印删除的那个值
登入後複製

6)删除 .popitem()  随机删除

d={'x':1,'y':2322}
d.popitem()             #括号里不能跟参数,随机删除
print(d)                #{'x': 1}
登入後複製

7)添加键值对 .setdefault()  括号里是键值对

d={'x':1}
d.setdefault('s',2)             
print(d)            #{'x': 1, 's': 2}      添加键值对,key和值之间用逗号隔开
登入後複製

8)产生字典的方法

d3=dict(x=5,y=2,z=3)                  #{'x': 5, 'y': 2, 'z': 3}   自动生成字典
d3=dict({'x':1,'y':2})                  #{'x': 1, 'y': 2}
d3=dict([('x',1),('y',2),('z',3)])      #{'x': 1, 'y': 2, 'z': 3}
d3={}.fromkeys(['name','age'],None)     #{'name': None, 'age': None}    None的位置只能有一个值,这种方法只能创建这种类型的
print(d3)
登入後複製

9)更新字典 .update()

d={'name':'alex'}
d1={'name':'alexsb','age':30}
d.update(d1)                    #用d1更新字典d
print(d)                    #{'name': 'alexsb', 'age': 30}
登入後複製

10)长度

d={'name':'zhangcan','age':18,'salary':'100000'}
print(len(d))                   #3
print(len(d.values()))          #3
print(len(d.items()))           #3
print(len(d.keys()))            #3
登入後複製

11)成员运算

d={'name':'zhangcan','age':18,'salary':'100000'}
print('x'in d)                                      #False
print('name'in d)                                   #True
print(18 in d)                            #False
print(18 in d.values())                      #True
print('age' in d.keys())                     #True
print(18 in d.items())                       #False
print(('age',18) in d.items())                #True
登入後複製

七、布尔类型

所有的数据类型都自带布尔值(bool),if 判断时,只有0,None,NULL为False,其他都为True

八、集合(set)
1.集合的定义

 1)集合内的元素必须是唯一的,可以用这个特性来实现‘去重’的功能  

  s={'egon',123,123,1,'abf'}
  print(s)           # {1, 123, 'egon', 'abf'}
登入後複製

 2)集合内的元素必须是可hash的,即不可变的

 3)集合是无序的(无索引)

2.集合的关系运算(符号)

s1={'alex','egon','wupeiqi'}
s2={'alex','egon','zhangcan'}
print(s1 & s2)      #取交集
print(s1 | s2)      #取并集
print(s1-s2)        #差集{'wupeiqi'}
print(s1^s2)        #对称差集{'zhangcan', 'wupeiqi'}
登入後複製

3.集合的常用命令

print(s1.difference(s2))    #差集
print(s1.intersection(s2)) # 交集
print(s1.union(s2))         #并集
print(s1.symmetric_difference(s2))  #{'zhangcan', 'wupeiqi'}对称差集
print(s1.symmetric_difference_update(s2))  #None对称差集并更新回s1
print(s1)                                   #{'zhangcan', 'wupeiqi'}
登入後複製
s1.update(s2)       #并集
print(s1)           #{'zhangcan', 'wupeiqi', 'egon', 'alex'}
登入後複製
s1.add('yuanhao')       #添加元素
print(s1)
登入後複製
s1.discard('alex')          #删除(找不到元素不会报错)
print(s1)

s1.remove('alex')          #删除,但找不到元素会报错
登入後複製
s1.pop()         #括号里不能有东西,随机删除
print(s1)
登入後複製

成员运算:

s3={'a','b','c',1,2,3}
s4={1,2,3}
print(s4.issubset(s3))     #s4是否是s3的子集
print(s3.issuperset(s4))    #s3是否是s4的超集
print(s3.isdisjoint(s4))    #s3和s4是否有交集,有交集---False,没有交集---True
登入後複製

 

以上是總結Python中的資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1269
29
C# 教程
1249
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

See all articles