一、数字类型

1.整型int:用来记录年龄、等级、号码等

int()可以接收数字和纯数字组成的字符串参数,不能接收浮点数的字符串.

当参数为浮点数时,函数会返回参数的整数部分.当参数是整数字符串时,函数将其转换为整型

定义一个整型变量:

a=27

int

2.浮点型float:用来记录身高、体重、工资等

定义一个浮点型变量:

price=11.22

float

进制转换:

十进制  ——>二进制  bin(27)   [反向为int("0b11011",2)]

十进制  ——>八进制 och(27)   [反向为int("0o33",8)]

十进制  ——>十六进制  hex(27)  [反向为int("0x1b",16)]

二、字符串str:用来记录描述性质状态,如名字、性别等

用引号('',"",'''''')将内容包含起来赋给变量名,就可以定义一个字符串变量。

只有在全部数据为字符串时,用eval

使用引号将内容包含起来赋给变量名,就可以定义一个字符串变量。定义这两个变量时,实际调用了 str() 函数。

name='lalal'当字符串内有引号时,定义的引号需要不能和其相同:

str3= "hello,I'm lily."字符串类型可以用运算符进行简单的拼接:

str1= "hello"str2= "world!"res= str1+str2print(res) #hello world!

print(res*3) #hello world! hello world! hello world!

字符串类型之间也可以比较大小:

str1= "hello"str2= "world!"

print(str1>str2) #False,根据ASCII码得来. A

字符串类型并不能和其他数据类型进行拼接和运算

str

需要即时掌握的操作1.strl[0] 按索引取值2.strl[1:3:2] 切片(顾头不顾尾,步长)3.len 长度(统计的是字符个数)4.in/not in成员运算 (返回布尔值)5.strip,lstrip,rstrip 移除空白6.split,rsplit 切分.切出来的是列表7.for i in listl 循环遍历

