一、整形和浮点型
整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的

 age = 18
b = -50
c = 5.222

二、布尔类型
什么是布尔类型,布尔类型就是真和假,只有这两种,True和Fasle,非真即假,除了True和False还有0和1,非0即真

  a = True
b = False

三、字符串和字符串操作
上面说了存数字,那要是想存自己的名字呢,那用int类型的就不行了,不能一个人的名字叫数字吧,这样怎么办呢,就有另一种数据类型应运而生,就是字符串,它可以存任意类型的字符串,比如名字,一句话等等。

 name = 'Sriba'
msg = 'Welcome to my blog.'

四、列表和列表操作

上面说了字符串和整形,那现在要是想存一个班级的人的名字,这个班有200个人,怎么存呢,用字符串的话,那就是names = 'marry lily king .....'这样,但是这样存是可以存,那要是想取到某个人的名字怎么取呢,不能再去里面看一遍吧,那累死人了,为了解决这个问题,又有一种新的数据类型应运而生,那就是列表,这也是我们在以后的开发过程中,最常用的数据类型之一,列表也叫数组,列表定义,使用[]即可;列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:

 #names='崔海龙   杨帆   刘荣心.....'
list 列表 数组 array
#0 1 2
stu_name=['崔海龙','杨帆','刘荣心','....']
下标、索引、角标
计算机里面起始都是从0开始的
print(stu_name[1])

通过下标访问列表中的元素,下标从0开始计数,也就是说,比如说一个列表,有个5元素,那么它第一个元素下标就是0,第二个就是1,以此类推,字符串也有下标,和列表一样 对列表的操作,分以下几种增、删、改、查
增:

 stu_name=['崔海龙','杨帆','刘荣心','....']
stu_name.append('杨月') #在list的末尾添加一个元素
stu_name.insert(,'小军') #指定位置填加元素
print(stu_name)

 stu_name=['崔海龙','杨帆','刘荣心']
stu_name[6]='aaad'
print('修改之后的',stu_name)

stu_name=['崔海龙','杨帆','刘荣心','张三',‘小军’,'']
stu_name.pop() #删除最后一个元素
stu_name.pop(4) #删除指定下标的的元素
stu_name.remove('小军') #删除指定的元素
#如果有一样的元素,只会删除第一个
stu_name.pop(18) # 删除不存在下标的元素,会报错
del sty_name[-1] #下标指定删除的元素,-1删除最后一个元素,如果用负数,从后面开始数,如果是正负从前面开始数,指定删除
print (‘stu_name’)

 my_list=['小黑','小白',1,1,2,1.5]
