一、数据可变不可变类型

  1. 可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型
l = ['a', 'b']
print(id(l))
l[0] = 'A'
print(l)
print(id(l))
  1. 不可变类型:值改变,但是id跟着变化,证明就是产生了新的值,是可变类型
x=9
print(id(x))
x=10
print(id(x))

二、数字类型

(一)、整型int

-----------------------基本使用------------------------

1、用途:记录年龄、等级、数量
2、定义方式

age = 10  #  age=int(10)

3.数据类型转换:只能将纯数字的字符串转成int

x=int(‘123’)
print(x,type(x))
x = int('12.3') #  报错

(二)、浮点型float

-----------------------基本使用------------------------

1、用途:记录身高、薪资、体重
2、定义方式

salary = 10.1 #  salary=float(10.1)

3.数据类型转换:只能将包含小数点的字符串转成int

x=float(‘3.1’)
print(x,type(x))

----------------------该类型总结----------------------

  1. 存一个值
  2. 不可变

三、字符串类型

-----------------------基本使用------------------------

1、用途:记录描述性质的状态
2、定义方式:在单引号,双引号,三引号内包含一串字符串
msg=“你好” # msg=str(“你好”)
3.数据类型转换:所有类型都可以被str转换成字符串类型

res=str([1,2,3])
print(res,type(res))

4.常用操作和内置的方法
    优先掌握的操作:
(1)按索引取值(正向取+反向取) :只能取

msg = 'hello'
print(msg[0],type(msg[0]))  #   h <class 'str'>
print(msg[-1])  #   o
msg[0]='H'   #   会报错,无法修改,只能取

(2)切片(顾头不顾尾,步长)

msg = 'hello world'
msg[0:3]    #   hel    步长默认为1
msg[:;2]    #   hlowrd      步长设为2
msg[:]  #   hello world 全取
msg[-1:-12:-1]  #  反向取 dlrow olleh 初始和结尾(-1,-12)可不写

(3)长度len

msg = 'hello world'
print(len(msg)) #       11

(4)成员运算in和not in:判断一个子字符串是否存在于大字符串中

msg = 'mu is nb'
print('nb' in msg)    #       True
print('mu'not in msg) #       False
print(not ' 'in msg)  #       False

(5)移除空白strip:用来去除字符串左右两边的字符,不指定默认去除的是空格

#    he llo  字符中间的空格不能删除
print('        he llo           '.strip())
#   hello   另一种使用方式
msg = '       world      '
print(msg.strip())
#   moon    指定删除字符
print('*******moon******'.strip('*'))#  moon    指定删除多个字符
print('*/+****moon***+-**'.strip('*+/-'))

(6)切分split:针对有规律的字符串,按照某种分隔符切成列表

#    结果是['mumoon', '18', 'male'] <class 'list'>mumoon 18
info='mumoon:18:male'
res=info.split(':')
print(res,type(res))
print(res[0],res[1])#   结果是['get', 'a.txt|33333']   指定分隔次数
cmd='get|a.txt|33333'
print(cmd.split('|',1))

(7)join()
    用:号作连接符号将纯字符串的列表拼接成一个字符串’mumoon:18:male’
方法一:

l = ['mumoon', '18', 'male']
res=l[0]+':'+l[1]+':'+l[2]
print(res)  #   mumoon:18:male

方法二:

res = ':'.join(l)
print(res)  #   mumoon:18:male

(8)循环

for item in 'hello':print(item)    #   hello

    需要掌握的操作:
(1)strip,lstrip(删左),rstrip(删右)

print('******mumoon***********'.strip('*')) #  mumoon
print('******mumoon***********'.lstrip('*')) #  mumoon***********
print('******mumoon***********'.rstrip('*')) #  ******mumoon

(2)lower(字母变小写),upper(字母变大写)

print('AbC123'.lower()) #  abc123
print('AbC123'.upper()) #  ABC123

(3)startswith(以X开头),endswith(以X结尾)

msg='mumoon is nb'
print(msg.startswith('mu')) #  True
print(msg.endswith('s')) #  False

(4)format的三种玩法

res='my name is %s my age is %s' %('mumoon',18)
print(res)

实现上面的功能我们还可以使用格式化输出format。

res='my name is {name} my age is {age}'.format(age=18,name='mumoon')
print(res)res = 'my name is {} my age is {}'.format('mumoon', 18)
print(res)res = 'my name is {0}{1} my age is {1}{1}{1}{1}'.format('mumoon', 18)
print(res)

(5)split,rsplit

msg='a:b:c:d'
print(msg.split(':',1)) #  ['a', 'b:c:d']
print(msg.rsplit(':',1)) #  ['a:b:c', 'd']

(6)replace(“需要改的值”,“要改成的值”,改的次数)

msg = 'mumoon is mumoon  hahahah'
res = msg.replace('mumoon', 'Hysen', 1)
print(res) #  Hysen is mumoon  hahahah

(7)isdigit:判断字符串是由纯数字组成

print('123123'.isdigit()) #  True
print('123123   '.isdigit()) #  False
print('123123asdf'.isdigit()) #  False
print('12312.3'.isdigit()) #  False

    需要了解的操作:
