本篇内容

  1. 数字
  2. 字符串
  3. 元祖
  4. 字典
  5. 列表
  6. 集合
  7. for循环
  8. 二进制
  9. 字符编码
  10. 文件处理

一、数字

1、int(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647   在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. x = 10
  6. print(x, type(x))
  7.  
  8. #输出10 <class 'int'>

2、long(长整型)  

  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。   
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
  注意:在Python3里不再有long类型了,全都是int
3、float(浮点型)
     浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. x = 3.5
  6. print(x, type(x))
  7.  
  8. #输出3.5 <class 'float'>

二、 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。

  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. a = "hello word"
  6.  
  7. print(a, type(a))
  8.  
  9. print(a.strip()) #去除首和尾多余的空格
  10.  
  11. print(a.split("o"))
  12.  
  13. print(a[1:3])
  14.  
  15. print(a.isdigit())
  16.  
  17. print(a.count("l"))
  18.  
  19. print(len(a))
  20.  
  21. print(a.replace("hello","hi"))
  22.  
  23. #输出:
  24. #hello word <class 'str'>
  25.  
  26. #hello word
  27.  
  28. #['hell', ' w', 'rd']
  29.  
  30. #el
  31.  
  32. #False
  33.  
  34. #2
  35.  
  36. #10
  37.  
  38. #hi word

三、 元祖

Python的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. t = ("gangdan", "yanglei", "xiaofei", "yanglei")
  6.  
  7. print(t, type(t))
  8.  
  9. print(t.count("yanglei"))
  10.  
  11. print(t.index("gangdan"))
  12.  
  13. #输出:
  14. #('gangdan', 'yanglei', 'xiaofei', 'yanglei') <class 'tuple'>
  15.  
  16. #2
  17.  
  18. #0

四、 字典

Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。
字典由键和对应值成对组成。字典也被称作关联数组或哈希表。
  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. dic = {
  6. "name":"yanglei","age":23,"job":"IT"
  7. }
  8.  
  9. print(dic, type(dic))
  10.  
  11. dic.pop("age")
  12. print(dic)
  13.  
  14. dic.setdefault("age",23)
  15. print(dic)
  16.  
  17. print(dic.get("job"))
  18.  
  19. print(dic.get("wu"))
  20.  
  21. print(dic.items())
  22.  
  23. print(dic.keys())
  24.  
  25. print(dic.values())
  26.  
  27. #输出:
  28. #{'name': 'yanglei', 'age': 23, 'job': 'IT'} <class 'dict'>
  29.  
  30. #{'name': 'yanglei', 'job': 'IT'}
  31.  
  32. #{'name': 'yanglei', 'job': 'IT', 'age': 23}
  33.  
  34. #IT
  35.  
  36. #None
  37.  
  38. #dict_items([('name', 'yanglei'), ('job', 'IT'), ('age', 23)])
  39.  
  40. #dict_keys(['name', 'job', 'age'])
  41.  
  42. #dict_values(['yanglei', 'IT', 23])
  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. lis = [11,22,33,44,55,66,77,88,99,90]
  6.  
  7. dic = {}
  8. for i in lis:
  9. if i > 66:
  10. dic.setdefault("k1",[]).append(i)
  11. elif i < 66:
  12. dic.setdefault("k2", []).append(i)
  13.  
  14. print(dic)
  15.  
  16. #输出:
  17. #{'k2': [11, 22, 33, 44, 55], 'k1': [77, 88, 99, 90]}

五、 列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

Python有6个序列的内置类型,但最常见的是列表和元组。

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. lis = ["yanglei","gangdan","yanglei","xiaolan","xiaolv"]
  6.  
  7. print(lis, type(lis))
  8.  
  9. print(lis[1])
  10.  
  11. print(lis[0:3])
  12.  
  13. lis.pop()
  14. print(lis)
  15.  
  16. print(lis.index("gangdan"))
  17.  
  18. print(lis.count("yanglei"))
  19.  
  20. lis.append("xiaohong")
  21. print(lis)
  22.  
  23. lis.insert(1,"xiaolv")
  24. print(lis)
  25.  
  26. lis.remove("xiaolan")
  27. print(lis)
  28.  
  29. #输出:
  30. #['yanglei', 'gangdan', 'yanglei', 'xiaolan', 'xiaolv'] <class 'list'>
  31.  
  32. #gangdan
  33.  
  34. #['yanglei', 'gangdan', 'yanglei']
  35.  
  36. #['yanglei', 'gangdan', 'yanglei', 'xiaolan']
  37.  
  38. #1
  39.  
  40. #2
  41.  
  42. #['yanglei', 'gangdan', 'yanglei', 'xiaolan', 'xiaohong']
  43.  
  44. #['yanglei', 'xiaolv', 'gangdan', 'yanglei', 'xiaolan', 'xiaohong']
  45.  
  46. #['yanglei', 'xiaolv', 'gangdan', 'yanglei', 'xiaohong']

六、 集合

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。创建集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常实用的方法。

  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. s1 = {22,33,55,66,88}
  6. s2 = {33,77,99,66}
  7.  
  8. #交集
  9. print(s1 & s2)
  10.  
  11. #并集
  12. print(s1 | s2)
  13.  
  14. #差集
  15. print(s1 - s2)
  16. print(s2 - s1)
  17.  
  18. #对称差集
  19. print(s1 ^ s2)
  20.  
  21. #输出:
  22. #{33, 66}
  23.  
  24. #{33, 66, 99, 77, 22, 55, 88}
  25.  
  26. #{88, 22, 55}
  27.  
  28. #{99, 77}
  29.  
  30. #{99, 22, 55, 88, 77}

七、 for循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. s = "hello gangdan gangdan say hello sb sb"
  6.  
  7. dic = {}
  8.  
  9. for i in s.split():
  10. if i not in dic:
  11. dic[i] = 1
  12. else:
  13. dic[i] += 1
  14. print(dic)
  15.  
  16. #输出:
  17. #{'hello': 2, 'gangdan': 2, 'say': 1, 'sb': 2}

八、 二进制

二进制实际上就是用10进制的数的每一位数字的2的幂数

来看例子:

然后再Python的操作中,只要在数字前面加上0b的字符,就可以用二进制来表示十进制数了。

  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. print(0b1)
  6.  
  7. print(0b10)
  8.  
  9. print(0b11)
  10.  
  11. print(0b100)
  12.  
  13. print(0b101)
  14.  
  15. print(0b110)
  16.  
  17. print(0b111)
  18.  
  19. #输出:
  20. #1
  21.  
  22. #2
  23.  
  24. #3
  25.  
  26. #4
  27.  
  28. #5
  29.  
  30. #6
  31.  
  32. #7

九、 字符编码

python3解释器在加载 .py 文件中的代码时,会对内容进行编码(默认unicode)。

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536, 注:此处说的的是最少2个字节,可能更多,UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

--------------------------------------------------------------------------------------------------------------------------------------------------------------

关于中文

为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。

GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。

GB2312 支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

从ASCII、GB2312、GBK 到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。

有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。

  1. #!/usr/bin/env pyhon
  2. #auth: yanglei
  3.  
  4. print("中国")
  5.  
  6. #输出:
  7. #中国

编码与转码

十、 文件处理

对文件操作流程

  1. 打开文件,得到文件句柄并赋值给一个变量
  2. 通过句柄对文件进行操作
  3. 关闭文件
  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. f_file = open("lock","r",encoding="utf-8")
  6. for i in f_file.read()
  7. print(i)
  8. f_file.close()

打开文件的模式有:

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
  • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

  • rU
  • r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb
  • wb
  • ab

with语句

为了避免打开文件后忘记关闭,可以通过管理上下文,即:

  1. #!/usr/bin/env pyhon
  2. #encoding: utf-8
  3. #auth: yanglei
  4.  
  5. import os
  6.  
  7. with open("old.txt","r",encoding="utf-8") as f_read,\
  8. open(".old.txt.swap","w",encoding="utf-8") as f_write:
  9. res = f_read.read()
  10. res = res.replace("xiaolan","yanglei")
  11. f_write.write(res)
  12.  
  13. os.remove("old.txt")
  14. os.rename(".old.txt.swap","old.txt")

第二篇:python基础_2的更多相关文章

  1. 第二篇 python进阶

    目录 第二篇 python进阶 一 数字类型内置方法 二 字符串类型内置方法 三 列表类型内置方法(list) 四 元组类型内置方法(tuple) 五 字典内置方法 六 集合类型内置方法(self) ...

  2. [转帖]虚拟内存探究 -- 第二篇:Python 字节

    虚拟内存探究 -- 第二篇:Python 字节 http://blog.coderhuo.tech/2017/10/15/Virtual_Memory_python_bytes/ 是真看不懂哦     ...

  3. 【0728 | 预习】第三篇 Python基础

    第三篇 Python基础预习 Part 1 变量 一.什么是变量? 二.为什么要有变量? 三.定义变量 四.变量的组成 五.变量名的命名规范 六.变量名的两种风格 Part 2 常量 Part 3 P ...

  4. 前端第二篇---前端基础之CSS

    前端第二篇---前端基础之CSS 目录 一.css介绍 二.css语法 三.css的几种引入方式 四.css选择器 五.css属性相关 六.盒子模型 拓展 一.css介绍 CSS(Cascading  ...

  5. python之路第二篇(基础篇)

    入门知识: 一.关于作用域: 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 10 == 10: name = 'allen' print name 以下结论对吗? ...

  6. 第二章 python基础(一)

    第一节 Python文件类型 源代码 Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译 字节代码 Python源文件经编译后生成的扩展名为“pyc”的文件 编译方法 im ...

  7. 第一篇:python基础

    python基础   python基础 本节内容 python起源 python的发展史 为什么选择python3 第一个python程序 变量定义 表达式和运算符 用户输入 流程控制 判断 流程控制 ...

  8. 【Python之路】第七篇--Python基础之面向对象及相关

    面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查obj是否是类 cls 的对象 class Foo(objec ...

  9. 【Python之路】第六篇--Python基础之模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

随机推荐

  1. hdu1150&&POJ1325 Machine Schedule---最小点覆盖

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1150 题目大意: 给你两台机器A和B,A机器有n种模式,B机器有m种模式,初始时都是0,现在给你k个 ...

  2. 实现Hbase的分页

    作者:R星月 出处:http://www.cnblogs.com/rxingyue 欢迎转载,也请保留这段声明.谢谢! 做一个项目中由于数据量比较大,并且需要定时增量分析,做了hbase的分页.项目中 ...

  3. vuejs计算属性和侦听器

    <div id='root'> 姓:<input v-model='firstName'/> 名:<input v-model='secondName'/> < ...

  4. 【转】ios输入框被键盘挡住的解决办法

    做IOS开发时,难免会遇到输入框被键盘遮掩的问题.上网上搜索了很多相关的解决方案,看了很多,但是由衷的觉得太麻烦了. 有的解决方案是将视图上的所有的东西都添加到一个滚动视图对象( UIScrollVi ...

  5. 小波变换(wavelet transform)的通俗解释(一)

    小波变换 小波,一个神奇的波,可长可短可胖可瘦(伸缩平移),当去学习小波的时候,第一个首先要做的就是回顾傅立叶变换(又回来了,唉),因为他们都是频率变换的方法,而傅立叶变换是最入门的,也是最先了解的, ...

  6. C/C++程序基础 (八)数据结构

    非递归先序遍历 // 输出, 遍历左子树,遍历右子树 void firstOrder(Node* root) { stack<Node*> leftNodes; Node* curr = ...

  7. nuxt.js express模板项目服务器部署

    nuxt版本:0.10.6 技术栈:nuxt.js, express, pm2 部署环境:windows server 之前用nuxt.js 的express的模板项目在windows下用nginx进 ...

  8. Table 分页处理

    介绍两种table分页处理:PHP分页 和 js(jquery.table)分页. 一:jquery.table: 1:下载两个文件:table_jui.css 和 jquery.dataTables ...

  9. TCP/IP网络编程之优于select的epoll(二)

    基于epoll的回声服务端 在TCP/IP网络编程之优于select的epoll(一)这一章中,我们介绍了epoll的相关函数,接下来给出基于epoll的回声服务端示例. echo_epollserv ...

  10. Struts1 部分源码学习

    Struts1工作原理    1.系统初始化(读取配置):初始化ModuleConfig对象       Struts框架是一个总控制器(ActionServlet)是一个Servlet,在web.x ...