在了解基本数据类型的时候,我们需要了解基本数据类型有哪些?数字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类型,  注:字符串内的内容必须是数字 

1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3
4 s = ''
5 i = int( s )
6 print( i)

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

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

  2、布尔值  --->bool类

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

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

  3、字符串  --->str类

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

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

    创建字符串

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

    切片

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

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

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

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

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

     

      长度 -->len()

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

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

     删除 --> del 

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

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

#判断是否全为数字
>>> a =""
>>> 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()

#!/usr/bin/env python
# -*- coding:utf-8 -*- #大小写的互相转换
>>> name ="little_five"
#首字母大写-->capitalize
>>> name.capitalize()
'Little_five' #转为标题-->title
>>> info ="my name is little_five"
>>> info.title()
'My Name Is Little_Five' #全部转为小写-->lower
>>> name ="LITTLE_FIVE"
>>> name.lower()
'little_five' #全部转为大写-->upper
>>> name = "little_five"
>>> name.upper()
'LITTLE_FIVE' #大小写转换-->swapcase
>>> name ="lIttle_fIve"
>>> name.swapcase()
'LiTTLE_FiVE'

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

#判断以什么开头、结尾
>>> name ="little-five" #判断以什么结尾
>>> name.endswith("e")
True #判断以什么开头
>>> name.startswith("li")
True

      扩展-->expandtabs()

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

info ="name\tage\temail\nlittlefive\t22\t994263539@qq.com\njames\t33\t66622334@qq.com"
print(info.expandtabs(10)) #输出为:
name age email
little-five 22 994263539@qq.com
james 33 66622334@qq.com

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

#格式化输出-->format、format_map

#forma方法
#方式一
>>> info ="my name is {name},I'am {age} years old."
>>> info.format(name="little-five",age=22)
"my name is little-five,I'am 22 years old." #方式二
>>> info ="my name is {0},I'am {1} years old."
>>> info.format("little-five",22)
"my name is little-five,I'am 22 years old." #方式三
>>> info ="my name is {name},I'am {age} years old."
>>> info.format(**{"name":"little-five","age":22})
"my name is little-five,I'am 22 years old." #format_map方法
>>> info ="my name is {name},I'am {age} years old."
>>> info.format_map({"name":"little-five","age":22})
"my name is little-five,I'am 22 years old."

      jion方法

#join--> join(): 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

#字符串
>>> name ="littefive"
>>> "-".join(name)
'l-i-t-t-e-f-i-v-e' #列表
>>> info = ["xiaowu","say","hello","world"]
>>> "--".join(info)
'xiaowu--say--hello--world'

  

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

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

#partition -->只能将字符串分为三个部分,生成列表
>>> name ="little-five"
>>> name.partition("-")
('little', '-', 'five') #split-->分割字符串,并且可以指定分割几次,并且返回列表
>>> name ="little-five-hello-world"
>>> name.split("-")
['little', 'five', 'hello', 'world']
>>> name.split("-",2) #指定分割几次
['little', 'five', 'hello-world']
>>>

       替代 -->replace

#替代
>>> name ="little-five"
>>> name.replace("l","L")
'LittLe-five'
#也可以指定参数,替换几个
>>> name.replace("i","e",2)
'lettle-feve'     清除空白 --> strip()、lstrip()、rstrip() #去除空格
>>> name =" little-five " #去除字符串左右两边的空格
>>> name.strip()
'little-five' #去除字符串左边的空格
>>> name.lstrip()
'little-five ' #去除字符串右边的空格
>>> name.rstrip()
' little-five'

     替换 -->makestran 、translate

 #进行一一替换

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

  4、列表  --->list类

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

    其形式为:

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

    索引、切片

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

    

    追加-->append()

 #追加元素-->append()
name =["xiaowu","little-five","James"]
name.append("alex")
print(name) #输出为--》['xiaowu', 'little-five', 'James', 'alex']

    

    拓展-->extend()

 #扩展--》其将字符串或者列表的元素添加到列表内
#一、将其他列表元素添加至列表内
name =["xiaowu","little-five","James"]
name.extend(["alex","green"])
print(name)
#输出为-->['xiaowu', 'little-five', 'James', 'alex', 'green'] #二、将字符串元素添加到列表内
name =["xiaowu","little-five","James"]
name.extend("hello")
print(name)
#输出为-->xiaowu', 'little-five', 'James', 'alex', 'green', 'h', 'e', 'l', 'l', 'o'] #三、将字典元素添加至列表内,注:字典的key。
name =["xiaowu","little-five","James"]
name.extend({"hello":"world"})
print(name)

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

 #extend-->扩展
name =["xiaowu","little-five","James"]
name.extend(["hello","world"])
print(name)
输出为-->['xiaowu', 'little-five', 'James', 'hello', 'world'] #append -->追加
name.append(["hello","world"])
print(name)
输出为 -->['xiaowu', 'little-five', 'James', ['hello', 'world']]

    insert() -->插入

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

    pop() -->取出

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

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

 #remove -->移除,其参数为列表的值的名称
name =["xiaowu","little-five","James"]
name.remove("xiaowu")
print(name) #其输出为:['little-five', 'James'] #del -->删除
name =["xiaowu","little-five","James"]
#name.remove("xiaowu")
del name[1]
print(name) #其输出为:['xiaowu', 'James']

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

 #正序
