Python编程Day5——可变与不可变类型、数据类型整合
- 一、可变与不可变类型
1、可变类原值型:只改变,但id不变,证明就是在改变原值,是可变类型
2、不可变类型:值改变,但id也跟着改变,证明是产生了新的值,是不可变类型
- x=
- print(id(x))
- x=
- print(id(x))
- l=['a','b']
- print(id(l))
- l[]='A'
- print(l)
- print(id(l))
- 二、整形int
- 1、用途:用来记录年龄、等级、数量
- 2、定义方式age=10#age=int(10)
3、数据类型转换x=int('123456')>>>字符串转成整形输出
print(x,type(x))
常用操作:数学运算和比较运算- 三、 浮点型float
1、用途:用来记录身高、工资、体重
2、定义方式:salary=10.1#salary=float(10.1)
3、数据类型转换:只能讲包含小数的字符串转成float x=float('3.1')>>>print(x,type(x))
操作方式:数学运算和比较运算- 四、字符串str
1、用途:记录描述性质的状态
2、定义方式:在单引号、双引号、三引号内包含一串字符串
msg='hello'#msg=str('hello')- # 数据类型转换:所以类型都可以被str转成字符串类型
# res=str([]1,2,3)>>>print(res,type(res))- 3、常用操作+内置方法:优先掌握的操作:*****
3.1、按索引取值(正向取+反向取):只能取msg='hello'>>>print(msg[0],type(msg[0]))
- '''
- msg='hello'
- print(msg[],type(msg[]))
- print(msg[-])
- print(msg[-])#反取向
- msg[]='H'#只能取
- '''
- # 3.2、切片(顾头不顾尾,步长)
- '''
- msg='hello world'
- res=msg[::]#
- print(res)
- print(msg)
- 正向取:
- msg='hello world'
- res=msg[:]
- res=msg[::]#
- print(res)
- 反向取:
- msg='hello world'
- res=msg[-:-:-]
- res=msg[-::-]
- res=msg[::-]
- print(res)
- '''
- # 3.3、长度len
- '''
- msg='hello world'
- print(len(msg))
- '''
- 3.4、成员运算in和not in:判断一个子字符是否存在于大的字符串中
- '''
- msg='hello world'
- print(len(msg))
- '''
- 3.5、移除空白strip:用来去除字符串左右两边的字符
- '''
- msg=' hello '
- print(msg.strip())
- print('****888eg**on*****'.strip('*'))#只能去除字母左右两边的*
- print('****+-\、/egon#@%&$*****'.strip('*+-\/、$#@%&'))#去除字母左右两边的符号
- name=input('username>>>:').strip()
- pwd=input('password>>>:').strip()
- if name=='egon' and pwd=='123':
- print('login successful')
- 1else:
- print('出错了')
- '''
- 3.6、切分split,针对有规律的字符串,按照某种分隔符切成列表
- 1 '''info='egon:18:male'
- 2 res=info.split(':')
- 3 print(res,type(res))
- 4 print(res[0],res[1])
- 5
- 6 cmd='get|a.txt|3333'
- 7 print(cmd.split('|',1))'''
- 8 # 用:号做连接符将纯字符串的列表拼接成一个字符串
- 9 # l=['egon','18'','male'']
- 10 # res=l[0]+':'+l[1]+':'+l[2]
- 11 # res=':'.join(l)
- 12 # print(res)
- 需要掌握的操作
- # 1、strip、lstrip、rstrip
- # print('******egon*******'.strip('*'))
- # print('******egon*******'.lstrip('*'))
- # print('******egon*******'.rstrip('*'))
- # 2、lower,upper
- # print('ABC123'.lower())
- # print('ABC123'.upper())
- # 3、startwith,endwith
- # msg='alex is dsb'
- # print(msg.startwith('alex'))
- # print('msg.endwith('b')')
- 4、format的三种玩法
- # res = 'my name is %s my age is %s' % ('egon', 18)
- # print(res)
- # res='my name is {name} my age is {age}.format(age=18,name='egon')
- # print(res)
- # 了解
- # res = 'my name is {} my age is {}'.format('egon',18)
- # res = 'my name is {0} my age is {1}'.format('egon',18)
- # print(res)
- 5、split,rsplit
- # msg='a:b:c:d'
- # print(msg.split(':',1))
- # print(msg.rsplit(':',1))
- 6、replace
- # msg='kevin is kievn is asdjk'
- # res=msg.replace('kivin','as',1)
- # print(res)
- 7、isdigit
- # print('123123'.isdigit()) #如果字符串是由纯数字组成的,则返回Ture
- # print('123123 '.isdigit()) #Flase
- # print('123123asdc'.isdigit()) #Flase
- # print('123123.2'.isdigit()) #Flase
- # score=input('>>>:').strip() #score='sdjsfjskk'
- # if score.isdigit():
- # score=int(score)
- # if score>=90:
- # print('优秀')
- # else:
- # print('差')
- # else:
- # print('必须输入数字')
- 五、字符串str
1、用途:记录描述性质的状态
2、定义方式:在单引号、双引号、三引号内包含一串字符串
msg='hello'#msg=str('hello')- # 数据类型转换:所以类型都可以被str转成字符串类型
# res=str([]1,2,3)>>>print(res,type(res))- 3、常用操作+内置方法:优先掌握的操作:*****
3.1、按索引取值(正向取+反向取):只能取msg='hello'>>>print(msg[0],type(msg[0]))
- '''
- msg='hello'
- print(msg[0],type(msg[0]))
- print(msg[-1])
- print(msg[-2])#反取向
- msg[0]='H'#只能取
- '''
- 3.2、切片(顾头不顾尾,步长)
- '''
- msg='hello world'
- res=msg[0:3:1]#0 1 2
- print(res)
- print(msg)
- 正向取:
- msg='hello world'
- res=msg[:]
- res=msg[::2]#0 2 4 6 8 10
- print(res)
- 反向取:
- msg='hello world'
- res=msg[-1:-12:-1]
- res=msg[-1::-1]
- res=msg[::-1]
- print(res)
- '''
- 3.3、长度len
''' msg='hello world' print(len(msg)) '''
3.4、成员运算in和not in:判断一个子字符是否存在于大的字符串中
- '''
- msg='kexin is dsb'
- print('kevin'in msg)
- print('dsb'in msg)
- print('aaa' not in msg)
- print(not 'aaa' in msg)
- '''
- 3.5、移除空白strip:用来去除字符串左右两边的字符
- '''
- msg=' hello '
- print(msg.strip())
- print('****888eg**on*****'.strip('*'))#只能去除字母左右两边的*
- print('****+-\、/egon#@%&$*****'.strip('*+-\/、$#@%&'))#去除字母左右两边的符号
- name=input('username>>>:').strip()
- pwd=input('password>>>:').strip()
- if name=='egon' and pwd=='123':
- print('login successful')
- else:
- print('出错了')
- '''
- 3.6、切分split,针对有规律的字符串,按照某种分隔符切成列表
- '''info='egon:18:male'
- res=info.split(':')
- print(res,type(res))
- print(res[0],res[1])
- cmd='get|a.txt|3333'
- print(cmd.split('|',1))'''
- 用:号做连接符将纯字符串的列表拼接成一个字符串
- # l=['egon','18'','male'']
- # res=l[0]+':'+l[1]+':'+l[2]
- # res=':'.join(l)
- # print(res)
- 3.7、循环
# for item in 'hello':
# print(item)
# 需要掌握的操作
- # 1、strip、lstrip、rstrip
- # print('******egon*******'.strip('*'))
- # print('******egon*******'.lstrip('*'))
- # print('******egon*******'.rstrip('*'))
- # 2、lower,upper # print('ABC123'.lower()) # print('ABC123'.upper())
- # 3、startwith,endwith
- # msg='alex is dsb'
- # print(msg.startwith('alex'))
- # print('msg.endwith('b')')
- # 4、format的三种玩法
- # res = 'my name is %s my age is %s' % ('egon', 18)
- # print(res)
- # res='my name is {name} my age is {age}.format(age=18,name='egon')
- # print(res)
- # 了解
- # res = 'my name is {} my age is {}'.format('egon',18)
- # res = 'my name is {0} my age is {1}'.format('egon',18)
- # print(res)
- # 5、split,rsplit
- # msg='a:b:c:d'
- # print(msg.split(':',1))
- # print(msg.rsplit(':',1))
- # 6、replace
- # msg='kevin is kievn is asdjk'
- # res=msg.replace('kivin','as',1)
- # print(res)
- # 7、isdigit
- # print('123123'.isdigit()) #如果字符串是由纯数字组成的,则返回Ture
- # print('123123 '.isdigit()) #Flase
- # print('123123asdc'.isdigit()) #Flase
- # print('123123.2'.isdigit()) #Flase
- # score=input('>>>:').strip() #score='sdjsfjskk'
- # if score.isdigit():
- # score=int(score)
- # if score>=90:
- # print('优秀')
- # else:
- # print('差')
- # else:
- # print('必须输入数字')
- # 了解的操作
- #1、find,rfind,index,rindex,count
- # print('123 ke123ke'.find('ke'))
- # print('123 ke123ke'.rfind('ke'))
- # print('123 ke123ke'.index('ke'))
- # print('123 ke123ke'.rindex('ke'))
- # print('123 ke123ke'.find('xxxx'))
- # print('123 ke123ke'.index('xxxx'))
- # print('123 ke123ke'.count('ke',0,6))
- #2、center,ljust,rjust,zfill
- # print('egon'.center(50,'*'))
- # print('egon'.ljust(50,'*'))
- # print('egon'.rjust(50,'*'))
- # print('egon'.rjust(50,'0'))
- # print('egon'.zfill(50))
- #3、captalize,swapcase,title
- # print('abcdef dddddd'.capitalize())
- # print('abcAef dddddd'.swapcase())
- # print('abcAef dddddd'.title())
- #4、is数字系列
- num1=b'' #bytes
- num2='' #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())
- #5、is其他
- # ======================================该类型总结====================================
# 存一个值- # 有序
- # 不可变
# msg=' hello '
# msg.strip()
# print(msg)
六、列表list
- 1、用途:按照位置记录多个值,索引对应值
2、定义方式:在[]内用逗号分隔开多个任意类型的值
- # l=['a',11,11.3]# l=list['a',11,11.3]
- # 数据类型转换:但凡能够被for循环的数据类型都可以传给list,被其转换成列表
- # res=list('hello')# >>>'h','e','l','l','o'
- # res=list(123) #不可以被for循环
- # print(res)
- # res=list({'a':1,'b':2,'c':3})
# print(res)
- 3、常用操作+内置的方法(优先掌握的操作)
- 3.1、按照索引存取值(正向存取+反向存取):即可存也可取
- # l=['a','b','c','d','e']
- # print(l[0])
- # print(l[-1])
- # print(id(l))
- # l[0]='A'
- # print(id(l))# 输出id相同,属于可变型
- # 强调--------!!!!!!!:对于不存在的索引会报错
- # l[5]='AAAAA'# 报错
- # dic={"k1":111}
- # dic['k2']=2222
- # print(dic)
- 3.2、切片(顾头不顾尾,步长)
# l=['a','b','c','d','e'] # print(l[1:4]) # print([::-1])- 3.3、长度
# l=['a','b','c','d','e'] # print(len(l))- 3.4、成员运算in和not in
# l=['a','b','c','d','e'] # print('a'in l)- 3.5、追加与insert
- # l=['a','b','c','d','e']
- # l.append('xxx')
- # l.append('yyy')
- # print(l)
- # l.insert(0,'xxx')
- # print(l)
- 3.6、删除
- # l=['a','b','c','d','e']
- # del是一种通用的删除操作,没有返回值
- # del l[0]
- # print(l )
- # dic={'k1':1}
- # del dic['k1']
- # print(dic)
- # l.remove# (指定要删除的那个元素,没有返回值)
- # res=l.remove('b')
- # print(l)
- # print(res)
- # l.pop# (指定要删除的那个元素的索引,可以返回刚刚那个删除掉的元素)
- # l=['a','b','c','d','e']
- # l.pop(-1)
- # res=l.pop(1)
- # print(l)
- # print(res)
- 3.7、循环
- # l=['a','b','c','d','e']
- # for item in l:
- # print(item)
- # 练习:队列--先进先出
- # l=[]
- # 入队
- # l.append('first')
- # l.append('scecond')
- # l.append('ehird')
- # print(l)
- #
- # 出队
- # print(l.pop(0))
- # print(l.pop(0))
- # print(l.pop(0))
- # 堆栈---先进后出
- # 需要掌握的操作
- # l=['aaa','bbb',345]
- # l.clear()
- # l.append([1,2,3])
- #
- # for i in [1,2,3]:
- # l.append(i)
- # l.extend([1,2,3])
- #
- #
- # l.reverse()
- # 只有在类中索引元素都是同种类型的情况下才能使用sort排序
- # l=[1,3,2]
- # l.sort(reverse=True)
- #
- # l=['a','e','f','d']
- # l.sort()
- # print(l)
- # ======================================该类型总结====================================
# 存多个值- # 有序
- # 可变
Python编程Day5——可变与不可变类型、数据类型整合的更多相关文章
- Python编程笔记二进制、字符编码、数据类型
Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...
- Python 编程入门(1):基本数据类型
以下所有例子都基于最新版本的 Python,为了便于消化,每一篇都尽量短小精悍,希望你能尽力去掌握 Python 编程的「概念」,可以的话去动手试一下这些例子(就算目前还没完全搞懂),加深理解. 程序 ...
- Python 编程入门(2):复杂数据类型(列表,字典)
以下所有例子都基于最新版本的 Python,为了便于消化,每一篇都尽量短小精悍,希望你能尽力去掌握 Python 编程的「概念」,可以的话去动手试一下这些例子(就算目前还没完全搞懂),加深理解. 在 ...
- python基础之pip、.pyc、三元运算、进制、一切皆对象、可变与不可变类型
一.pip(下载工具==yum) 1.重点(必须掌握的) 列出已安装的包 pip list 安装要安装的包 pip install xxx 安装特定版本 pip install django==1.1 ...
- Python可变与不可变类型及垃圾回收机制
1. 可变与不可变类型 1.1 可变类型 在id不变的情况下,value可以改变,则称之为可变类型.列表.字典与集合是可变的. l1 = [,,,,] print(id(l1)) l1[] = #改 ...
- Python中的可变、不可变对象和赋值技巧序列解包
可变对象和不可变对象 在python中一切皆对象.在Python中不存在所谓的值传递调用,一切传递都是对象的引用,也可认为是传址. python中,对象分为可变(mutable)和不可变(immuta ...
- python引用在函数传参时的体现以及可变与不可变对象的对比
今天偶然看到 vamei 老师的博客 http://www.cnblogs.com/vamei/archive/2012/07/10/2582795.html 讲的是python动态类型以及引用的事儿 ...
- python中的可变与不可变对象
Python中的可变对象和不可变对象 什么是可变/不可变对象 不可变对象,该对象所指向的内存中的值不能被改变.当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一 ...
- python的可变与不可变数据类型
<python的可变与不可变数据类型> python与C/C++不一样,它的变量使用有自己的特点,当初学python的时候,一定要记住“一切皆为对象,一切皆为对象的引用”这句话,其 ...
随机推荐
- 安装nodeJs静态服务器(NodeJs Express MVC 框架)
安装 NodeJs Express MVC 框架 新建项目文件夹 打开cmd 执行以下操作: 一.使用Express框架 1)安装express3 $: npm install -g ex ...
- 【Python】 Python3 环境搭建
Python是一种计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. Windo ...
- 基于TeamCity的asp.net mvc/core,Vue 持续集成与自动部署
一 Web Server(Windows)端的配置 1.配置IIS,重要的是管理服务 1.1 配置FTP(前端NPM项目需要) 该步骤略,如果是在阿里云ESC上,需要开启端口21(用来FTP认证握手) ...
- java中的值传递和引用传递有什么区别呀?
值传递: (形式参数类型是基本数据类型和String):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参 ...
- kali配置python3的开发环境
最近打算学习一下python3,毕竟不会写脚本的程序员,不是一个好的安全测试人员! 对于我来说,python的大部分应用都是在linux上,而kali是我唯一一个有图形化操作界面的linux系统 所以 ...
- 重写toFixed()方法
1.直接在原型上修改,仍然使用元调用方式 Number.prototype.toFixed = function (exponent) { return parseInt(this * Math.po ...
- C语言中结构体(struct)的几种初始化方法
转自https://www.jb51.net/article/91456.htm 本文给大家总结的struct数据有3种初始化方法 1.顺序 2.C风格的乱序 3.C++风格的乱序 下面通过示 ...
- Cookie的使用(14)
一:cookie的简要介绍: (1)什么是cookie a.cookie是一种客户端的状态管理技术b.当浏览器向服务器发送请求的时候,服务器会将少量的数据以set-cookie消息头的方式发送给浏览器 ...
- Windows7+IIS+PHP7+MySQL5.7环境搭建
IIS配置 本次搭建使用的系统是Windows7,Windows8,10与此类似. 开启IIS 开始-->控制面板-->程序和功能,点击左边栏的开启或关闭Windows功能,如图: 选择I ...
- Spring Boot Externalized Configuration
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html Ex ...