第二篇:python基础_2
本篇内容
- 数字
- 字符串
- 元祖
- 字典
- 列表
- 集合
- for循环
- 二进制
- 字符编码
- 文件处理
一、数字
1、int(整型)
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei x = 10
print(x, type(x)) #输出10 <class 'int'>
2、long(长整型)
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei x = 3.5
print(x, type(x)) #输出3.5 <class 'float'>
二、 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei a = "hello word" print(a, type(a)) print(a.strip()) #去除首和尾多余的空格 print(a.split("o")) print(a[1:3]) print(a.isdigit()) print(a.count("l")) print(len(a)) print(a.replace("hello","hi")) #输出:
#hello word <class 'str'> #hello word #['hell', ' w', 'rd'] #el #False #2 #10 #hi word
三、 元祖
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei t = ("gangdan", "yanglei", "xiaofei", "yanglei") print(t, type(t)) print(t.count("yanglei")) print(t.index("gangdan")) #输出:
#('gangdan', 'yanglei', 'xiaofei', 'yanglei') <class 'tuple'> #2 #0
四、 字典
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei dic = {
"name":"yanglei","age":23,"job":"IT"
} print(dic, type(dic)) dic.pop("age")
print(dic) dic.setdefault("age",23)
print(dic) print(dic.get("job")) print(dic.get("wu")) print(dic.items()) print(dic.keys()) print(dic.values()) #输出:
#{'name': 'yanglei', 'age': 23, 'job': 'IT'} <class 'dict'> #{'name': 'yanglei', 'job': 'IT'} #{'name': 'yanglei', 'job': 'IT', 'age': 23} #IT #None #dict_items([('name', 'yanglei'), ('job', 'IT'), ('age', 23)]) #dict_keys(['name', 'job', 'age']) #dict_values(['yanglei', 'IT', 23])
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei lis = [11,22,33,44,55,66,77,88,99,90] dic = {}
for i in lis:
if i > 66:
dic.setdefault("k1",[]).append(i)
elif i < 66:
dic.setdefault("k2", []).append(i) print(dic) #输出:
#{'k2': [11, 22, 33, 44, 55], 'k1': [77, 88, 99, 90]}
五、 列表
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei lis = ["yanglei","gangdan","yanglei","xiaolan","xiaolv"] print(lis, type(lis)) print(lis[1]) print(lis[0:3]) lis.pop()
print(lis) print(lis.index("gangdan")) print(lis.count("yanglei")) lis.append("xiaohong")
print(lis) lis.insert(1,"xiaolv")
print(lis) lis.remove("xiaolan")
print(lis) #输出:
#['yanglei', 'gangdan', 'yanglei', 'xiaolan', 'xiaolv'] <class 'list'> #gangdan #['yanglei', 'gangdan', 'yanglei'] #['yanglei', 'gangdan', 'yanglei', 'xiaolan'] #1 #2 #['yanglei', 'gangdan', 'yanglei', 'xiaolan', 'xiaohong'] #['yanglei', 'xiaolv', 'gangdan', 'yanglei', 'xiaolan', 'xiaohong'] #['yanglei', 'xiaolv', 'gangdan', 'yanglei', 'xiaohong']
六、 集合
在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。创建集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常实用的方法。
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei s1 = {22,33,55,66,88}
s2 = {33,77,99,66} #交集
print(s1 & s2) #并集
print(s1 | s2) #差集
print(s1 - s2)
print(s2 - s1) #对称差集
print(s1 ^ s2) #输出:
#{33, 66} #{33, 66, 99, 77, 22, 55, 88} #{88, 22, 55} #{99, 77} #{99, 22, 55, 88, 77}
七、 for循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei s = "hello gangdan gangdan say hello sb sb" dic = {} for i in s.split():
if i not in dic:
dic[i] = 1
else:
dic[i] += 1
print(dic) #输出:
#{'hello': 2, 'gangdan': 2, 'say': 1, 'sb': 2}
八、 二进制
二进制实际上就是用10进制的数的每一位数字的2的幂数
来看例子:
然后再Python的操作中,只要在数字前面加上0b的字符,就可以用二进制来表示十进制数了。
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei print(0b1) print(0b10) print(0b11) print(0b100) print(0b101) print(0b110) print(0b111) #输出:
#1 #2 #3 #4 #5 #6 #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内码。
#!/usr/bin/env pyhon
#auth: yanglei print("中国") #输出:
#中国
编码与转码
十、 文件处理
对文件操作流程
- 打开文件,得到文件句柄并赋值给一个变量
- 通过句柄对文件进行操作
- 关闭文件
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei f_file = open("lock","r",encoding="utf-8")
for i in f_file.read()
print(i)
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语句
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
#!/usr/bin/env pyhon
#encoding: utf-8
#auth: yanglei import os with open("old.txt","r",encoding="utf-8") as f_read,\
open(".old.txt.swap","w",encoding="utf-8") as f_write:
res = f_read.read()
res = res.replace("xiaolan","yanglei")
f_write.write(res) os.remove("old.txt")
os.rename(".old.txt.swap","old.txt")
第二篇:python基础_2的更多相关文章
- 第二篇 python进阶
目录 第二篇 python进阶 一 数字类型内置方法 二 字符串类型内置方法 三 列表类型内置方法(list) 四 元组类型内置方法(tuple) 五 字典内置方法 六 集合类型内置方法(self) ...
- [转帖]虚拟内存探究 -- 第二篇:Python 字节
虚拟内存探究 -- 第二篇:Python 字节 http://blog.coderhuo.tech/2017/10/15/Virtual_Memory_python_bytes/ 是真看不懂哦 ...
- 【0728 | 预习】第三篇 Python基础
第三篇 Python基础预习 Part 1 变量 一.什么是变量? 二.为什么要有变量? 三.定义变量 四.变量的组成 五.变量名的命名规范 六.变量名的两种风格 Part 2 常量 Part 3 P ...
- 前端第二篇---前端基础之CSS
前端第二篇---前端基础之CSS 目录 一.css介绍 二.css语法 三.css的几种引入方式 四.css选择器 五.css属性相关 六.盒子模型 拓展 一.css介绍 CSS(Cascading ...
- python之路第二篇(基础篇)
入门知识: 一.关于作用域: 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 10 == 10: name = 'allen' print name 以下结论对吗? ...
- 第二章 python基础(一)
第一节 Python文件类型 源代码 Python源代码的文件以“py”为扩展名,由Python程序解释,不需要编译 字节代码 Python源文件经编译后生成的扩展名为“pyc”的文件 编译方法 im ...
- 第一篇:python基础
python基础 python基础 本节内容 python起源 python的发展史 为什么选择python3 第一个python程序 变量定义 表达式和运算符 用户输入 流程控制 判断 流程控制 ...
- 【Python之路】第七篇--Python基础之面向对象及相关
面向对象基础 基础内容介绍详见一下两篇博文: 面向对象初级篇 面向对象进阶篇 其他相关 一.isinstance(obj, cls) 检查obj是否是类 cls 的对象 class Foo(objec ...
- 【Python之路】第六篇--Python基础之模块
模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...
随机推荐
- python剑指offer剪绳子
题目 给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],…,k[m].请问k[0]k[1]…*k[m]可能的最大乘积是多少 ...
- GB MB KB B 关系
1KB=1024Bytes=2的10次方Bytes 1MB=1024KB=2的20次方Bytes 1GB=1024MB=2的30次方Bytes 1TB=1024GB=2的40次方Bytes
- linux 环境能变量配置
1, 3.配置环境变量 在/etc/profile文件末尾中添加以下环境变量:(我上面的JDK目录是jdk1.6.0_45,所以下面JAVA_HOME中也是这个) export JAVA_HOME=/ ...
- js函数带括号和不带括号赋给对象属性的区别
注意: 1.js为对象添加函数时,不要在函数后面加().一旦加了括号是表示将函数的返回值赋给对象的属性. 例:function test(){ document.writeln("我是js函 ...
- 2.在Cisco Packet Tracer里交换机默认网关的配置(实现跨网段telnet)
我们将在此拓扑图的基础上进行实验 大多命令都可用tab键位来补齐 1.分别给pc机设置好ip地址 pc2为:192.168.1.1 pc3为:192.168.2.1 两台计算机处在不同的网段之中 2. ...
- Python知识点入门笔记——基本运算和表达式
变量:Python的变量不需要单独定义,直接在赋值的过程中完成定义. 当直接运行一个没有赋值过的变量时,会报错. 当不需要某个变量时,可以用del来删除 每个变量都占据着一定的内存空间,当变量被删除了 ...
- 关于debug
2019-04-05 11:18:15 1. debug 需巧用两个工具 1.1 用‘#’把感觉会出错的代码段注释掉 多行注释有两种快捷操作: 在需要注释的多行代码块前后加一组三引号''' 选中代 ...
- Oracle redo与undo 第二弹
首先看一下undo与redo的字面意思: undo:撤销,也就是取消之前的操作. redo:重做,重新执行一遍之前的操作. 什么是REDO REDO记录transaction logs,分为o ...
- IIC简介(转载)
来自:https://www.cnblogs.com/zalebool/p/4214599.html IIC简介: IIC 即Inter-Integrated Circuit(集成电路总线),这种总线 ...
- Robo 3T
开源,免费的MongoDB桌面管理工具. [官方地址] https://robomongo.org/ https://studio3t.com/