str1 = "lalal,27,hello world!"list1=[#str1[0:9:3], # la2 间隔两个字符切片(步长指定为2,默认为1)

#str1[:], # lalal,27,hello world! 起始位置和结束位置默认为0,可以获得一个同样的字符串

#str1[::-1], # !dlrow olleh,72,lalal 返回一个倒序字符串

#str1[-3:], # ld! 返回后三个字符

#str1[-1:-5:-1], # !dlr 起始位置都可以是负值,但切片的方向要和步长一致

#len(str1), # 21 返回str1的长度(字符个数),如果len()的参数是列表、元组,则返回元素个数

#"12" in str1, # False 成员运算,返回布尔值

#str1.strip(), # lalal,27,hello world! 移除str1两端的指定字符,默认为空格 返回一个新的字符串

#str1.split(",", 2), # ['lalal', '27', 'hello world!'] 此函数接收两个参数:切分字符和个数,返回一个列表

"0".join(str1.split(",", 2)) #lalal0270hello world! 将切分后的列表元素以指定的字符拼接,原理是字符串拼接+迭代#]for i inlist1:print(i)

需要即时掌握的操作

需要优先掌握的操作1.lower 将str1内的英文字符转换为大写2.upper 将str1内的英文字符转换为小写3.startswith 判断str1是否以"xx"开头,并返回布尔值4.endswith 判断str1是否以"xx"结尾5.fomat 格式化输出三种用法(与%:%需要一一对应,相当于第一种用法,数目不匹配报错。)6.replace 替换7.join 拼接,相当于for循环,可迭代的对象必须都是字符串8.isdigit 判断字符是否为"数字",可以判断bytes和unicode类型9.isinstance 判断...是否是...类型

str1 = "lalal,27,hello world!"list1=[

str1.lower(),#lalal,27,hello world! 将str1内的英文字符转换为小写并返回一个新字符串

str1.upper(), #LALAL,27,HELLO WORLD! 将str1内的英文字符转换为大写并返回一个新字符串

str1.startswith("12"), #False 判断str1是否以"12"开头,并返回布尔值

str1.endswith("!"), #False 判断str1是否以"!"结尾,并返回布尔值

"la{},27,hel{}lo world!".format("3", "T"), #la3,27,helTlo world! 格式化输出:按顺序输出

"la{1},27,he{0}world!".format("3", "T"), #laT,27,he3world! 格式化输出:指定位置

"la{x},27,he{y}world!".format(x="3", y="T"), #la3,27,heTworld 格式化输出:指定关键字!

str1.replace("27", "dz", 1), #lalal,27,hello world! replace接收三个参数:原字符,替换字符,替换字数

str1.isdigit(), #False 判断str1是否是纯数字字符,返回布尔值

]for i inlist1:print(i)

需要优先掌握的操作

需要了解的方法1.count2.find,rfind3.index,rindex4.center,ljust,rjust,zfill 居中,左,右,5.captalize 首字母大写6.swapcase7.title 全大写

str1 = "LalAl,27,heLlo World!"list1=[

str1.count("l"), #4 返回srt1内指定字符的个数,不指定字符则统计整个字符串的字符数

str1.find("27"), #6 返回指定字符在str1中的索引,如果不存在则返回-1。 rfind()从右向左寻找

str1.index("La"), #0 返回指定字符在str1中的索引,如果不存在则报错。 rindex()从右向左寻找

str1.center(30, "_"), #__LalAl,27,heLlo World! ___

#返回一个原字符串居中,并使用指定单位字符

#填充至指定长度的新字符串。默认填充字符为一个空格。

#如果指定的长度小于原字符串的长度则返回原字符串。

#类似调整格式的方法还有 左对齐:ljust() 右对齐:rjust() 用0填充:zfill()

str1.capitalize(), #Lalal,27,hello world!首字母大写

str1.swapcase(), #Lalal,27,hello world!大小写互换

str1.title() #Lalal,27,Hello World! 返回英文单词首字母大写的字符串

]for i inlist1:print(i)

需要了解的方法

is数字1.isdigt:判断bytes,unicode类型2.isdecimal:uncicode3.isnumberic:unicode,中文数字,罗马数字4.isalnum5.isalpha6.isidentifier7.islower,isupper8.isspace9.istitle

#is数字系列#在python3中

num1='4' #bytes

num2=u'4' #unicode,python3中无需加u就是unicode

num3='四' #中文数字

num4='Ⅳ' #罗马数字

print(num1,num2,num3,num4) #4 4 四 Ⅳ

#isdigt:bytes,unicode

print(num1.isdigit()) #True

print(num2.isdigit()) #True

print(num3.isdigit()) #False

print(num4.isdigit()) #False

#isdecimal:uncicode#bytes类型无isdecimal方法

print(num2.isdecimal()) #True

print(num3.isdecimal()) #False

print(num4.isdecimal()) #False

#isnumberic:unicode,中文数字,罗马数字#bytes类型无isnumberic方法

print(num2.isnumeric()) #True

print(num3.isnumeric()) #True

print(num4.isnumeric()) #True

#三者不能判断浮点数

num5='4.3'

print(num5.isdigit()) #False

print(num5.isdecimal()) #False

print(num5.isnumeric()) #False

'''总结:

最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景。

如果要判断中文数字或罗马数字,则需要用到isnumeric'''

#is其他

print('===>')

name='egon123'

print(name.isalnum()) #True 字符串由字母或数字组成

print(name.isalpha()) #False 字符串只由字母组成

print(name.isidentifier()) #True

print(name.islower()) #True

print(name.isupper()) #False

print(name.isspace()) #False

print(name.istitle()) #False

is系列

字符串的一些方法,比如按按索引取值、成员运算、切片、返回长度(元素个数)等方法对于列表,字典等数据类型同样适用.

三、列表list:用来记录多个值,用索引对应值,索引反映位置。在[]内以逗号分隔多个任意类型的值

list1=[1,2.1,'lalal',['a','b','c']]print(type(list1)) #

print(list1[0]) #1

print(list1[3][0]) #a

当索引超出列表的长度时,就会报错

list的定义用法

需要优先掌握的操作1.listl[0] 按索引取值2.listl[1:3:2] 切片(顾头不顾尾,步长)3.len 长度(统计的是元素个数)4.in/not in成员运算 (返回布尔值)5.append 追加(如果有一个列表,会将其当作一个元素整个追加)6.insert 插入7.del删除(根据索引删)8.remove 删除(单纯的根据元素名去删)9.pop 删除(若不指定索引,默认取走最后一个,有返回值,为删掉的值)10.for i in listl 遍历列表

l = ['a', 'b', 'c', 'd', 'e']print(l[0], l[0:2:1]) #a ['a', 'b'] 按索引取值、切片(返回子列表),与字符串切片方法相同

l[2] = "C" #替换索引位置元素

print(l,len(l)) #['a', 'b', 'C', 'd', 'e'] 5 返回列表与元素个数(长度)

print("a" in l) #True in/not in成员运算

l.append("1") #列表末尾追加元素,无返回值

print(l) #['a', 'b', 'c', 'd', 'e', '1']

l.insert(0, 11111) #在指定索引位置插入元素IKN

print(l) #[11111, 'a', 'b', 'c', 'd', 'e']

del l[0] #删除

print(l) #['a', 'b', 'c', 'd', 'e']

l.remove("b") #删除指定元素

print(l) #['a', 'c', 'd', 'e']

l.pop(1) #删除指定索引位置元素,并将删除的元素返回。默认索引为-1

print(l) #['a', 'd', 'e']

for item in l: #遍历列表

print(item) #a d e

需要优先掌握的操作

需要掌握的操作1.count 计数2.extend 追加(如果有一个列表,会将其按元素逐个添加)3.index 索引所在位置,可以指定起始范围,若没有该vaule,报错。4.reverse 倒序5.sort 排序(从小到大)可以跟匿名6.join

l = ['a', 'b', 'c', 'd', 'e']print(l.count("a")) #1 返回列表中包含指定元素的个数

l2= ["!","!"]

l.extend(l2)print(l) #['a', 'b', 'c', 'd', 'e', '!', '!'] 接收一个可迭代对象,将其元素添加到l中,返回None

print(l.extend(12)) #报错

print(l.index('c')) #2 返回指定vaule的索引,可以指定起始范围,若没有该vaule,报错。

l.reverse() #反转列表

print(l) #['e', 'd', 'c', 'b', 'a']

print(l.reverse()) #None

l.sort()#将列表中元素按从小到大顺序排序,若指定reverse=True,则倒序

print(l) #['a', 'b', 'c', 'd', 'e']

需要掌握的操作

1.队列:先进先出

l=[]

l.append('first')

l.append('second')

l.append('third')print(l) #['first', 'second', 'third']

print(l.pop(0)) #first

print(l.pop(0)) #second

#2.堆栈:先进后出#l=[]

l.append('1')

l.append('2')

l.append('3')print(l) #['1', '2', '3']

print(l.pop(-1)) #3

print(l.pop(-1)) #2

队列、堆栈

列表生成式 【i for i in range(10)】 --详情后文讲

四、字典dict:在{ }里,用key:vaule的形式存放多个元素,并用,将元素隔开.

字典的key一定是不可变类型(内部需要做hash),因为key起到描述作用,一般是字符串型,vaule可以是任意类型。定义字典调用了 dict()方法,dict() 接收可迭代对象(k, v in iterable)和关键字参数:

d = {'name1':'lalal','name2':'ann','name3':'sha'}print(d["name1"]) #lalal

字典没有索引,即无序的。用花括号{ } 可以定义一个字典,字典的元素包含键(key)和值(vaule),中间用冒号 :分开。冒号左边是key,一定要用不可变类型,比如字符串,我们可以通过key访问到vaule。

dict的定义用法

需要优先掌握的操作1.dictl['key'] 按key取值2.len 长度(统计的是元素个数)3.in/not in成员运算 (返回布尔值)4.d.get('key') 按key取值5.pop6.deldictl[] 删除(指定key删除,无返回值)7.键:key 值:values 键值对:items()8.for i in dic.iteml()

dict1 = {'name': 'lalal', 'age': 27, 'gender': 'male'}print(dict1["name"]) #lalal 按key取值

print(dict1.get("age")) #27 按key取值,如果不存在这个key则返回None,不会报错

dict1["name"] = "dz" #当指定的key存在时,修改对应的vaule。如果不存在,则新增元素。

print(dict1['name']) #dz

dict1.setdefault("age",20) #指定的key存在时,不修改对应的vaule;若不存在,则新增元素。返回值是key对应的vaule

print(dict1) #{'name': 'lalal', 'age': 27, 'gender': 'male'}

print(dict1.setdefault("age",20)) #27

print(dict1.pop("name")) #lalal 删除key所在的元素,并返回vaule,如果不存在会报错

print(dict1) #{'age': 27, 'gender': 'male'}

print(dict1.popitem()) #('gender', 'male') 随机删除一个元素,以元组的形式返回此元素

print(dict1) #{'name': 'lalal', 'age': 27}

print(dict1.keys()) #输出键 dict_keys(['name', 'age', 'gender'])

print(dict1.values()) #输出值 dict_values(['lalal', 27, 'male'])

print(dict1.items()) #输出键值对 dict_items([('name', 'lalal'), ('age', 27), ('gender', 'male')])

以上三个输出的返回值是可迭代对象,可以用for 遍历出元素for k indict1.keys():print(k) #name age gender

for v indict1.values():print(v) #lalal 27 male

for k, v indict1.items():print(k, v)#name lalal#age 27#gender male

需要优先掌握的操作

需要掌握的操作1.fromkeys 初始化一个字典2.update 更新字典3.setdefault

dict1 = {'name', 'age', 'gender'}

d={}.fromkeys(dict1,None) #初始化一个vaule为None的字典

print(d) #{'name': None, 'age': None, 'gender': None}

dic1= {'name': 'lalal', 'age': 27, 'gender': 'male'}

d.update(dic1)#更新字典,更新原有key对应的vaule,并增加原来没有的元素

print(d) #{'gender': 'male', 'name': 'lalal', 'age': 27}

需要掌握(初始化、更新dict)

存多值、无序、可变

五、布尔bool:描述两种状态,True、False (注意大小写).

if 3>2:print(3>2) #True

print(type(3>2)) #

所有的数据类型自带bool值

布尔值为False:0,None,空(比如空字符串"",空列表[])

bool的定义用法

所有的数据类型自带bool值,需要注意:

0,None,空(比如空字符串"",空列表[])的布尔值为False

六、元组tuple:相当于一个不可变列表,形式上是在()内用,将多个任意类型的元素隔开定义一个元组调用了tuple() 函数,tuple()函数接收一个可迭代对象,将其转换为元组的元素。

元组可视为不可修改的列表。修改元组内元素会报错,但是:

t=(1,"1",[1,2,3]) #定义一个元组

t[2][0] = "hello"

print(t) #(1, '1', ['hello', 2, 3])

元组里的内容的确修改了,实际上,元组内存储的是vaule的地址,修改列表内的元素并不会改变地址

tuple的定义用法

需要优先掌握的操作1.tuplel[0] 按索引取值2.tuplel[1:3:2] 切片(顾头不顾尾,步长)3.len 长度(统计的是元素个数)4.in/not in成员运算 (返回布尔值)5.for i in tuplel

t = ['a', 'b', 'c', 'd', 'e']print(t[0], t[0:2:1]) #a ['a', 'b']按索引取值、切片(返回子列表),与字符串切片方法相同

t[2] = "C" #替换索引位置元素

print(t,len(t)) #['a', 'b', 'C', 'd', 'e'] 5 返回列表与元素个数(长度)

print("a" in t) #True in/not in成员运算

for item in t: #遍历列表

print(item) #a b C d e

需要优先掌握的操作

需要掌握的操作1.count 计数2.index 索引所在位置,可以指定起始范围

t = ['a', 'b', 'c', 'd', 'e']print(t.index('d',1,5)) #3 找到索引d在元组(范围1~5)中所在的位置,

print(t.count('a')) #1 计a的个数

需要掌握的操作

存多值、有序、不可变

七、集合set:用{ }的形式表示,内部元素用 , 分隔

集合的主要用途:I关系运算  II去重(局限性:1.只针对不可变类型 2.不能保证原来顺序,可用set.index)

集合是无序的,其中的元素必须是不可变类型,并且没有重复元素。定义集合会调用 set() 函数,该函数会生成一个集合,去除重复元素。

set1= set([1, 'a', 'b'])

set2= set("hello")print(set1, set2) #{1, 'a', 'b'} {'e', 'o', 'h', 'l'}

set的定义用法

需要优先掌握的操作1.len 长度(统计的是元素个数)2.in/not in成员运算 (返回布尔值)3.|合集4.&交集5.-差集6.^对称差集7.==

8.>=父集9.<=子集

s1 = {"张","王","李","赵"}

s2= {"赵","钱","孙","李"}print(s1|s2) #并集 {'王', '李', '赵', '钱', '张', '孙'}

print(s1&s2) #交集 {'李', '赵'}

print(s1-s2) #差集 {'王', '张'}

print(s2-s1) #{'钱', '孙'}

print(s1^s2) #{'王', '钱', '张', '孙'} 对称差集:没有同时存在与s1和s2的元素

print(s1==s2) #False 判断两集合是否相等

print(s2>=s1) #False 判断s2是否包含s1(s2是否为s1的父集)(s1是否为s2的子集)

print(s2<=s1) #False

需要优先掌握的操作

需要掌握的操作1.update2.pop3.remove4.discard

s1 = {"张","王","李","赵"}print(len(s1)) #4

print(s1.pop()) #李

s1.add("刘") #添加元素,无返回值。

print(s1) #{'王', '刘', '张', '李', '赵'}

s1.update('钱') #更新集合,无返回值

print(s1) #{'李', '钱', '赵', '王', '张'

s1.remove('王') #移除,无返回值。删除集合中没有的元素时会报错

print(s1) #{'李', '张', '赵'}

s1.discard('张') #移除,无返回值。删除集合中没有的元素时不会报错

print(s1) #{'李', '赵', '王'}

需要掌握的操作

存多值、无序、可变

八、None:代表没有任何东西,它甚至没有任何类型

None的定义用法print(type(None)) #

类型小结

1)按存值个数分

