一、可变与不可变

可变:值改变,但是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. Open-Source performance testing tools(From other site)

    http://www.appdynamics.com/blog/php/tools-of-the-trade-for-performance-and-load-testing/

  2. 在线检测域名或者ip的端口是否开放(http://coolaf.com/tool/port)

    http://coolaf.com/tool/port

  3. IDEA使用笔记(七)——编辑器最大个数的设置

    我想一定有许多人和我一样在使用IDEA的时候,打开了许多的编辑器选项卡,但是打开的数量是有限的,我们想打开更多的页面,并且希望控制当再次达到大限的时候能关闭那些我们最久没有看的文件! 好吧!看下面的配 ...

  4. [Aaronyang] 写给自己的WPF4.5 笔记8[复杂数据处理三步曲,数据视图精讲1/3]

    真的好累了 ,笑了.做回自己吧       -------------      Aaronyang技术分享 www.ayjs.net 博文摘要: 详细介绍了WPF中视图的种类和开始学之前的准备工作 ...

  5. easyui tab上面添加右键菜单

    说扩展,我觉得有点过了,只是加入了右击TAB选项卡时显示关闭的上下文菜单,先看下效果图: 具体实现代码: 右键菜单 HTML: <div id="mm" class=&quo ...

  6. SNF快速开发平台MVC-Grid++集成打印

    一.显示效果: 二.程序实现: 1.先要在 打印模版程序 给指定页面进行在线设计打印模版 2.在使用的程序当中,增加如下代码即可.程序上是可以挂多个打印模版的,程序页面的代码不用动直接可以读取到打印模 ...

  7. [ModemManger]ModemManger的取消

    http://www.linux-databook.info/?page_id=3748 systemctl disable ModemManager.service 失能ModemManger从而取 ...

  8. Android调用相机拍摄照片并显示到 ImageView控件中

    在前面的一篇文章中曾介绍过简单的开启相机照相功能,详见 Android简单调用相机Camera功能,实现打开照相功能 ,这一次就会将前面拍摄的照片显示到ImageView中,形成一个完整的效果 看实例 ...

  9. 【转】VMware Tools installation cannot be started manually while Easy Install is in progress.

    我HOST 是WIN7也遇到了这样的问题 我这样做的:进入系统以后在你VM的下面会有几个图标:关于1,CD DVD 2,disk 3,floppy 4,网络连接... 选择floppy--settin ...

  10. Oracle HAVING子句 - 转

    使用 HAVING 子句选择行 HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似.WHERE 子句搜索条件在进行分组操作之前应用:而 ...