(1)、find,rfind,index,rindex,count

print('123 ke123ke'.find('ke')) #  4
print('123 ke123ke'.rfind('ke')) #  9
print('123 ke123ke'.index('ke')) #  4
print('123 ke123ke'.rindex('ke')) #  9
print('123 ke123ke'.find('xxxx')) #  返回-1
print('123 ke123ke'.index('xxxx')) #  会报错
print('123 ke123ke'.count('ke',0,6)) #  1   在0到6区间内寻找出现次数

(2)、center,ljust,rjust,zfill

print('mu'.center(6)) #    mu      默认空格
print('mu'.ljust(6,'*')) #  mu****
print('mu'.rjust(6,'*')) #  ****mu
print('mu'.rjust(6,'0')) #  0000mu
print('mu'.zfill(6)) #  0000mu    只能用0填充

(3)、expandtabs
    改变tab缩进数
(4)、captalize,swapcase,title

print('abcdef dddddd'.capitalize()) #  Abcdef dddddd   第一个单词首字母大写
print('abcAef dddddd'.swapcase()) #  ABCaEF DDDDDD  大小写反转
print('abcAef dddddd'.title()) #  Abcaef Dddddd   每个单词的首字母大写

(5)、is数字系列

num1 = b'4'  # bytes
num2 = '4'  # unicode,python3中无需加u就是unicode
num3 = '四'  # 中文数字
num4 = 'Ⅳ'  # 罗马数字

    bytes与阿拉伯数字组成的字符串

print(num1.isdigit())
print(num2.isdigit())
print(num3.isdigit())
print(num4.isdigit())

    阿拉伯数字组成的字符串

print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())

    阿拉伯数字\中文\罗马组成的字符串

print(num2.isnumeric())
print(num3.isnumeric())
print(num4.isnumeric())

(6)、is其他

----------------------该类型总结----------------------

  1. 存一个值
  2. 有序
  3. 不可变

三、列表

-----------------------基本使用------------------------

1、用途:按照位置记录多个值,索引对应值

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

l=['a',11,11.3,]      # l=list(['a',11,11.3,])

3.数据类型转换:但凡能够被for循环遍历的数据类型都可以传给list,被其转换成列表

res1=list('hello')
print(res1) #  ['h', 'e', 'l', 'l', 'o']res2=list(123)
print(res2) #  报错res=list({'a':1,'b':2,'c':3})
print(res) #  ['a', 'b', 'c']

4、常用操作和内置的方法
    优先掌握的操作:
(1)按索引存取值(正向存取+反向存取):即可存也可以取

l=['a','b','c','d','e']
print(l[0])
print(l[-1])
print(id(l))
l[0]='A'
print(id(l)) #  证明是可变类型

强调:对于不存在的索引会报错

l[5]='AAAA' #  会报错

    字典可以添加不存在的Key值以及对应的value

dic={"k1":111}
dic['k2']=2222
print(dic) #  {'k1': 111, 'k2': 2222}

(2)切片(顾头不顾尾,步长)

l=['a','b','c','d','e']
print(l[1:4])
print(l[::-1])

(3)长度

l=['a','b','c','d','e']
print(len(l)) #  5

(4)成员运算in和not in

l=['a','b','c','d','e']
print('a' in l) #  True

(5)追加与insert

l=['a','b','c','d','e']
l.append('xxx')
l.append('yyy')
print(l) #  ['a', 'b', 'c', 'd', 'e', 'xxx', 'yyy']l.insert(0,'xxxx')
print(l) #  指定位置添加  ['xxxx', 'a', 'b', 'c', 'd', 'e', 'xxx', 'yyy']

(6)删除

l=['a','bbb','c','d','e']

    del是一种通用的删除操作,没有返回值

del l[0]
print(l) #  ['bbb', 'c', 'd', 'e']dic={'k1':1}
del dic['k1']
print(dic) #  {}

    l.remove(指定要删除的那个元素),没有返回值

res=l.remove('bbb')
print(l) #  ['a', 'c', 'd', 'e']
print(l.remove('bbb')) #  报错

    l.pop(指定要删除的那个元素的索引),返回刚刚删掉的那个元素

l=['a','bbb','c','d','e']
l.pop(-1)
res=l.pop(1)
print(l) #  ['a', 'c', 'd']
print(res) #  bbb

(7)循环

l=['a','b','c','d','e']
for item in l:print(item)

    需要掌握的操作
(1)clear,append和extend

l=['aaa','bb',345]
l.clear() #  清除列表
l.append([1,2,3]) #  [[1, 2, 3]]        整个列表当做一个元素

不同之处

l.extend([1,2,3]) #  列表中的每个元素取出来,加进去

上面代码等同下面的功能

  for i in [1,2,3]:l.append(i)

(2)reverse:反转

    只有在类中中所有元素都是同种类型的情况下才能用sort排序

l=[1,3,2]
l.sort() #  [1, 2, 3]l=['z','d','a']
l.sort()
print(l) #  ['a', 'd', 'z']

----------------------该类型总结----------------------

#存多个值

