数据类型及常用方法

Posted linxidong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型及常用方法相关的知识,希望对你有一定的参考价值。

可变类型与不可变类型

 1、可变类型

    值改变,id不变,说明是直接改变原值,是可变类型

 2、不可变类型

    值改变,id也跟着改变,说明是产生了新的值,是不可变类型

整型(int)与浮点型(float)

#整型
 #用途:记录电话号码,年龄,QQ号等纯数字
 #定义方式 

age=18 #age=int(18)
print(type(age))
int(abadf) #报错
int(10.1) #报错
int(101) #int只能将字符串中包含纯数字转成整型

# 十进制转成其他进制
print(bin(12))
print(oct(12)) #12 =>1*(8**1) + 2*(8**0)
print(hex(16))

# 进制转换(了解**)
# 其他进制转成十进制
print(int(10,2))
print(int(10,8))
print(int(10,16))

#浮点型float
  作用:薪资,身高,体重,体质参数等浮点数相关

salary=3000.3 #本质salary=float(3000.3)

 

ps:整型,浮点型:存一个值,不可变

 

字符串(str)

#作用:名字,性别,国籍,地址等描述信息

#定义:在单引号\双引号\三引号内,由一串字符组成

name=‘egon‘

#优先掌握的操作:
#1、按索引取值(正向取+反向取) :只能取
#2、切片(顾头不顾尾,步长)
#3、长度len
#4、成员运算in和not in

#5、移除空白strip
#6、切分split
#7、循环

# 需要你掌握的
#1、strip,lstrip,rstrip
#2、lower,upper
#3、startswith,endswith
#4、format的三种玩法
#5、split,rsplit
#6、join
#7、replace
#8、isdigit # 判断字符串中包含的是否为纯数字

技术图片
1.strip,lstrip,rstrip方法:方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
    ps:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符.
name = *egon**
ptint(name.strip(*)) ##结果:egon
ptint(name.lstrip(*)) ##结果:egon**
ptint(name.rstrip(*)) ##结果:**egon

2.lower,upper方法:转换字符串中所有大小写字符。
name=Egon

print(name.lower()) ##结果:egon

print(name.upper()) ##结果:EGON

3.startswith,endswith方法:用于判断字符串是否以指定开头/后缀结尾,如果以指定开头/后缀结尾返回True,否则返回False。可选参数"start""end"为检索字符串的开始与结束位置。
name=alex_SB
print(name.endswith(SB)) ##结果:True 
print(name.startswith(ex)) ##结果:Flase

4.format()方法:可以接受不限个参数,位置可以不按顺序。
res=  .format(egon,18,male) ##结果:egon 18 male  ps:输出默认位置
res=1 0 1.format(egon,18,male) ##结果:18 egon 18    ps:输出指定位置
res=name age sex.format(sex=male,name=egon,age=18) ##结果:egon 18 male    ps:输出指定位置

5.split()方法:通过指定分隔符对字符串进行切片
# 例题:
# 将以下数据存储为字典类型
# 数据:info = "name:Owen|age:18|gender:男"
# 结果:‘name‘: ‘Owen‘, ‘age‘: 18, ‘gender‘: ‘男‘
info = "name:Owen|age:18|gender:男"
infos = info.split(|)
info_dic = 
for i in infos:
    k,v = i.split(:)
    info_dic = k[v]
print(info_dic)

6.join()方法:用于将序列中的元素以指定的字符连接生成一个新的字符串。
tag= 
print(tag.join([egon,say,hello,world])) #可迭代对象必须都是字符串
输出结果:egonsayhello

7.replace()方法:把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
name=alex say :i have one tesla,my name is alex
print(name.replace(alex,SB,1))
输出结果:SB say :i have one tesla,my name is alex

8.isdigit()方法:可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法
age=input(>>: )
print(age.isdigit())
View Code

 

# 需要了解的内置方法
#1、find,rfind,index,rindex,count
#2、center,ljust,rjust,zfill
#3、expandtabs
#4、captalize,swapcase,title
#5、is数字系列

