day5 五、数字类型、字符串,列表类型的基本操作和内置方法
一、可变与不可变
可变:值改变,但是id不变,证明就是在改变原值,是可变类型。它的原理是在内存里有一个值,然后这个值发生了改变,意为id地址是同一个,没有变化
l=['a','b']
print(id(l)) # 结果为 34743240
l[0]='A'
print(l) # 结果为 ['A','b']
print(id(l)) # 结果为 34743240
不可变:值改变,但是id也跟着变,证明是产生了新的值,是不可变类型。它的原理是在内存里有一个值,然后又申请了另一个地址,则id地址不同。称为不可变类型。
x = 9
print(id(x)) # 结果为 1580166880 x = 10
print(id(x)) # 结果为 1580166912
二、数字类型
、整形
基本使用
用途:记录数字,年纪,手机号
定义方式
age =
age = int()
print(age,type(age))
数据类型转换: 只能将纯数字的字符串转成int a = int('')
print(a,type(a)) a = int('')
print(a,type(a ))
总结:
存一个值
不可变(值变,id就变。)
x = 9
print(id(x)) # 结果为 1580166880
x = 10
print(id(x)) # 结果为 1580166912
三、字符串
基本使用
用途:记录描述性质的状态 定义方式:用单引号,双引号,三引号中包含一系列字符 l = 'abcde'
l = str(l)
print(l,type(l )) # 结果为 abcde <class 'str'> name = 'hello'
name = str(name)
print(name,type(name)) # 结果为 hello <class 'str'>
数据类型转换:所有类型都可以被str转成字符串类型 res=str([1,2,3])
print(res,type(res)) # 结果为 [1, 2, 3] <class 'str'> l = [1,2,3,4,5,6]
l = str([1,2,3,4,5,6])
print(l,type(l)) # 结果为 [1, 2, 3, 4, 5, 6] <class 'str'> 常用操作+内置的方法 1、按索引取值(正向取+反向取) :只能取
name = 'helloworld'
print(name[0],name[1],name[2],name[3],name[4],type(name ))
# 结果为 h e l l o <class 'str'> print(name[-1],name[-2],name[-3],name[-4],name[-5],type(name ))
# 结果为 d l r o w <class 'str'> print(name[0])
print(name[1])
print(name[2])
print(name[3]) 2、切片(顾头不顾尾,步长)
name = 'helloworld'
mag = name[0:10] # 取 0 1 2 3 4 5 6 7
print(mag) # 结果为 helloworld mag = name[::]
print(mag) # 结果为 helloworld name = 'helloworld'
mag = name[-1:-11:-1] # 取 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10
print(mag) # 结果为 dlrowolleh mag = name[-1::-1]
print(mag) # 结果为 dlrowolleh mag = name[::-1]
print(mag) # 结果为 dlrowolleh 3、长度len
name = 'helloworld'
print(len(name)) # 结果为10个字符 4、成员运算in和not in:判断一个子字符串是否存在于大字符串中 name = 'helloworld'
print('i'in name) # 结果为 False
print('hell'in name) # 结果为 True 5、移除空白strip: 用来去除字符串左右两边的字符,不指定默认去除的是空格
name = input('your username:>>>').strip()
password = input('your passworld:>>>').strip()
if name == 'helloworld'and password =='':
print('login successful') else:
print('error') name = ' helloworld'
name = name.strip()
print(name) # 结果为helloworld 前面没有空格 name = '&*helloworld'
name = name.strip('&*@#$%')
print(name) # 结果为helloworld name = '&*hello####world&*'
name = name.strip('#&*@#$%')
print(name) # 结果为hello####world
注意 hello与world左边和右边的字符会消失,但是中间的字符还存在。 name = name.strip('&*@#$%')
print(name)
print('&*helloworld@#$%'.strip('&*@#$%')) # 结果为helloworld 6、切分split:针对有规律的字符串,按照某种分隔符切成列表
name = 'jerry:25:male'
name = name.split(':')
print(name) # 结果为 ['jerry', '25', 'male'] name = 'jerry:25:male'
name = name.split(':',1)
print(name) # 结果为 ['jerry', '25:male'] 7、join用法。用:号作连接符号将纯字符串的列表拼接成一个字符串
name = ['jerry','','male']
name = name[0]+':'+name[1]+':'+name[2]
print(name) # 结果为 jerry:25:male name = ['jerry','','male']
name = ':'.join(name)
print(name) # 结果为 jerry:25:male 8、循环
for name in 'hello':
print(name)
# 结果为
h
e
l
l
o 1、strip,lstrip,rstrip
移除空格strip:移除字符串左右两边的字符
lstrip:移除字符串左边的字符
rstrip:移除字符串右边的字符
print('******tom***********'.strip('*')) # 结果为 tom
print('******tom***********'.lstrip('*')) # 结果为 tom***********
print('******tom***********'.rstrip('*')) # 结果为 ******tom 2、lower,upper
lower:大写字母变小写
upper:小写字母变大写
print('TOM123'.lower()) # 结果为 tom123
print('tom123'.upper()) # 结果为 TOM123 name = 'TOM'
print(name.lower())
name = 'tom'
print(name.upper())
3、startswith,endswith
name ='tom is me'
print(name.startswith('t')) # 结果为 True 首字母
print(name.endswith('e')) # 结果为 True 尾字母
print(name.endswith('is')) # 结果为 False
4、format的三种玩。格式化输出。和%s类似。但format可以任意位置的
name ='my name is %s my age is %s' %('tom',25)
print(name) # 结果为 my name is tom my age is 25 # 方法一
tag = 'my name is {name} my age is {age}'.format(name = 'tom',age =25 )
print(tag) # 结果为 my name is tom my age is 25 了解
# 方法二
tag ='my name is {0} my age is {1}'.format('tom',25)
print(tag) # 结果为 my name is tom my age is 25
# 方法三
tag='my name is {0}{1} my age is {1}{1}{1}{1}'.format('tom',25)
print(tag) # 结果为 my name is tom25 my age is 25252525 5、split,rsplit
split:切分(从左往右)
rsplit:切分(从右往左) msg='a:b:c:d'
print(msg.split(':',1)) # 结果为 ['a', 'b:c:d']
print(msg.rsplit(':',1)) # 结果为 ['a:b:c', 'd']
name = 'jerry:tommy:judy:una'
print(name.split(':',1)) # 结果为 ['jerry', 'tommy:judy:una']
print(name.rsplit(':',1)) # 结果为 ['jerry:tommy:judy', 'una'] 6、replace:替换
name = 'jerry say :my name is jerry,a college student'
print(name.replace('jerry','man',1)) # 结果为 man say :my name is jerry,a college student
7、isdigit:如果字符串是由纯数字组成的,则返回True
print(''.isdigit()) Ture
print('123123 '.isdigit()) False
print('123123asdf'.isdigit()) False
print('12312.3'.isdigit()) False
字符串类型总结:
存一个值
有序
不可变(值改变,但是id也跟着变,证明是产生了新的值,是不可变类
四、列表
按照位置记录多个任意类型的值。并且可以取出指定位置的值。
通过索引对应值,从0开始,代表的是位置。
定义:在中括号内用逗号隔开任意类型的值
name = ['jerry', 25, 175.5, [120, 5000]] 数据类型转换:但凡能够被for循环的数据类型都可以传给list,被其转换成列表
name = list('hello')
print(name) # 结果为 ['h', 'e', 'l', 'l', 'o'] name = ['jerry', 25, 175.5, [120, 5000]]
name = list(name)
print(name) # 结果为 ['jerry', 25, 175.5, [120, 5000]] res = list({'a': 1, 'b': 2, 'c': 3})
print(res) # 结果为 ['a', 'b', 'c'] 常用操作 + 内置方法
1、按索引存取值(正向存取+反向存取):即可存也可以取
name = ['jerry', 25, 175.5, [120, 5000]]
print(name[0], name[1], name[2], name[3]) # 结果为 jerry 25 175.5 [120, 5000]
print(name[-1], name[-2], name[-3], name[-4]) # 结果为 [120, 5000] 175.5 25 jerry # 注意注意注意:对于不存在的索引会报错 可存:
dic = {"k1":111}
dic['k2'] = 2222
print(dic) # 结果为 {'k1': 111, 'k2': 2222} 2、切片(顾头不顾尾,步长)
name = ['jerry', 25, 175.5, [120, 5000]]
print(name[0:4:1]) # 结果为 ['jerry', 25, 175.5, [120, 5000]]
print(name[::1]) # 结果为 ['jerry', 25, 175.5, [120, 5000]]
print(name[0::1]) # 结果为 ['jerry', 25, 175.5, [120, 5000]]
print(name[-1::-1]) # 结果为 [[120, 5000], 175.5, 25, 'jerry']
print(name[::-1]) # 结果为 [[120, 5000], 175.5, 25, 'jerry']
print(name[:]) # 结果为 ['jerry', 25, 175.5, [120, 5000]]
print(name[::]) # 结果为 ['jerry', 25, 175.5, [120, 5000]] 3、长度len
name = ['jerry', 25, 175.5, [120, 5000]]
print(len(name)) # 结果为4 4、成员运算in和not in
name = ['jerry', 25, 175.5, [120, 5000]]
print('jerry' in name) # 结果为True
print('tommy' not in name) # 结果为True 5、追加append和插入insert
①追加append:只能往后追加
name = ['jerry', 25, 175.5, [120, 5000]]
name.append('abc')
print(name) # 结果为 ['jerry', 25, 175.5, [120, 5000], 'abc'] name = ['jerry', 'tommy', 'judy']
name.append('una')
print(name) # 结果为 ['jerry', 'tommy', 'judy', 'una'] ②插入insert:在指定位置插入
name = ['jerry', 25, 175.5, [120, 5000]]
name.insert(0, '')
print(name) # 结果为 ['100000', 'jerry', 25, 175.5, [120, 5000]] name = ['jerry', 25, 175.5, [120, 5000]]
name.insert(1, '')
print(name) # 结果为 [ 'jerry','10000', 25, 175.5, [120, 5000]] name = ['jerry', 25, 175.5, [120, 5000]]
name.insert(4, '')
print(name) # 结果为 ['jerry', 25, 175.5, [120, 5000], '100000'] 6、删除
①del:不是列表独有的删除,是通用的删除。del没有返回值,只是单纯的删除。
name = ['jerry', 25, 175.5, [120, 5000]]
del name[0]
print(name) # 结果为 [25, 175.5, [120, 5000]] ②remove:指定要删除的那个元素。和del一样没有返回值,都只是单纯的删除
name = ['a', 'bbb', 'c', 'd', 'e']
name.remove('bbb')
print(name) # 结果为 ['a', 'c', 'd', 'e'] ③pop:(指定要删除的那个元素的索引)。有返回值,返回刚刚删掉的那个元素。 意为取走
name = ['a', 'bbb', 'c', 'd', 'e']
name.pop()
print(name) # 结果为 ['a', 'bbb', 'c', 'd'] # 不指定位置,默认删除最后一个 name = ['a', 'bbb', 'c', 'd', 'e']
name.pop(0)
print(name) # 结果为 ['bbb', 'c', 'd', 'e'] 7、循环
name = ['jerry', 25, 175.5, [120, 5000]]
for item in name:
print(item)
# 结果为
jerry
25175.5
[120, 5000] 8、clear:清除
name = ['aaa', 'bb', 345]
name.clear()
print(name) # 结果为[] 9、extend加多个元素
name = ['aaa', 'bb', 345]
name.extend(['tommy', 120, 175.5])
print(name) # 结果为 ['aaa', 'bb', 345, 'tommy', 120, 175.5] 10、.reverse:反过来
name = ['aaa', 'bb', 345]
name.reverse()
print(name) # 结果为 [345, 'bb', 'aaa'] 11、sort 排序:只有在类中中所有元素都是同种类型的情况下才能用sort排序(升序)
name = [1, 100, 1000]
name.sort()
print(name) # 结果为 [1, 100, 1000] name = ['z', 'd', 'a']
name.sort()
print(name) # 结果为 ['a', 'd', 'z'] 列表类型总结:
存多个值
有序
可变
五、练习
1、写代码,有如下变量,请按照要求实现每个功能 name = " aleX" 1) 移除 name 变量对应的值两边的空格,并输出处理结果
name = " aleX"
print(name.strip())
2) 判断 name 变量对应的值是否以 "al" 开头,并输出结果
name = " aleX"
print(name.startswith('al'))
3) 判断 name 变量对应的值是否以 "X" 结尾,并输出结果
name = " aleX"
print(name.endswith('X'))
4) 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
name = " aleX"
print(name.replace('l', 'p', 3))
5) 将 name 变量对应的值根据 “l” 分割,并输出结果。
name = " aleX"
print(name.split('l'))
6) 将 name 变量对应的值变大写,并输出结果
name = " aleX"
print(name.upper())
7) 将 name 变量对应的值变小写,并输出结果
name = " aleX"
print(name.lower())
8) 请输出 name 变量对应的值的第 2 个字符?
name = " aleX"
print(name[1])
9) 请输出 name 变量对应的值的前 3 个字符?
name = " aleX"
print(name[:3])
10) 请输出 name 变量对应的值的后 2 个字符?
name = " aleX"
print(name[-2:])
11) 请输出 name 变量对应的值中 “e” 所在索引位置?
name = " aleX"
print(name.index('e'))
12) 获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo。
name = " aleX"
print(name[:4:1])
day5 五、数字类型、字符串,列表类型的基本操作和内置方法的更多相关文章
- python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍
对于python而言,一切事物都是对象,对象是基于类创建的,对象继承了类的属性,方法等特性 1.int 首先,我们来查看下int包含了哪些函数 # python3.x dir(int) # ['__a ...
- day09-1 列表,元祖的内置方法
目录 列表类型的内置方法 作用 定义方式 方法 优先掌握 需要掌握 储存一个值or多个值 有序or无序?(有序:有索引, 无序:无索引) 可变or不可变(可变:值变id不变,不可变:值变id也变) 元 ...
- [Python3] 009 字符串:给你们看看我的内置方法 第一弹
目录 前言 如何查看 python3 中和 str 有关的方法 字符串方法 1. capitalize() 2. casefold() 3. center(width) 4. count(sub[, ...
- [Python3] 010 字符串:给你们看看我的内置方法 第二弹
目录 少废话,上例子 1. isidentifier() 2. islower() 3. isnumeric() 4. isprintable() 5. isspace() 6. istitle() ...
- [Python3] 011 字符串:给你们看看我的内置方法 第三弹
目录 少废话,上例子 1. encode(encoding='utf-8', errors='strict') 2. expandtabs([tabsize=8]) 借此机会简单地说一说 print( ...
- day05_08 列表讲解、切片、内置方法
1.0 查询: a = ['wuchao','jinxing','xiaohu','sanpang','ligang'] print(a[3]) #>>>sanpang prin ...
- Python基础部分:9、数据的类型和内置方法
目录 一.数据类型内置方法理论 1.什么是数据内置方法 2.如何调用数据内置方法 二.整型(int)内置方法与操作 1.类型转换 2.进制数转换 三.浮点型(float)内置方法与操作 1.类型转换 ...
- python学习番外篇——字符串的数据类型转换及内置方法
目录 字符串的数据类型转换及内置方法 类型转换 内置方法 优先掌握的方法 需要掌握的方法 strip, lstrip, rstrip lower, upper, islower, isupper 插入 ...
- python基础——4(数字、字符串、列表类型的内置方法介绍)
目录 一.可变与不可变类型 二.数字类型 三.字符串类型 四.列表类型 一.可变与不可变类型 可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型 不可变类型:值改变,id也跟着改变,证明产 ...
随机推荐
- Golang select
Golang下select的功能和Linux IO复用中的select, poll, epoll相似,是监听 channel 操作,当 channel 操作发生时,触发相应的动作. package m ...
- AirServer for Mac(Airplay 终端实用工具)破解版安装
1.软件简介 AirServer 是一款 Mac 上的 AirPlay 终端,通过这款软件,利用 AirPlay 技术,iPhone 或 iPad 就可以无线连接到 Mac 上,不需要在 iPh ...
- C# 使用NLog记录日志入门操作
环境:win7 64位, VS2010 1.首先用VS2010创建命令行工程NLogDemo 2.在程序包管理器控制台中输入:Install-Package NLog -Version 4.4.12 ...
- 为OLED屏添加GUI支持6:进度条控件
为OLED屏添加GUI支持6:进度条控件 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:S ...
- Linux好用的工具命令 - nl/du
nl 添加行号后打印输出文本内容,以下例子演示了cat 和nl 输出nlDemo文档的区别. [root@ptarmiganantelope:~]# cat nlDemo root:x:0:0:roo ...
- 8个超实用的jQuery插件应用
自jQuery诞生以来,jQuery社区都在不断地.自发地为jQuery创建许许多多功能不一的插件应用,很多jQuery插件非常实用,对我们的前端开发帮助相当大,不仅可以更完美的完成指定功能,而且节省 ...
- [NM]打开NetworkManager和wpa_supplicant的DEBUG接口
turn on the DEBUG log in /etc/NetworkManager/NetworkManager.conf and restart NetworkManager. [loggin ...
- Java知多少(59)创建多线程
到目前为止,我们仅用到两个线程:主线程和一个子线程.然而,你的程序可以创建所需的更多线程.例如,下面的程序创建了三个子线程: // Create multiple threads. class New ...
- 关于使用maven打包如何聚合资源文件
多数情况下,我们使用maven管理多个子工程,在最后maven打包阶段将多个子工程聚合到一个jar或war包.单个子工程会有自己独立的资源配置文件,在打包的时候我们需要将其聚合在一起(各子工程中的配置 ...
- Android集成Google地图详细步骤记录
先贴下Google官方的地图demo地址:https://github.com/googlemaps/android-samples 那么接下来第一步,申请Google的API key. 使用谷歌账号 ...