#有序

#可变

基石为勤能补拙的迷宫之旅——第五天(Python基本数据类型及内置方法)相关推荐

  1. 基石为勤能补拙的迷宫之旅——第八天(Python文件操作)

    一.文件操作基本步骤 1.打开文件的两种方式 变量名 = open('需打开的文件','模式选择',encoding='编码类型')with open('需打开的文件','模式选择',encoding ...

  2. 基石为勤能补拙的迷宫之旅——第十二天(Python函数装饰器)

    一.开放封闭原则 不改变调用方式与源代码的前提下增加功能 不能修改被装饰对象(函数)的源代码 不能修改被修饰对象(函数)的调用方式,且能达到增加功能的效果(开放) 二.初识 洗碗机Dishwasher ...

  3. 基石为勤能补拙的迷宫之旅——第九天(Python函数初步)

    一.函数的定义 重复利用的工具 可以完成特定功能的代码块,函数就是存放代码块的容器 二.函数的语法 函数四部分 函数名:使用该函数的依据 函数体:完成功能的代码块 返回值:功能完成的反馈结果 参数:完 ...

  4. 基石为勤能补拙的迷宫之旅——客户端/服务器架构,OSI模型

    一.客户端/服务器架构     服务器就是一系列硬件或软件,为一个或多个客户端(服务的用户)提供所需的"服务".它存在唯一目的就是等待客户端的请求,并响应它们(提供服务),然后等待 ...

  5. 基石为勤能补拙的迷宫之旅——第十六天(包)

    一.包的认识 包通过文件夹来管理一系列功能相近的模块. 包:一系列模块的集合体,包中一定有一个专门用来管理包中所有模块的文件__init__.py 包名:存放一系列模块的文件夹名字,存放的是管理模块的 ...

  6. 基石为勤能补拙的迷宫之旅——第十五天(Python模块)

    一.什么是模块 模块就是一系列功能的集合体.在Python中,一个py文件就是一个模块,比如module.py就是一个模块,其中模块名是module. 模块的四种存在方式(通用类别): 使用pytho ...

  7. 基石为勤能补拙的迷宫之旅——第十天(Python函数参数)

    一.形参和实参 实参     在函数调用()中出现的参数(外界实际存在的值):实参.值可以为常量.变量.表达式或三者的组合 形参     在函数定义()中出现的参数:形参.形参就是拷贝实参的值,随着函 ...

  8. 基石为勤能补拙的迷宫之旅——第二天(编程语言介绍、Python解释器介绍与安装、执行Python程序的方式和变量)

    一. 编程语言介绍 1.1 机器语言 直接用计算机能理解的二进制指令编写程序,直接控制硬件 1.2 汇编语言 用英文标签取代二进制指令取编写程序,本质也是在直接控制硬件 1.3 高级语言 用人能理解的 ...

  9. 基石为勤能补拙的迷宫之旅——第一天(计算机硬件和操作系统)

    计算机硬件和操作系统 一. 编程与编程的目的 什么是语言?什么是编程语言? 什么是编程? 为什么要编程? 二. 计算机组成 五大组成部分: 三. CPU详解 四. 存储器详解 数据单位 寄存器 高速缓 ...

最新文章

  1. 女生参加web前端培训压力大吗
  2. python微信红包代码_有了这个再也不担心任何微信红包,Python就是好用
  3. Java开发语句和代码块模板
  4. 高性能负载均衡设计入门篇
  5. Jzoj4840 小W砍大树
  6. nodejs readfilesync 路径_Linux 磁盘多路径聚合multipath
  7. 一般的模式匹配算法(求子串位置)
  8. MySQL关于时间设置的注意事项
  9. mysql innodb 数据恢复_MYSQL INNODB 数据库恢复 转
  10. 使用Jupyter Notebook+bokeh绘图入门完整步骤
  11. c# const与readonly 关键字的比较
  12. java manualbuffer_java从很大的buffer数组中每次读128字节 读到最后不足128字节的用0xff补齐 这个代码怎么写 ?没有思路哎...
  13. 大数据技术将是传统企业创新的原点
  14. 什么是负反馈电路?微分.积分电路?“自激”现象?
  15. level shifter和isolation cell如何摆放
  16. Linux开机问题排解
  17. App加密:常用加密方式和爱加密原理
  18. panic函数c语言,【go语言学习】错误error和异常panic
  19. Banner本地,网络,图片轮播
  20. 【学术会议】如何rebuttal学术论文?

热门文章

  1. 一次基于K-means的聚类分析心得(python实现)
  2. 【大厂面试题】笔试题明明已经AC了,为什么还是把我挂掉了?乔戈里告诉你为什么...
  3. 群晖设置为文件服务器,群晖存储服务器基本配置教程
  4. 如何取出一个数的第一个非零比特位?
  5. 微信 被动回复 (五)
  6. 公众号、网页点击链接,跳转qq添加好友、跳转外部链接代码教程
  7. 初中数学题目(实数)
  8. 一场火锅,看清了马云!
  9. 【大数据】HBase入门学习
  10. 360手机微信X4开 分身教程 360手机多开