print(stu_name[-1]
print(stu_name[0]
4 print(stu_name.count(1)) #查询某个元素在list里面出现的次数

五、列表操作,一些内置方法

 my_list=['小黑','小白',1,1,2,1.5]
print(stu_name.count(1)) #查询某个元素在list里面出现的次数
print(’index方法:‘stu_name.index(1) #查询元素的下标
print(’index方法:‘stu_name.index(89) #查询元素的下标,元素不存在会报错
print('reverse方法:’,my_list.reverse()) #reverse是反转list
print(my_list) my_list.clear() #清空整个list
print(my_list) nums=[9,23,4,6,3,78,0]
nums.sort() #排序 升序
nums.sort(reverse=Ture) #反转 降序,如果指定reverse=Ture那么就是降
nums.extend(my_list) #把一个list中的元素加入进入(合并)
print(nums)
16 new_list = nums+my_list # 和extend的区别,extend是把my_list的值放到mums里,new_list=nums+my_list,是新建了一个
17 print(new_list)
18 print(new_list * 3) #乘几次复制几次

 

六、数组

 nums1 =[1,2,3]  # 一维数据
nums2 =[1,2,3,[4,56]] # 二维数据
print(nums2[3][3]) #取56
print(nums2[-1][-1]) #取56
nums=[1,2,3,4,['a','b','c','d','e',['一','二','三']]] # nums=[1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] #三维数组
print(nums[4][5][1]) #取到‘二 ’
print(nums[-1][-1]) #取到‘五’ passwords =['','','']
print(len(passwords)) # 取长度,也就是list时面元素的个数
passwords[0]='dsdsdsdsd'
循环这个list
#count=0 # 最原始的LIST取值方式,是通过
#while count<len(passwords):
#s=passwords[count]
#print('每次循环的时候',s)
#count+=1
#
for p in passwords: # for循环直接循环一个list,那么循环的时候就每次取他的值
print('每次循环的值',p)
p='abc_'+p #修改pawssword的值,每个值前面增加abc-
index=0
for p in passwords:
passwords[index]='abc-'+p
index+=1
print(passwords) 32 #另一个修改方式
33 passwords =['123456','123123','7891234']
34 for index,p in enumerate(passwords): #使用枚举函数,它会帮你计算下标
35 passwords[index]='abc_'+p
36 print(passwords)

七、切片,切片也就是另一种方式获取列表的值,它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值的,记住顾头不顾尾前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,切片操作也可以对字符串使用,和列表的用法一样,实例如下:

# 就是list取值的一种方式
#l=list(range(1,10))
l=['a','b','c','d','e','f','g','k','m','n']
# 0 1 2 3 4 5 6 7 8 9 对应的下标
# print(l[0:3]) #顾头不顾尾
# print(l[0:5])
# print(l[:5])#如果最前面没写的话,代表从0开始取的
# print(l[4:]) #如果冒号后面的没写的话,代表取到最后
# print(l[0:8:2]) # 取0-8的值,每隔两个取一次
# print(l[::2]) # 步长,也就是代表每个几个取一次 nums=list(range(1,101))
print(nums[1::2]) #取1-100的偶数
print(nums[::2]) #取1-100的奇数
print(nums[::-2]) #取奇数
# 如果最后面的步长是正数的话,那就从左到右开始取值
#如果后面的步长负数的话,那么就从左往左开始取值 #切片同样适应于字符串
# words='中秋节要上课'
# print(words[0])
# print(words[::-1])
# for w in words:
# print('每次打印的',w)
#
#
# for index,w in enumerate(words):
# print('每次打印的',index,w) s='上海自来水来自海上'
#
#
#回文算法,反过来倒过去都一样
for i in range(10):
s=input('请输入一个字符串:')
if len(s)<2:
print('字符串长度必须大于1')
elif s==s[::-1]:
print('是回文')
else:
print('不是回文')

八、字典

上面说了,整形、浮点型、字符串、列表和元组,下面说个新的数据类型,字典,字典也是我们开发过程中最常用的一种数据类型;想一个问题,现在要存整个北京市的所有人的信息,每个人有姓名、年龄、性别、家庭住址、学历等等,那要是用列表存的话,那就得定义N多个数组,然后存上每个人的信息,那累死人了。。。这时候又有一种新的数据类型出现了,那就是字典,dict,全称是dictionary,它具有极快的查找速度;字典是一种key-value的数据类型,比如说要存每个人的信息,那么每个人的编号就是key,value就是每个人的信息,这样的话,一个字典就能存所有人的信息了。字典的定义使用{},大括号,每个值用“,”隔开,key和value使用“:”分隔。
举个列子,如果用列表存每个人的信息的话,需要用两个列表,一个存人名,一个存信息:

 names = ['marry','amy','lily']
infos = [[18,18612512981,'北京'],[20,18612512991,'山东'],[25,18612532981,'河南']]

给一个名字,如果要查他的对应信息,那就要先从names里面找到它的位置,然后再从infos中找到它的信息,如果这个列表越长,那么它的查询速度越慢。
如果用字典实现的话,只需要一个名字和信息对应的一个表,这样就很快的根据名字找到它对应的信息,无论这个表有多大,查找速度都不会变慢。

  infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}
infos['marry'] #取marry的信息

为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢,这种就是字典的实现方式。
字典的特性:
字典是无序的,因为它没有下标,用key来当索引,所以是无序的
字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
字典的增删改查:
增加:

stus={}
stus['name']='小军' #增加名字为小军
stus['name']='海龙' #小军的名字改为海龙 #如果这个key不存在就新增,如果存在就修改
#stus.setdefaulta('name','杨帆') #如果这个key已经存在,那么就不修改它的值了
stus.setdefault('age',18)
stus.setdefault('email','1833@qq.com')
stus.setdefault('sex','女')
stus.setdefault('phone','')
print(stus)

修改

 stus['name']='海龙

删除

 del suts['phone']
stus.pop('phone')
3 stus.potitem() #随机删除

查询

 print(stus['name'])
print(stus.get('name'))#取不到值,不会报错,返回none
3 print (stus.keys()) #取出所有的Kay
4 print (stus.values())#取出所有的values
5
6 for k in stus: #取key和values
7
print(k,'===>',stus.get(k))
8 for k ,v  in stus.items():    #取key和values
9 print(k,'===>',v)

合并字典

 stus.update({'moeny':1000})  #把后面的值或是函数合并到前面
print(stus)

字典嵌套多层取值

 all_stus={
'xiaojun':
{
'sex':'m',
'shengao':'',
'age':18,
'email':'acb@qq.com',
'addr':'火星',
'id':1,
'car':['牧马人','','野马','劳期莱斯']
#
},
'hailong':
{
'sex': 'm',
'shengao': '',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 1
},
'yangfan':
{
'sex': 'm',
'shengao': '',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 1,
'bags':{
'qianbao':['lv','ysl'],
'beibao':['coach','abc']
}
}
} #给xiaojun中car中增加‘五菱宏光’
all_stus['xiaojun']['car'].append('五菱宏光')
print(all_stus)
#查看xiaojun一个有多少辆车
print(len(all_stus['xiaojun']['car']))
#修改yangfan,性别改成女
all_stus['yangfan']['sex']='女'
print(all_stus)
#删除yangfan-bags-lv
all_stus['yangfan']['bags']['qianbao'].remove('lv')
print(all_stus)
all_stus['yangfan']['bags']['qianbao'].pop('lv')
print(all_stus)

字符串常用方法

 #password=' 123456 \n 456789'
#print(password)
#print(password.strip()) #默认去掉字符串两边的空格和换行符
password='.jpg 123456789 .jpg ABCDE'
new_password=password.strip('.jpg') #默认去掉字符串两边的空格和换行符,以及指定的字符串
print('password',password)
print('new_pasword',new_password)
print(password.upper()) #转换成大写
print(password.lower()) #转换成小写
print(password.capitalize()) #把首字母改成大写的
print(password.count('.jpg')) #统计.jpg在password中出现的次数
print(password.replace('','上山打考虎')) #把12345替换成上山打发考虎
print(password.replace('','上山打考虎')) #找不到内容不替换,也不报错 filename='a.mp3'
print(filename.endswith('.mp3')) #判断是否以XX结尾
print(filename.startswith('')) #判断是否以开头
a=True #布尔类型,真
b=False #假,条件不成立变成 names='小军,海龙,杨帆,谭爱玲'
#print(list(names))
print(names.split(',')) #1、是把字符串变成list 2、以某个字符串分割,分割之后的是list中的每一个元素 #如何删除字符串中间的宽格
names='小军 海龙 杨帆 谭爱玲'
print(names.replace(' ','')) #把空格变成空字符串

文件读写

 #1、有个文件
#2、打开文件
#3、操作文件 读、写
#4、关闭 #创建一个users.txt文件
文件内容:
abc,123
bcd,456 f=open('users.txt','a+')
f.seek(0) #t移动文件指针
print(f.read()) #获取到文件里面所有的内容
f.write('yangfan,123456')
f.flush()
f.close()
 
#如果这个key不存在就新增,如果存在就修改

python数据类型(字符串、列表操作)的更多相关文章

  1. Python编程之列表操作实例详解【创建、使用、更新、删除】

    Python编程之列表操作实例详解[创建.使用.更新.删除] 这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋 ...

  2. python数据类型:列表List和Set

    python数据类型:列表List, Set集合 序列是Python中最基本的数据结构 序列中每个元素都分配一个数字,表示索引 列表的数据项不需要具有相同的类型        列表中的值可以重复并且有 ...

  3. Python数据类型和数据操作

    python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...

  4. Python数据类型(列表)

    文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 列表(List) 序列是Pytho ...

  5. 6 Python 数据类型—字符串

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

  6. python学习-字符串 列表 元祖

    目录 Python翻转字符串(reverse string) 简单的步长为-1, 即字符串的翻转(常用) 递归反转 借用列表,使用reverse()方法 字符串常用操作 index split 切片 ...

  7. Redis数据类型之列表操作

    redis 目录: 1.自动分配(redis) - 批量导入 2.微信自动绑定 3.django的ORM做不了的操作,怎么自定义操作数据库 extra ’ 4.报表 公司每个月销售的业绩 5.权限 = ...

  8. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  9. 初识python: 字符串常用操作

    直接上代码示例: #!/user/bin env python # author:Simple-Sir # time:20180914 # 字符串常用操作 name = 'lzh lyh' print ...

  10. python关于字符串的操作

    #-*- coding:utf-8 -*-#Author:gxli#字符串的操作name=' zhangsan,lisi,wangwu '#分割操作name=name.split(',')print( ...

随机推荐

  1. Java如何按空格读取内容

    String s = input.nextLine(); String[] data = s.split(" ");

  2. PYTHON 实现的微信跳一跳【辅助工具】仅作学习

    备注原地址:https://my.oschina.net/anlve/blog/1604163 我又做了一些优化,防止WX检测作弊 准备环境: Windows 10安卓手机,源码中有适配ios,然后链 ...

  3. dubbo could not get local host ip address will use 127.0.0.1 instead 异常处理

    dubbo could not get local host ip address will use 127.0.0.1 instead 查看hostname localhost:spring wls ...

  4. JDK8.0接口中的默认方法和静态方法

    我们在接口中通常定义的方法是抽象方法,即没有方法体,只有返回值类型和方法名:(public abstract) void Method(); 类在实现接口的时候必须重写抽象方法才可以 jdk8中新加的 ...

  5. ios 拉伸背景图中间图片不变四周拉伸

    上图中间区域的翅膀不能变形,Android的点九能很好的解决,但是iOS的stretchableImageWithLeftCapWidth没法一次性指定拉伸区域,最后发现https://www.jia ...

  6. Scala基础学习(一、数据类型)

    Scala 支持的数据类型: 数据类型 描述 Byte 8位有符号补码整数.数值区间为 -128 到 127 Short 16位有符号补码整数.数值区间为 -32768 到 32767 Int 32位 ...

  7. c#枚举描述

    1.枚举遍历 public enum e_Sex{ male=, female= } foreach (var value in Enum.GetValues(typeof(e_Sex)){ /* 获 ...

  8. springboot启动的时候日志缺少Mapping日志等

    发现启动springboot日志不全 缺失启动日志如: 正常启动日志 解决办法: 更换较低版本的spring boot父级依赖. <parent> <groupId>org.s ...

  9. sublime text 3搭建python

    1.ST3下载地址: http://www.sublimetext.com/3 2.安装Sublime Text Build 3114 Setup.exe应用程序. 3.ST3的工具优点就是轻量级,简 ...

  10. day11.1函数进阶 列表集合 字典中的函数变量,函数作为形参

    函数进阶 1.函数作为变量 a=123 name="gao" nums=[1,2,3] data=nums#指向同一个内存地址 #查看内存地址篇章 def func(): prin ...