存单个(标量/原子类型):字符串

存多个(容器类型):列表、元组、字典(、集合)

2)按可变不可变分

可变:列表、字典、可变集合

不可变:数字、字符串、元组、不可变集合

(set —— 可变集合。集合中的元素可以动态的增加或删除。frozenset —— 不可变集合。集合中的元素不可改变。)

3)按访问顺序分

直接取:数字

索引取:字符串、列表、元组

key取: 字典

4)按有无序分

有序:列表、元组、字符串

无序:字典、集合

5)按存储空间的占用分(从低到高)

数字

字符串

集合:无序,即无序存索引相关信息

元组:有序,需要存索引相关信息,不可变

列表:有序,需要存索引相关信息,可变,需要处理数据的增删改

字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改

内置python数据类型_python基础之数据类型及内置方法相关推荐

  1. python复数的实部和虚部的数字类型_Python基础:数据类型-数字(5)

    在Python中,所有的数据类型都是类,每一个变量都是类的实例. Python中有6种标准数据类型:数字(Number).字符串(String).列表(List).元组(Tuple).集合(Sets) ...

  2. python中列表数据类型_python基础数据类型一(列表)

    列表 列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: ...

  3. python各种类型的数据拼接_python基础2 数据类型、数据拼接、数据转换

    一.数据类型 1.字符串 字符串英文string,简写str,只要是被[单/双/三引号]这层皮括起来的内容,不论那个内容是中文.英文.数字甚至火星文.只要是被括起来的,就表示是字符串类型 如:prin ...

  4. python容器数据类型_python collections 容器数据类型

    这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择. 创建命名元组子类的工厂函数 类似列表(list)的容器,实现了在两端 ...

  5. python测验3基本数据类型_Python 3 基本数据类型

    Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的 ...

  6. python自学入门教程-Python自学入门基础教程-数据类型

    在程序中,被运算的可分为常量(Literals)和变量(Variables) 1x = 10*2-5 2y = x+1 以上的变量都属于Python数据类型中的一部分. 在以上代码中,10.2.5都是 ...

  7. python语言数据类型_Python中的数据类型 | 萧小寒

    摘要 Python3中提供有六个标准的数据类型:Number(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionary(字典). 在这些数据类型中, ...

  8. python异常处理_Python基础语法案例(Fibonacci):选择结构、循环结构、异常处理结构、代码优化...

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书购买链接(京东):配 ...

  9. 以30字符宽居中输出python字符串_python基础--字符串

    Python3 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号(' 或" )来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hell ...

最新文章

  1. Design Pattern - Iterator(C#)
  2. python画饼图-python画饼图的多种方式
  3. JavaScript prototype整理(网上的三种理解)
  4. 我建议您还是不要尝试和外国人讨论文学了,您干不过的。。。还是跟他们拼数学,逻辑,编程比较合适
  5. kafka安装(版本kafka_2.11-0.11.0.0)
  6. 使用PowerDesigner 建立mysql数据表
  7. 检查你的项目的引用包依赖关系
  8. 在BingoCC上面解析域名实现智能路由
  9. ORA-04063: view DAILY.TMP_TBX_100_0_S4 有错误
  10. ASP.NET MVC路由扩展:路由映射
  11. 华为机试HJ46:截取字符串
  12. Linux下多线程pthread内存泄露
  13. 开心电视助手v3.8最新绿色版,安卓设备远程管理工具神器
  14. php实现word文档在线浏览功能,配置安装手记
  15. HDU-4037-线段树-区间开根号
  16. mmap和shmget的区别
  17. 理由第三方搜索引擎查找真实ip
  18. 就自拍这回事(文/@最牛傻蛋)
  19. 在java中使用SFTP协议安全的传输文件
  20. python 飞机大战 添加音效 添加分数

热门文章

  1. win7双屏幕,双任务栏
  2. 「 LaTex 」使用多级标题
  3. 利用函数求平均分及方差
  4. 英语入门造句专用形容词表(116个)
  5. 用python画一个蜡笔小新
  6. 在线的色值转换RGB网址
  7. kubeadm部署k8s集群
  8. php录音功能,关于录音功能的详细介绍
  9. 全球及中国抗体药物市场展望规划及专项深度调研报告2021-2027年
  10. Arcmap特殊注记