num =[11,55,88,66,35,42]
print(sorted(num)) -->数字排序
name =["xiaowu","little-five","James"]
print(sorted(name)) -->字符串排序
#输出为:[11, 35, 42, 55, 66, 88]
# ['James', 'little-five', 'xiaowu'] #倒序
num =[11,55,88,66,35,42]
print(sorted(num,reverse=True))
#输出为:[88, 66, 55, 42, 35, 11]

  5、元组  --->tuple类

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

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

  6、字典  --->dict类

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

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

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

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

    遍历 -->items、keys、values

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

  7、集合 -->set类

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

    集合的特性:

      1、去重

      2、无序

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

    创建:set、frozenset

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

    增:   add、update

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

    删除:pop、remove、discard

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

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

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

english_c ={"ZhangSan","LiSi","James","Alex"}
math_c ={"WangWu","LiuDeHua","James","Alex"} #1、交集--> in a and in b
#统计既报了英语班又报了数学班的同学
print(english_c & math_c)
print(english_c.intersection(math_c))
#输出为:{'Alex', 'James'} #2、并集--> in a or in b
#统计报名了两个班的所有同学
print(english_c | math_c)
print(english_c.union(math_c))
#输出为:{'James', 'ZhangSan', 'LiuDeHua', 'LiSi', 'Alex', 'WangWu'} #3、差集--> in a not in b
#统计只报名英语班的同学
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的子集

 

  

第三篇:Python基本数据类型的更多相关文章

  1. 【Python之路】第三篇--Python基本数据类型

    运算符 1.算数运算: # 在py2的 取整除运算中 9//2 = 4.0 # 引入 from __future__ import division 9//2 = 4.5 # py3中不需要! 2.比 ...

  2. 【0728 | 预习】第三篇 Python基础

    第三篇 Python基础预习 Part 1 变量 一.什么是变量? 二.为什么要有变量? 三.定义变量 四.变量的组成 五.变量名的命名规范 六.变量名的两种风格 Part 2 常量 Part 3 P ...

  3. Python开发【第三篇】基本数据类型

    整型 int __author__ = 'Tang' # 将字符串转换为数字 a = " b = int(a) # 前面是0的数转换,默认base按照十进制 a = " b = i ...

  4. python学习【第三篇】基本数据类型

    Number(数字) int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取 ...

  5. Python之路(第五篇) Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

  6. 第三篇 Python关于mysql的API--pymysql模块, mysql事务

    python关于mysql的API--pymysql模块 pymysql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同. 模块安装 pip install pymys ...

  7. 第一篇 Python的数据类型

    Python的标准数据类型有五种: (1)字符串 (2)数字(包括整数,浮点数,布尔,复数) (3)列表(list) (4)元组(tuple) (5)字典(dict) 注:使用type函数可以查看对象 ...

  8. 第七篇Python基本数据类型之数字&字符串&布尔值

    数字 写在最前,必须要会的:int() 整型 Python3里无论数字多长都用int表示,Python2里有int和Long表示,Long表示长整型 有关数字的常用方法,方法调用后面都必须带括号() ...

  9. Python学习日记(三)——Python基本数据类型(运算符、int、str、tuple、dict、range)

    运算符 1.算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2 ...

  10. 三、Python基本数据类型

    一.基本算术运算(获取的结果是值) 1 a1=10 2 a2=20#初始赋值 3 a3=a1+a2 #结果30 4 a4=a2-a1 #结果10 5 a5=a1*a2 #结果200 6 a6=a2/a ...

随机推荐

  1. linux下配置face_recognition

    1.如linux下已有python2.7,但需要更新一下python 2.7至python2.x sudo add-apt-repository ppa:fkrull/deadsnakes-pytho ...

  2. C# WinForm程序中使用Unity3D控件 (转)

    https://www.cnblogs.com/cnxkey/articles/5394378.html 最近在自学Unity3D,打算使用这个时髦.流行.强大的游戏引擎开发一个三维业务展示系统,不过 ...

  3. IE浏览器提示打印控件未安装的一些原因

    打印控件未安装!点击这里执行安装,安装后请刷新页面或重新进入.--该提示是写在LodopFuncs.js里的.相关本博客其他博文:提示“Web打印服务CLodop未安装启动”的各种原因和解决方法.C- ...

  4. C#获取IP及MAC地址 方法

    C#获取IP及MAC地址 方法,比较齐全 using System.Net; using System; using System.Management; using System.Runtime.I ...

  5. tomcat配置SLL证书

    1.将jks证书复制到conf目录下 2.解除注释:88行至96行 修改代码 <Connector port="443" protocol="org.apache. ...

  6. javascript bom操作

    BOM BOM介绍 全称 Browser Object Mode 浏览器对象模式 操作浏览器的API接口.比如浏览器自动滚动 Windows对象的顶层部分是BOM的顶层(核心)对象,所有的对象都是通过 ...

  7. mysql You can't specify target table for update in FROM clause解决方法

    mysql You can't specify target table for update in FROM clause解决方法出现这个错误的原因是不能在同一个sql语句中,先select同一个表 ...

  8. json与javabean、list、map之间的转化

    一.java普通对象和json字符串的互转 java对象---->json 首先创建一个java对象: public class Student { //姓名 private String na ...

  9. 人工智能对人类有哪些影响 选择Python入门怎样

    人工智能对人类有哪些影响?选择Python入门怎样?人工智能是科技时代进步的产物,也是目前人们非常关注的一个产业.那么,随着人工智能的发展,对人类生活的有哪些影响呢? 1.人工智能对文化产业影响 据了 ...

  10. 简单layer 快速上手

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...