前言

我的征途——是星程大海!

有多少路我将行走,有多少山峰我将为了寻找自己而去征服,有多少次我将失败,有多少次我将重新开始,而这一切是否有意义,我会耐心等待,我为自己准备,那通向我梦想和希望的旅程。不要燃尽自己,我的星辰,请等我。

今天博主跟大家聊一聊如何使用Python的基本数据类型不喜勿喷,如有建议欢迎补充、讨论!

关于安装和汉化可以观看博主的这篇文章《VsCode下载安装及汉化 》以及Python系列:windows10配置Python3.0开发环境!,安装完毕重启VsCode!

在了解基本数据类型的时候,我们需要了解基本数据类型有哪些?数字int、布尔值bool、字符串str、列表list、元组tuple、字典dict等,其中包括他们的基本用法和其常用的方法,这里会一一列举出来,以便参考。然后我们还需要了解一些运算符,因为这些基本数据类型常常会用于一些运算等等。

Come on!基本数据类型

1、数字 --->int类

当然对于数字,Python的数字类型有int整型、long长整型、float浮点数、complex复数、以及布尔值(0和1),这里只针对int整型进行介绍学习。

在Python2中,整数的大小是有限制的,即当数字超过一定的范围不再是int类型,而是long长整型,而在Python3中,无论整数的大小长度为多少,统称为整型int。

其主要方法有以下两种:

int-->将字符串数据类型转为int类型, 注:字符串内的内容必须是数字

s = '123'

i = int( s )

print( i)


bit_length()-->将数字转换为二进制,并且返回最少位二进制的位数

i =123

print( i.bit_length() )


#输出结果为:

>>>7


2、布尔值 --->bool类

对于布尔值,只有两种结果即True和False,其分别对应与二进制中的0和1。而对于真即True的值太多了,我们只需要了解假即Flase的值有哪些---》None、空(即 [ ]/( ) /" "/{ })、0;

'''

@name: Sunny Chen

@test: test font

@msg: 这是由Sunny Chen创建.

@param:

@return:

'''

#以下结果为假,即None、‘’、[]、()、{}以及 0

>>> bool(None)

False

>>> bool('')

False

>>> bool([])

False

>>> bool(0)

False

>>> bool(())

False

>>> bool({})

False


3、字符串 --->str类

关于字符串是Python中最常用的数据类型,其用途也很多,我们可以使用单引号 ‘’或者双引号“”来创建字符串。

字符串是不可修改的。所有关于字符我们可以从 索引、切片、长度、遍历、删除、分割、清除空白、大小写转换、判断以什么开头等方面对字符串进行介绍。

创建字符串

'''

@name: Sunny Chen

@test: test font

@msg: 这是由Sunny Chen创建.

@param:

@return:

'''

name ='mr_chen'

print(name)


切片

>>> name ="mr_chen"

>>> name[1]

'i'

>>> name[0:-2] #从第一个到倒数第二个,不包含倒数第二个

'mr_ch'

索引-->index()、find()

'''

@name: Sunny Chen

@test: test font

@msg: 这是由Sunny Chen创建.

@param:

@return:

'''

name = "mr_chen"

#index-->获取索引,第二个参数指定获取该子字符或者子序列的第几个

print(name.index("l",2))


#find -->其作用与index相似

print(name.find("l",2))


index()与find()的不同之处在于:若索引的该字符或者序列不在字符串内,对于index--》ValueError: substring not found,而对于find -->返回 -1。

>>> name = "mr_chen"

>>> print(name.index("q",2))

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ValueError: substring not found


print(name.find("s",2))

#find--》输出为:

>>> -1


长度 -->len()

name = "mr_chen"

#获取字符串的长度

print(len(name))


#输出为:

>>> 7

注:len()方法-->同样可以用于其他数据类型,例如查看列表、元组以及字典中元素的多少。

删除 -->del

#删除字符串,也是删除变量

>>> name ="mr-chen"

>>> del name

>>> name

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'name' is not defined


判断字符串内容 -->isalnum()、isalpha()、isdigit()

#判断是否全为数字

>>> a ="123"

>>> a.isdigit()

True

