Python基本数据类型

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

一、运算符

  运算通常可以根据最终获得的值不同,可以分两类,即结果为具体的值,结果为bool值,那么哪些结果为具体的值-->算数运算、赋值运算,哪些结果又为bool值?--->比较运算、逻辑运算和成员运算。

  1、算术运算

2、赋值运算

3、比较运算

4、逻辑运算

5、成员运算


二、基本数据类型

  1、数字  ---> int类

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

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

其主要方法有以下两种:

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

11 #!/usr/bin/env python 22 # -*- coding:utf-8 -*- 33 44 s = '123' 55 i = int( s ) 6 print( i)

View Code

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

1#!/user/bin/env python #-*- coding:utf-8 -*- 2 i =123 3print( i.bit_length() ) #输出结果为: 4>>>5 

View Code

2、布尔值  --->bool类

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

1#以下结果为假,即None、‘’、[](){}以及 0 2>>> bool(None) 3False >>> bool('') 4False >>> bool([]) 5False >>> bool(0) 6False >>> bool(()) 7False >>> bool({}) 8False

View Code

3、字符串  --->str类

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

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

    创建字符串

1#!/usr/bin/env python # -*- coding:utf-8 -*- 2 3#字符串的形式:使用‘’或者“”来创建字符串 4name ='little_five' 5print(name)

View Code

切片

1#获取切片,复数代表倒数第几个,从0开始 2>>> name ="little-five" 3>>> name[1] 'i' 4>>> name[0:-2] #从第一个到倒数第二个,不包含倒数第二个 5'little-fi'

View Code

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

1#!/usr/bin/env python # -*- coding:utf-8 -*- # 修正版 2name = "little_five" 3#index-->获取索引,语法->str.index(str, beg=0 end=len(string)),第二个参数指定起始索引beg,第三个参数结束索引end,指在起始索引到结束索引之前获取子串的索引 4print(name.index("l",2,8)) #在索引区间2-8之前查找‘l’,找到是第二个‘l’,其索引为4 5 6#find -->其作用与index相似 7print(name.find("l",2)) #结果也为 4

View Code

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

1#!/usr/bin/env python # -*- coding:utf-8 -*- 2 name = "little_five" 3 4print(name.index("q",2)) #index--》输出为: 5>>>Traceback (most recent call last): 6 File "C:/Users/28352/PycharmProjects/learning/Day13/test.py", line 5, in <module> 7 print(name.index("q",2)) 8ValueError: substring not found print(name.find("q",2)) #find--》输出为: 9>>> -1

View Code

长度 -->len()

1name = "little_five" 2#获取字符串的长度 3print(len(name)) #输出为: 4>>> 11

View Code

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

     删除 --> del

1#删除字符串,也是删除变量 2>>> name ="little-five" 3>>> del name >>> name 4Traceback (most recent call last): 5 File "<stdin>", line 1, in <module> NameError: name 'name' is not defined

View Code 

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

1#判断是否全为数字 2>>> a ="123" 3>>> a.isdigit() 4True >>> b ="a123" 5>>> b.isdigit() 6False #判断是否全为字母 7>>> d ="alx--e" 8>>> d.isalpha() 9False >>> c ="alex" 10>>> c.isalpha() 11True #判断是否全为数字或者字母 12>>> e ="abc123" 13>>> e.isalnum() 14True

View Code

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

1#!/usr/bin/env python # -*- coding:utf-8 -*- 2 3#大小写的互相转换 4>>> name ="little_five" 5#首字母大写-->capitalize 6>>> name.capitalize() 'Little_five' 7 8#转为标题-->title 9>>> info ="my name is little_five" 10>>> info.title() 'My Name Is Little_Five' 11 12#全部转为小写-->lower 13>>> name ="LITTLE_FIVE" 14>>> name.lower() 'little_five' 15 16#全部转为大写-->upper 17>>> name = "little_five" 18>>> name.upper() 'LITTLE_FIVE' 19 20#大小写转换-->swapcase 21>>> name ="lIttle_fIve" 22>>> name.swapcase() 'LiTTLE_FiVE'

View Code

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

1#判断以什么开头、结尾 2>>> name ="little-five" 3 4#判断以什么结尾 5>>> name.endswith("e") 6True #判断以什么开头 7>>> name.startswith("li") 8True

View Code

      扩展-->expandtabs()

1#expandtabs -->返回字符串中的 tab 符号('t')转为空格后生成的新字符串。通常可用于表格格式的输出 2 info ="nametagetemailnlittlefivet22t994263539@qq.comnjamest33t66622334@qq.com" 3print(info.expandtabs(10)) #输出为: 4name age email 5little-five 22 994263539@qq.com 6james 33 66622334@qq.com

View Code

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

