python day 3

(学习资料来自老男孩教育)

2019/10/06

1. int类小知识点

  • 给变量赋值的两种方法

    给变量赋值一个整数有两种方法:

    一是直接赋值:a1 = 123

    二是使用int类来创建int类的对象:a1=int(123)

    实际上方法一是调用了方法二,本质上是通过int来创建的。而int(123)又是相当于int.init(123)。

    (懵逼了,但是后面应当会懂,暂时先这样记着就好了。)

  • 数字的内存优化

    在python内部,变量名存储于内存栈区,而对象存储于内存堆区,对象有三个特性:标识符(identifier),类型(type),值(value).

    变量是内存地址的引用,要查看一个变量的内存,使用id(x),x可以是任意对象或变量名称。

    [-5,257)左包右不包之间的整数,所有变量引用的都是同一块内存。这个区间之外的整数,引用的不是同一块内存。

    判断两个变量引用是不是同一块内存地址,可以看id是否相等,也可以使用is方法判断。

  1. a1,a2 = -5,-5 #链式赋值方法,将-5,-5分别赋值给a1,a2
  2. id(a1)==id(a2) #判断内存地址是否一样。
  3. a1 is a2 # 判断内存地址是否一样
  4. a3,a4 = -5.0,-5.0
  5. a3 is a4 # 返回False,因为不是整数
  6. a5,a6 = 257,257
  7. id(a5)==id(a6) # 返回False

2. str类小知识点

(知识点很繁琐,一下子记不住,只能在使用中慢慢记忆)

  • 创建字符串有两种方法

    方法一: s1 = 'name'

    方法二:s2 = str(value='name',encoding='utf-8',errors='strict')

    使用方法一时,本质上是调用方法二.

  • 字符串编码

    bytes类型与bin类型。bytes(字节)类型在网络之间通信使用。

  1. # UTF-8编码,一个汉字,3个字节,一个字节8位bit
  2. # gbk编码,一个汉字,2个字节。
  3. #李露
  4. #字节/字节/字节/字节/字节/字节/
  5. name = '李露'
  6. for i in name:
  7. #for迭代时,迭代遍历的是每一个字符。
  8. print(i)
  9. #bytes可以将字符串转换成字节,字节类型也跟int类型一样,是基本的数据类型。
  10. bytes_list = bytes(i,encoding='utf-8')
  11. print(bytes_list)#输出字节列表时,每个字节默认16进制
  12. for b in bytes_list:
  13. #输出时每一个字节默认10进制
  14. print(b,bin(b))#bin函数将对象转换成为二进制。
  15. >>> a = '蓝星'
  16. >>> a1 = bytes(a,encoding='utf-8')
  17. >>> print(a1)
  18. b'\xe8\x93\x9d\xe6\x98\x9f'
  19. >>> a2 = bytes(a,encoding='gbk')
  20. >>> print(a2)
  21. b'\xc0\xb6\xd0\xc7'
  22. >>> b2 = a2[0]
  23. >>> print(b2)
  24. 192
  25. >>> print(bin(b2))
  26. 0b11000000
  27. >>>

3. list类小知识点

创建列表时,有两种方法:

一是直接定义:l1 = [1,2,3]

二是通过list类:l2 = list((1,2,3)),

事实其实调用了list.init(seq=()),就是seq=(1,2,3)。list()接一个参数,其参数是可迭代对象。只要是可迭代的,都可以是list()的参数str,list,dict,tuple,set,generator,iterator,iterable等类型都是可迭代对象

方法一本质上是默认使用了方法二。

  1. dict1 = dict(name='lanxing',sex='male') #因为字典迭代时,默认是keys。
  2. l3 = list(dict1)
  3. print(l3)
  4. ['name', 'sex']

切片取的是一个子序列,原来的类型是什么样的序列,子序列主是什么序列,即使只有一个元素,切片取的也是序列

列表里面可以嵌套子列表,子列表里面又可以嵌套子列表

  1. li = [1,2,3,'name','x']
  2. li[0] # 这是索引,取单个元素
  3. li[0:1] #这是切片,返回的是一个只包含元素1的列表
  4. li[0:1][0] # 先切片,再把元素1取出来
  5. li2 = [1,2,3,'name','x',[4,5,6]] #有一个子列表的列表。
  6. li2[5][0] #通过索引将元素4取出来
  7. li[5:] #这是切片,返回的是一个列表,该列表只有一个元素,而该元素正是一个列表。
  8. li[5:][0][0] # 通过切片将元素4取出来