技术图片
#find,rfind,index,rindex,count
name=egon say hello
print(name.find(o,1,3)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
# print(name.index(‘e‘,2,4)) #同上,但是找不到会报错
print(name.count(e,1,3)) #顾头不顾尾,如果不指定范围则查找所有

#center,ljust,rjust,zfill
name=egon
print(name.center(30,-))
print(name.ljust(30,*))
print(name.rjust(30,*))
print(name.zfill(50)) #用0填充

#expandtabs
name=egon\thello
print(name)
print(name.expandtabs(1))

#captalize,swapcase,title
print(name.capitalize()) #首字母大写
print(name.swapcase()) #大小写翻转
msg=egon say hi
print(msg.title()) #每个单词的首字母大写

#is数字系列
#在python3中
num1=b4 #bytes
num2=u4 #unicode,python3中无需加u就是unicode
num3= #中文数字
num4= #罗马数字

#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())
print(num5.isdecimal())
print(num5.isnumeric())
‘‘‘
总结:
    最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
    如果要判断中文数字或罗马数字,则需要用到isnumeric
‘‘‘

#is其他
print(===>)
name=egon123
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成

print(name.isidentifier())
print(name.islower())
print(name.isupper())
print(name.isspace())
print(name.istitle())
View Code

 

ps:字符串类型:只能够存一个值,有序且不可变

 

列表(list)

# 1 用途:存放多个值,可以根据索引存取值

# 2 定义方式:在[]内用逗号分割开多个任意类型的值

  l=[egon,lxx,yxx] # l=list([‘egon‘,‘lxx‘,‘yxx‘])
 l1=list(hello) #list就相当于调用了一个for循环依次取出‘hello‘的值放入列表
 print(l1)
 l2=list(x:1,y:2,z:3)
 print(l2)
 list(10000) # 报错

# 3 常用操作+内置的方法

#优先掌握的操作:

技术图片
#1、按索引存取值(正向存取+反向存取):即可存也可以取
l=[egon,lxx,yxx]
print(l[0])
l[0]=EGON
print(l)
print(l[-1])
print(l[3])
l[0]=EGON # 只能根据已经存在的索引去改值
l[3]=xxxxxxxx #如果索引不存在直接报错

#2、切片(顾头不顾尾,步长)
l=[egon,lxx,yxx,444,555,66666]
print(l[0:5])
print(l[0:5:2])
print(l[::-1])

#3、长度
l=[egon,lxx,yxx,444,555,66666,[1,2,3]]
print(len(l))

#4、成员运算in和not in
l=[egon,lxx,yxx,444,555,66666,[1,2,3]]
print(lxx in l)
print(444 in l)

#5、追加
l=[egon,lxx,yxx]
l.append(44444)
l.append(55555)
print(l)

#6、往指定索引前插入值
l=[egon,lxx,yxx]
l.insert(0,11111)
print(l)
l.insert(2,2222222)
print(l)

# 一次性添加多个元素
l = [jason,nick]
l.extend([tank,sean])

#7、删除
l=[egon,lxx,yxx]

# 单纯的删除值:
# 方式1:
del l[1] # 通用的
print(l)

# 方式2:
res=l.remove(lxx) # 指定要删除的值,返回是None
print(l,res)

# 从列表中拿走一个值
res=l.pop(-1) # 按照索引删除值(默认是从末尾删除),返回删除的那个值
print(l,res)

#8、循环
l=[egon,lxx,yxx]
for item in l:
print(item)
View Code

 

# 需要掌握的操作

技术图片
l=[egon,egon,lxx,yxx,444,555,66666]
print(l.count(egon))
print(l.index(egon))
print(l.index(yxx,0,1))
l.clear()

items=[a,b,c]
items=hello
for item in items:
l.append(item)
l.extend(items)
print(l)

l=[egon,egon,lxx,yxx,444,555,66666]
l.reverse()
print(l)

nums=[3,-1,9,8,11]
nums.sort(reverse=True)
print(nums)items=[1,a,b,2items.sort()
View Code

 

ps:列表类型:能存多个值,有序,可变

 队列,堆栈

l=[a,b,c]
print(id(l))
l.append(d)
print(id(l))


# 队列:先进先出
l=[]
# # 入队
l.append(first)
l.append(second)
l.append(third)
print(l)
# # 出队
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))

# 堆栈:先进后出
l=[]
# 入栈
l.append(first)
l.append(second)
l.append(third)
print(l)
# 出栈
print(l.pop())
print(l.pop())
print(l.pop())

 

 

 

以上是关于数据类型及常用方法的主要内容,如果未能解决你的问题,请参考以下文章

python数据类型及常用方法

Python数据类型:字典类型及常用方法(updatedelpopkeysvaluesitemssort)

其余数据类型的常用操作及内置方法

数据类型及常用方法

Numpy常用方法及应用总汇

Python数据类型:集合set及使用