1#格式化输出-->format、format_map 2 3#forma方法 #方式一 4>>> info ="my name is {name},I'am {age} years old." 5>>> info.format(name="little-five",age=22) "my name is little-five,I'am 22 years old." 6 7#方式二 8>>> info ="my name is {0},I'am {1} years old." 9>>> info.format("little-five",22) "my name is little-five,I'am 22 years old." 10 11#方式三 12>>> info ="my name is {name},I'am {age} years old." 13>>> info.format(**{"name":"little-five","age":22}) "my name is little-five,I'am 22 years old." 14 15#format_map方法 16>>> info ="my name is {name},I'am {age} years old." 17>>> info.format_map({"name":"little-five","age":22}) "my name is little-five,I'am 22 years old."

View Code

      jion方法

1#join--> join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串 2 3#字符串 4>>> name ="littefive" 5>>> "-".join(name) 'l-i-t-t-e-f-i-v-e' 6 7#列表 8>>> info = ["xiaowu","say","hello","world"] >>> "--".join(info) 'xiaowu--say--hello--world'

View Code  

分割 --> split()、partition()

1#分割,有两个方法-partition、split 2 3#partition -->只能将字符串分为三个部分,生成列表 4>>> name ="little-five" 5>>> name.partition("-") 6('little', '-', 'five') #split-->分割字符串,并且可以指定分割几次,并且返回列表 7>>> name ="little-five-hello-world" 8>>> name.split("-") 9['little', 'five', 'hello', 'world'] >>> name.split("-",2) #指定分割几次 10['little', 'five', 'hello-world'] >>>

View Code

        替代 -->replace

1#替代 2>>> name ="little-five" 3>>> name.replace("l","L") 'LittLe-five' 4#也可以指定参数,替换几个 5>>> name.replace("i","e",2) 'lettle-feve' 清除空白 --> strip()、lstrip()、rstrip() #去除空格 6>>> name =" little-five " 7 8#去除字符串左右两边的空格 9>>> name.strip() 'little-five' 10 11#去除字符串左边的空格 12>>> name.lstrip() 'little-five ' 13 14#去除字符串右边的空格 15>>> name.rstrip() ' little-five'

View Code

     替换 -->makestran 、translate

11 #进行一一替换 22 33 >>> a ="wszgr" 44 >>> b="我是中国人" 55 >>> v =str.maketrans(a,b) #创建对应关系,并且两个字符串长度要求一致 66 >>> info ="I'm a Chinese people,wszgr" 77 >>> info.translate(v) 8 "I'm a Chine是e people,我是中国人"

View Code

4、列表  --->list类

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

其形式为:

11 names = ['little-five","James","Alex"] 22 #或者 33 names = list(['little-five","James","Alex"])

    索引、切片

1 1 #索引-->0开始,而不是从一开始 2 2 name =["xiaowu","little-five","James"] 3 3 print(name[0:-1]) 4 4 5 5 6 6 #切片-->负数为倒数第几个,其为左闭右开,如不写,前面表示包含前面所有元素,后面则表示后面所有元素 7 7 m1 =name[1:] 8 8 print(m1) 9 9 #输出为-->['little-five', 'James'] 1010 m2 =name[:-1] 11 print(m2) 12 #输出为-->['xiaowu', 'little-five']

View Code    

    追加-->append()

11 #追加元素-->append() 22 name =["xiaowu","little-five","James"] 3 name.append("alex") 4 print(name) 5 36 #输出为--['xiaowu', 'little-five', 'James', 'alex']

View Code    

    拓展-->extend()

1 1 #扩展--》其将字符串或者列表的元素添加到列表内 2 2 #一、将其他列表元素添加至列表内 3 3 name =["xiaowu","little-five","James"] 4 4 name.extend(["alex","green"]) 5 5 print(name) 6 6 #输出为-->['xiaowu', 'little-five', 'James', 'alex', 'green'] 7 7 8 8 #二、将字符串元素添加到列表内 9 9 name =["xiaowu","little-five","James"] 10 name.extend("hello") 11 print(name) 12 #输出为-->xiaowu', 'little-five', 'James', 'alex', 'green', 'h', 'e', 'l', 'l', 'o'] 1013 1114 #三、将字典元素添加至列表内,注:字典的key。 1215 name =["xiaowu","little-five","James"] 16 name.extend({"hello":"world"}) 17 print(name)

View Code

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

1 1 #extend-->扩展 2 2 name =["xiaowu","little-five","James"] 3 3 name.extend(["hello","world"]) 4 4 print(name) 5 5 输出为-->['xiaowu', 'little-five', 'James', 'hello', 'world'] 6 6 7 7 #append -->追加 8 8 name.append(["hello","world"]) 9 9 print(name) 10 输出为 -->['xiaowu', 'little-five', 'James', ['hello', 'world']]

View Code

    insert() -->插入

11 #insert()插入-->可以指定插入列表的某个位置,前面提到过列表是有序的 22 name =["xiaowu","little-five","James"] 3 name.insert(1,"alex") #索引从0开始,即第二个 34 print(name)

View Code

    pop() -->取出

11 #pop()--取出,可将取出的值作为字符串赋予另外一个变量 22 name =["xiaowu","little-five","James"] 3 special_name =name.pop(1) 4 print(name) 5 print(special_name,type(special_name)) 6 37 #输出为:['xiaowu', 'James'] 48 # little-five <class 'str'> 59

View Code

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

1 1 #remove -->移除,其参数为列表的值的名称 2 2 name =["xiaowu","little-five","James"] 3 3 name.remove("xiaowu") 4 4 print(name) 5 5 6 6 #其输出为:['little-five', 'James'] 7 7 8 8 #del -->删除 9 9 name =["xiaowu","little-five","James"] 10 #name.remove("xiaowu") 1011 del name[1] 12 print(name) 13 1114 #其输出为:['xiaowu', 'James']

View Code

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

1 1 #正序 2 2 num =[11,55,88,66,35,42] 3 3 print(sorted(num)) -->数字排序 4 4 name =["xiaowu","little-five","James"] 5 5 print(sorted(name)) -->字符串排序 6 6 #输出为:[11, 35, 42, 55, 66, 88] 7 7 # ['James', 'little-five', 'xiaowu'] 8 8 9 9 #倒序 1010 num =[11,55,88,66,35,42] 11 print(sorted(num,reverse=True)) 12 #输出为:[88, 66, 55, 42, 35, 11]

View Code

5、元组  --->tuple类

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

1#元组 2name = ("little-five","xiaowu") print(name[0])

6、字典  --->dict类

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

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

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

1#字典的定义 2info ={ 1:"hello world", #键为数字 3 ("hello world"):1, #键为元组 4 False:{ "name":"James" }, "age":22 }

View Code

    遍历 -->items、keys、values

1 info ={ "name":"little-five", "age":22, "email":"99426353*@qq,com" } #键 2for key in info: print(key) print(info.keys()) #输出为:dict_keys(['name', 'age', 'email']) 3 4#键值对 5print(info.items()) #输出为-->dict_items([('name', 'little-five'), ('age', 22), ('email', '99426353*@qq,com')]) 6 7#值 8print(info.values()) #输出为:dict_values(['little-five', 22, '99426353*@qq,com'])

View Code

7、集合 -->set类

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

集合的特性:

1、去重

2、无序

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

创建:set、frozenset

11 #1、创建,将会自动去重,其元素为不可变数据类型,即数字、字符串、元组 2 test01 ={"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True} 3 #或者 4 test02 =set({"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True}) 5 26 #2、不可变集合的创建 -->frozenset() 7 test =frozenset({"zhangsan","lisi","wangwu","lisi",666,("hello","world",),True})

View Code

    增:   add、update

1#更新单个值 --->add 2names ={"zhangsan","lisi","wangwu"} 3names.add("james") #其参数必须为hashable类型 4print(names) 5 6#更新多个值 -->update 7names ={"zhangsan","lisi","wangwu"} 8names.update({"alex","james"})#其参数必须为集合 9print(names)

View Code

    删除:pop、remove、discard

1#随机删除 -->pop 2names ={"zhangsan","lisi","wangwu","alex","james"} 3names.pop() print(names) #指定删除,若要删除的元素不存在,则报错 -->remove 4names ={"zhangsan","lisi","wangwu","alex","james"} 5names.remove("lisi") print(names) #指定删除,若要删除的元素不存在,无视该方法 -->discard 6names ={"zhangsan","lisi","wangwu","alex","james"} 7names.discard("hello") print(names)

View Code

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

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

1english_c ={"ZhangSan","LiSi","James","Alex"} 2math_c ={"WangWu","LiuDeHua","James","Alex"} #1、交集--> in a and in b #统计既报了英语班又报了数学班的同学 3print(english_c & math_c) print(english_c.intersection(math_c)) #输出为:{'Alex', 'James'} 4 5#2、并集--> in a or in b #统计报名了两个班的所有同学 6print(english_c | math_c) print(english_c.union(math_c)) #输出为:{'James', 'ZhangSan', 'LiuDeHua', 'LiSi', 'Alex', 'WangWu'} 7 8#3、差集--> in a not in b #统计只报名英语班的同学 9print(english_c - math_c) print(english_c.difference(math_c)) #输出为:{'LiSi', 'ZhangSan'} 10 114、交差补集 #统计只报名一个班的同学 12print(english_c ^ math_c) #输出为:{'LiuDeHua', 'ZhangSan', 'WangWu', 'LiSi'}

View Code

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

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

View Code

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

4cast

4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页:

Python之time模块的时间戳、时间字符串格式化与转换

Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y

Python基本数据类型 - HelloWorld