一、可变与不可变

可变:值改变,但是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 五、数字类型、字符串,列表类型的基本操作和内置方法的更多相关文章

  1. python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍

    对于python而言,一切事物都是对象,对象是基于类创建的,对象继承了类的属性,方法等特性 1.int 首先,我们来查看下int包含了哪些函数 # python3.x dir(int) # ['__a ...

  2. day09-1 列表,元祖的内置方法

    目录 列表类型的内置方法 作用 定义方式 方法 优先掌握 需要掌握 储存一个值or多个值 有序or无序?(有序:有索引, 无序:无索引) 可变or不可变(可变:值变id不变,不可变:值变id也变) 元 ...

  3. [Python3] 009 字符串:给你们看看我的内置方法 第一弹

    目录 前言 如何查看 python3 中和 str 有关的方法 字符串方法 1. capitalize() 2. casefold() 3. center(width) 4. count(sub[, ...

  4. [Python3] 010 字符串:给你们看看我的内置方法 第二弹

    目录 少废话,上例子 1. isidentifier() 2. islower() 3. isnumeric() 4. isprintable() 5. isspace() 6. istitle() ...

  5. [Python3] 011 字符串:给你们看看我的内置方法 第三弹

    目录 少废话,上例子 1. encode(encoding='utf-8', errors='strict') 2. expandtabs([tabsize=8]) 借此机会简单地说一说 print( ...

  6. day05_08 列表讲解、切片、内置方法

      1.0 查询: a = ['wuchao','jinxing','xiaohu','sanpang','ligang'] print(a[3]) #>>>sanpang prin ...

  7. Python基础部分:9、数据的类型和内置方法

    目录 一.数据类型内置方法理论 1.什么是数据内置方法 2.如何调用数据内置方法 二.整型(int)内置方法与操作 1.类型转换 2.进制数转换 三.浮点型(float)内置方法与操作 1.类型转换 ...

  8. python学习番外篇——字符串的数据类型转换及内置方法

    目录 字符串的数据类型转换及内置方法 类型转换 内置方法 优先掌握的方法 需要掌握的方法 strip, lstrip, rstrip lower, upper, islower, isupper 插入 ...

  9. python基础——4(数字、字符串、列表类型的内置方法介绍)

    目录 一.可变与不可变类型 二.数字类型 三.字符串类型 四.列表类型 一.可变与不可变类型 可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型 不可变类型:值改变,id也跟着改变,证明产 ...

随机推荐

  1. VirtualBox安装增强功能报错

    VirtualBox默认不支持调整分辨率,想调整分辨率需要安装增强功能,点击菜单->设备->安装增强功能 我在安装的时候报错了,提示: 这个时候注意虚拟机的桌面,其实这个时候已经加载了虚拟 ...

  2. .NET Core修改监听端口

    把Program.cs加一行UseUrls代码如下: using System.IO; using Microsoft.AspNetCore.Hosting; using Microsoft.AspN ...

  3. 微软BI 之SSIS 系列 - 带有 Header 和 Trailer 的不规则的平面文件输出处理技巧

    案例背景与需求介绍 之前做过一个美国的医疗保险的项目,保险提供商有大量的文件需要发送给比如像银行,医疗协会,第三方服务商等.比如像与银行交互的 ACH 文件,传送给协会的 ACH Credit 等文件 ...

  4. Python根据多个空格Split字符串

    下面的String: 1 沪1 上海市 1850 1350 400 1300 1186/1644(嘉定约100,松江69 奉贤68 2007年上海常住人口1858万人,户籍人口1378.86万人,来沪 ...

  5. Atlas+Keepalived系列一:安装Atlas:

    1:下载Atlas https://github.com/Qihoo360/Atlas/releases/download/2.2.1/Atlas-2.2.1.el6.x86_64.rpm 2:安装A ...

  6. 迷你音乐播放器v1.0正式上线!

    迷你音乐播放器V1.0正式上线! 版本介绍: 1.随机播放切换开关(通过点击专辑图片) 2.通过拖动歌曲名及艺术家名调整歌曲播放进度 3.手机浏览访问支持熄屏播放 4.暂不支持在线搜索功能 快来一起分 ...

  7. 【C语言】符号优先级

    一. 问题的引出 今天看阿里的笔试题,看到一个非常有意思的题目,但是很容易出错. 题目:如下函数,在32bit系统foo(2^31-3)的值是: Int foo(int x) { return x&a ...

  8. [svc]sed&awk过滤行及sed常用例子

    - sed过滤行 sed '2p' sed '2,5p' sed '2p;3p;4p' - awk过滤行 awk 'NR==2' awk 'NR>=2 && NR <=3' ...

  9. 使用Fidder将生成环境代码映射到本地(文件夹)

    匹配生产URL正则表达式 regex:http://www.a.com/statics/js/(.*) 本地路径配置 D:\web\statics\js\$1

  10. 【linux】——cscope

    cscope是一款linux下的软件,其功能主要是用在阅读代码,堪称Windows下的Source Insight,但是配合vim使用,效率无与伦比.如需了解其具体使用,请先安装vim,然后在终端执行 ...