python day3 int,str,list类型补充的更多相关文章

  1. Python学习笔记之基础篇(三)python 数据类型 int str bool 详谈

     python 的数据类型: 1.int:存放 1,2,3 等数据 ,用于数字的运算 2.bool :True, False 用于判断 3.str:字符串,用来存储少量的数据 4.list : 数组的 ...

  2. python中int是什么类型

    python中的基本数据类型 1:虽然python中的变量不需要声明,但使用时必须赋值整形变量浮点型变量字符型2:可以一个给多个变量赋值,也可以多个给多个变量赋值3:python3中有6个标准数据类型 ...

  3. 一、python (int & str 的方法)

    1.变量:命名与使用 #!/usr/bin/env/ python # -*- coding:utf-8 -*- name = 'liQM' 只能包含字母.数字或下划线: 第一个字符不能是数字: 简短 ...

  4. Python-数字类型补充

    Python第五节数字类型补充 数字类型转换 int(x) float(x) complex(x) complex(x, y) 数学常量 pi e PS 数字类型不允许改变 也就是说,当我们对数字类型 ...

  5. python之路day03--数据类型分析,转换,索引切片,str常用操作方法

    数据类型整体分析 int :用于计算bool:True False 用户判断str:少量数据的存储 list:列表 储存大量数据 上亿数据[1,2,3,'zzy',[aa]] 元组:只读列表(1,23 ...

  6. python day 07-数据类型补充,集合,深浅拷贝

    一.基础数据类型补充 1.列表转字符串 a='A'.join(['c','c','s']) print(a) 2.循环删除列表中的每⼀一个元素 lst=['asdf','dftgst','zsdrfs ...

  7. python基础-2 编码转换 pycharm 配置 运算符 基本数据类型int str list tupple dict for循环 enumerate序列方法 range和xrange

    1.编码转换 unicode 可以编译成 UTF-U GBK 即 #!/usr/bin/env python # -*- coding:utf-8 -*- a = '测试字符' #默认是utf-8 a ...

  8. 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...

  9. (转)python学习笔记4--数字类型与操作符

    原文:https://blog.csdn.net/lemonwyc/article/details/37558269 1. 同时赋值(Simultaneous Assignments) python支 ...

随机推荐

  1. shell编程系列5--数学运算

    shell编程系列5--数学运算 方法1 expr $num1 operator $num2 方法2 $(($num1 operator $num2)) expr操作符对照表1 操作符 含义 num1 ...

  2. python-learning-第二季-数据库编程

    https://www.bjsxt.com/down/8468.html 代码实现: #coding:utf- #导入模块 import sqlite3 #创建connect连接 con = sqli ...

  3. 十九款web漏洞扫描工具

    1. Arachni Arachni是一款基于Ruby框架搭建的高性能安全扫描程序,适用于现代Web应用程序.可用于Mac.Windows及Linux系统的可移植二进制文件. Arachni不仅能对基 ...

  4. Linux系统调优——Memory内存(二)

    (1).查看Memory(内存)运行状态相关工具 1)free命令查看内存使用情况 [root@youxi1 ~]# free -m //-m选项,以MB为单位显示 total used free s ...

  5. 报错:(未解决)java.lang.VerifyError: Instruction type does not match stack map

    报错背景: CDH中集成kafka的服务,解决完kafka的jar包报错之后重启,发现这个报错. 报错现象: java.lang.VerifyError: Instruction type does ...

  6. PAT 甲级 1146 Topological Order (25 分)(拓扑较简单,保存入度数和出度的节点即可)

    1146 Topological Order (25 分)   This is a problem given in the Graduate Entrance Exam in 2018: Which ...

  7. SVN还原项目到某一版本(转)

    将本地的项目通过SVN还原到某一版本,并将SVN服务器上的项目也还原到这一版本 第一步:新建一个文件夹,如test,选中test右键-checkout到最新版本 第二步:选中test,右键-Torto ...

  8. 【docker 使用】基本docker命令

    查看镜像 docker images 删除镜像 docker rmi [镜像id的前5位]或[镜像name:镜像tag] 如果有两个镜像指向同一个id,则使用镜像id进行删除时会报错,需要使用name ...

  9. spark kmer计算

    输入文件:fa格式的文件 输出结果:kmer的频数和对应的kmer类型和计数 1.将fq.gz的文件转换成fa文件: #!/usr/bin/python env # -*- coding:utf-8 ...

  10. PHP-FPM配置与调优

    PHP-FPM是啥? PHP-FPM是一个PHP FastCGI的管理器,它实际上就是PHP源代码的补丁,旨在将FastCGI进程管理引进到PHP软件包中. CGI是啥? CGI全称"公共网 ...