>>> b ="a123"

>>> b.isdigit()

False


#判断是否全为字母

>>> d ="alx--e"

>>> d.isalpha()

False

>>> c ="alex"

>>> c.isalpha()

True


#判断是否全为数字或者字母

>>> e ="abc123"

>>> e.isalnum()

True


大小写转换 -->capitalize()、lower()、upper()、title()、casefold()

#大小写的互相转换

>>> name ="mr-chen"

#首字母大写-->capitalize

>>> name.capitalize()

'Mr-chen'


#转为标题-->title

>>> info ="my name is mr-chen"

>>> info.title()

'My Name Is Mr-Chen'


#全部转为小写-->lower

>>> name ="MR-CHEN"

>>> name.lower()

'mr-chen'


#全部转为大写-->upper

>>> name = "mr-chen"

>>> name.upper()

'MR-CHEN'


#大小写转换-->swapcase

>>> name ="mr-chen"

>>> name.swapcase()

'MR-CHEN'


判断以什么开头结尾 -->startswith()、endswith()

#判断以什么开头、结尾

>>> name ="mr-chen"


#判断以什么结尾

>>> name.endswith("n")

True


#判断以什么开头

>>> name.startswith("mr")

True


扩展-->expandtabs()

#expandtabs -->返回字符串中的 tab 符号('\t')转为空格后生成的新字符串。通常可用于表格格式的输出


info ="name\tage\temail\nmrchen\t22\867647213@qq.com\nsunny\t33\chen867647213@163.com"

print(info.expandtabs(10))


>>> print(info.expandtabs(10))

name age email

mrchen 22\867647213@qq.com

sunny 33\chen867647213@163.com


格式化输出-->format()、format_map()

#分割,有两个方法-partition、split


#partition -->只能将字符串分为三个部分,生成列表

>>> name ="mr_chen"

>>> name.partition("-")

('mr_chen', '', '')

>>> name.partition("_")

('mr', '_', 'chen')


#split-->分割字符串,并且可以指定手机号交易平台分割几次,并且返回列表

>>> name="mr-chen-hello-baby!"

>>> name.split("-")

['mr', 'chen', 'hello', 'baby!']

>>> name.split("-",2) #指定分割几次

['mr', 'chen', 'hello-baby!']

>>>


替代 -->replace

#替代
>>>name="mr-chen"
>>>name.replace("h","H")
'mr-cHen'
#也可以指定参数,替换几个
>>>name.replace("m","e",2)
'er-chen'
>>>

清除空白 -->strip()、lstrip()、rstrip()

#去除空格
>>>name="mr-chen"

#去除字符串左右两边的空格
>>>name.strip()
'mr-chen'

#去除字符串左边的空格
>>>name.lstrip()
'mr-chen'

#去除字符串右边的空格
>>>name.rstrip()
'mr-chen'
>>>

替换 -->makestran 、translate

#进行一一替换

>>>a="wszgr"
>>>b="我是中国人"
>>>v=str.maketrans(a,b)#创建对应关系,并且两个字符串长度要求一致
>>>info="I'maChinesepeople,wszgr"
>>>info.translate(v)
"I'maChine是epeople,我是中国人"
>>>

4、列表 --->list类

列表是由一系列特定元素顺序排列的元素组成的,它的元素可以是任何数据类型即数字、字符串、列表、元组、字典、布尔值等等,同时其元素也是可修改的。

其形式为:

names=['mr-chen","Sunny","Alex"]
#或者
names=list(['mr-chen","Sunny","Alex"])复制代码

索引、切片

#索引-->从0开始,而不是从一开始
name=["xiaojia","mr-chen","Sunny"]
print(name[0:-1])

#切片-->负数为倒数第几个,其为左闭右开,如不写,前面表示包含前面所有元素,后面则表示后面所有元素
m1=name[1:]
print(m1)
#输出为-->['mr-chen','Sunny']
m2=name[:-1]
print(m2)
#输出为-->['xiaojia','Sunny']

追加-->append()

#追加元素-->append()
name=["xiaojia","mr-chen","Sunny"]
name.append("alex")
print(name)

#输出为--》['xiaojia','mr-chen','Sunny','alex']复制代码

拓展-->extend()

#扩展--》其将字符串或者列表的元素添加到列表内
#一、将其他列表元素添加至列表内
name=["xiaojia","mr-chen","Sunny"]
name.extend(["alex","green"])
print(name)
#输出为-->['xiaojia','mr-chen','Sunny','alex','green']

#二、将字符串元素添加到列表内
name=["xiaojia","mr-chen","Sunny"]
name.extend("hello")
print(name)
#输出为-->xiaojia','mr-chen','Sunny','alex','green','h','e','l','l','o']

#三、将字典元素添加至列表内,注:字典的key。
name=["xiaojia","mr-chen","Sunny"]
name.extend({"hello":"world"})
print(name)复制代码

注:扩展extend与追加append的区别:-->前者为添加将元素作为一个整体添加,后者为将数据类型的元素分解添加至列表内。例:

#extend-->扩展
name=["xiaojia","mr-chen","Sunny"]
name.extend(["hello","world"])
print(name)
输出为-->['xiaojia','mr-chen','Sunny','hello','world']

#append-->追加
name.append(["hello","world"])
print(name)
输出为-->['xiaojia','mr-chen','Sunny',['hello','world']]

insert()-->插入

#insert()插入-->可以指定插入列表的某个位置,前面提到过列表是有序的
name=["xiaojia","mr-chen","Sunny"]
name.insert(1,"alex")#索引从0开始,即第二个
print(name)复制代码

pop()-->取出

#pop()--取出,可将取出的值作为字符串赋予另外一个变量
name=["xiaojia","mr-chen","Sunny"]
special_name=name.pop(1)
print(name)
print(special_name,type(special_name))

#输出为:['xiaojia','Sunny']
#mr-chen<class'str'>复制代码

remove()-->移除、del-->删除

#remove-->移除,其参数为列表的值的名称
name=["xiaojia","mr-chen","Sunny"]
name.remove("xiaojia")
print(name)

#其输出为:['mr-chen','Sunny']

#del-->删除
name=["xiaojia","mr-chen","Sunny"]
#name.remove("xiaojia")
delname[1]
print(name)

#其输出为:['xiaojia','Sunny']

sorted()-->排序,默认正序,加入reverse =True,则表示倒序

#正序
num=[11,55,88,66,35,42]
print(sorted(num))-->数字排序
name=["xiaojia","mr-chen","Sunny"]
print(sorted(name))-->字符串排序
#输出为:[11,35,42,55,66,88]
#['Sunny','mr-chen','xiaojia']

#倒序
num=[11,55,88,66,35,42]
print(sorted(num,reverse=True))
#输出为:[88,66,55,42,35,11]复制代码

5、元组 --->tuple类

元组即为不可修改的列表。其于特性跟list相似。其使用圆括号而不是方括号来标识

#元组
name=("mr-chen","xiaojia")
print(name[0])复制代码

6、字典 --->dict类

字典为一系列的键-值对,每个键值对用逗号隔开,每个键都与一个值相对应,可以通过使用键来访问对应的值。无序的。

键的定义必须是不可变的,即可以是数字、字符串也可以是元组,还有布尔值等。

而值的定义可以是任意数据类型。

#字典的定义
info={
1:"helloworld",#键为数字
("helloworld"):1,#键为元组
False:{
"name":"Sunny"
},
"age":22
}复制代码

遍历 -->items、keys、values

info={
"name":"mr-chen",
"age":21,
"email":"867647213@qq,com"
}
#键
forkeyininfo:
print(key)
print(info.keys())
#输出为:dict_keys(['name','age','email'])

#键值对
print(info.items())
#输出为-->dict_items([('name','mr-chen'),('age',21),('email','867647213@qq,com')])

#值
print(info.values())
#输出为:dict_values(['mr-chen',21,'867647213@qq,com'])复制代码

7、集合 -->set类

关于集合set的定义:在我看来集合就像一个篮子,你可以往里面存东西也可往里面取东西,但是这些东西又是无序的,你很难指定单独去取某一样东西;同时它又可以通过一定的方法筛选去获得你需要的那部分东西。故集合可以 创建、增、删、关系运算。

集合的特性:

1、去重

2、无序

3、每个元素必须为不可变类型即(hashable类型,可作为字典的key)。

创建:set、frozenset

#1、创建,将会自动去重,其元素为不可变数据类型,即数字、字符串、元组
test01={"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True}
#或者
test02=set({"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True})

#2、不可变集合的创建-->frozenset()
test=frozenset({"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True})复制代码

增:add、update

#更新单个值--->add
names={"zhangsan","lisi","wangwu"}
names.add("sunny")#其参数必须为hashable类型
print(names)

#更新多个值-->update
names={"zhangsan","lisi","wangwu"}
names.update({"alex","sunny"})#其参数必须为集合
print(names)复制代码

删除:pop、remove、discard

#随机删除-->pop
names={"zhangsan","lisi","wangwu","alex","sunny"}
names.pop()
print(names)

#指定删除,若要删除的元素不存在,则报错-->remove
names={"zhangsan","lisi","wangwu","alex","sunny"}
names.remove("lisi")
print(names)

#指定删除,若要删除的元素不存在,无视该方法-->discard
names={"zhangsan","lisi","wangwu","alex","sunny"}
names.discard("hello")
print(names)复制代码

关系运算:交集 & 、并集 | 、差集 - 、交差补集 ^ 、 issubset 、isupperset

比如有两个班英语班和数学班,我们需要统计这两个班中报名情况,例如既报名了英语班有报名数学班的同学名字等等,这时候我们就可以应用到集合的关系运算:

english_c={"ZhangSan","LiSi","Sunny","Alex"}
math_c={"WangWu","LiuDeHua","Sunny","Alex"}

#1、交集-->inaandinb
#统计既报了英语班又报了数学班的同学
print(english_c&math_c)
print(english_c.intersection(math_c))
#输出为:{'Alex','Sunny'}

#2、并集-->inaorinb
#统计报名了两个班的所有同学
print(english_c|math_c)
print(english_c.union(math_c))
#输出为:{'Sunny','ZhangSan','LiuDeHua','LiSi','Alex','WangWu'}

#3、差集-->inanotinb
#统计只报名英语班的同学
print(english_c-math_c)
print(english_c.difference(math_c))
#输出为:{'LiSi','ZhangSan'}

4、交差补集
#统计只报名一个班的同学
print(english_c^math_c)
#输出为:{'LiuDeHua','ZhangSan','WangWu','LiSi'}复制代码

判断两个集合的关系是否为子集、父集 --> issubset 、isupperset

#5、issubset-->n是否为m的子集
#issuperset-->n是否为m的父集
n={1,2,4,6,8,10}
m={2,4,6}
l={1,2,11}

print(n>=m)
#print(n.issuperset(m))#n是否为m的父集
#print(n.issuperset(l))
print(m<=n)
#print(m.issubset(n))#m是否为n的子集复制代码



更多相关文章

  1. android 中使用TextView实现分段显示不同颜色的字符串
  2. 重定向android log
  3. exp: 修改Android中strings.xml文件, 动态改变数据
  4. Android(安卓)编程下通过 zipalign 对 APK 文件进行优化
  5. Android(安卓)中数据库查询方法 query() 中的 select
  6. android中SqLite query中用selectionArgs处理字符传值
  7. 修改系统Android版本,版本号
  8. 获取Android系统信息
  9. android读取工程里文件并显示在界面

随机推荐

  1. 使用 Netty 实现 IM 聊天贼简单,看不懂就
  2. 帅气的 Spring Session 功能,基于 Redis
  3. kubernets 挂载 NAS 报 access denied
  4. Apollo 源码解析 —— Portal 认证与授权
  5. Linux学习:文件IO(不带缓冲区),原子操作概念
  6. Linux学习:unix的标准化的实现(Linux中各种
  7. 艿艿的 Spring Cloud Alibaba!开整~
  8. 37000 字 + 代码,艿艿肝的 Shiro 从入门到
  9. Linux学习:Linux基础简介。
  10. HTTP/2:更快的页面加载时间[每日前端夜话0