python 二进制写入字典_python基础复习

一、python的特点

简介:编程语言分为两大类,分别是编译型和解释型,例如c语言属于编译型的语言,而python属于解释型的语言,编译型的语言需要经过编译后成为程序执行,速度较快,而python每输入一条语句就可以别解释执行,但速度比较慢,就程序员来说,python的开发效率更高。

1. 简单

Python是一种代表简单思想的语言。

2. 易学

Python有极其简单的语法。

3. 免费、开源

Python是FLOSS(自由/开放源码软件)之一。

4. 高层语言

使用Python编写程序时无需考虑如何管理程序使用的内存一类的底层细节。

5. 可移植性

Python已被移植到很多平台,这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC。

6. 解释性

可以直接从源代码运行。在计算机内部,python解释器把源代码转换为字节码的中间形式,然后再把它翻译成计算机使用的机器语言。

7. 面向对象

python既支持面向过程编程也支持面向对象编程。

8. 可扩展性

部分程序可以使用其他语言编写,如c/c++。

9. 可嵌入型

可以把Python嵌入到c/c++程序中,从而提供脚本功能。

10. 丰富的库

Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。

二、python保留字

截图来自《python开发技术详解》

总共为32个保留字。

三、常用的输入输出函数

简介:python常用的输入输出函数为input、print

#输入函数——input()

'''例如:给a赋值,无论输入的是整型(int)、浮点型(float)、还是字符串(str),都会以字符串的方式赋值给变量,变量再赋值的时候确定类型。鉴于此,我们需要使用强制类型转换来将str->int,str->float'''

#1、输入字符串

aStr=input("输入字符串")#input括号内的内容为提示性文字,由于输入的内容将以字符串保存,不用转换类型。

aInt=int(input("输入整型数字"))#通过int()将原本为"int"->int

aFloat=float(input("输入一个浮点数"))#通过float()将原本为"float"->float

print(aStr)

print(aInt)

print(aFloat)

#2、输出函数

#输出函数print,使用比较灵活,可以直接print(变量名),若要格式化输出则类似C语言,不同之处在于格式,或者使用格式化输出函数

#2.1直接输出变量名

print(aInt)

#2.2使用+来拼接字符串

print("字符串"+"可以拼接,还可以拼接‘字符串变量’"+aStr)

#2.3使用%进行格式化输出

print("这是字符串:%s,这是整型:%d,这是浮点型%f"%(aStr,aInt,aFloat))

print("格式化输出浮点数:%6.3f"%aFloat)#%6.3f表示小数点后面精确到3位,总长度6位数,包括小数点,不够左侧补空格

#Python 3.X对于浮点数默认的是提供17位数字的精度

#2.4 str.format()函数的使用

print("你好!,我是{0},今年{1}岁".format("汤姆","12"))

四、python里面支持的数据类型number(数字),又分为int,float

str(字符串)

List(列表)

Tuple(元组)

Set(集合)

Dictionary(字典)

Python3 的六个标准数据类型中:不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

五、range()函数

'''range()函数是表示范围的函数,可设置步长,如可以123456789,也可以134679'''

#基础用法

'''用i依次保存从1-10,但不包括10,即1-9,并打印输出'''

for i in range(1,10):

print(i)

#设置步长

for i in range(1,10,2):

print(i)

六、定义函数与类的关键字

#定义一个函数:def(可以理解为define,定义,声明)

def function():

pass#pass 是为了函数的完整性,表示什么都不做

#声明一个类:class

class People:

name="xiaoming"

sex="男"

age=15

#类的使用

people1=People()#实例化,people1拥有People的所有功能与属性,属性的调用不加()

print(people1.name)

print(people1.age)

print(people1.sex)

对象和类的关系:对象是类的实例,如人是一个类,具体的某一个人就是对象。

七、随机函数的使用

简介python的random模块用于生成随机数,此模块需要调用import random

import random

#生成一个0-1内的随机小数

a=random.random()

print(a)

#生成指定范围的随机浮点数

b=random.uniform(1,10)

print(b)

#生成指定范围的整数

c=random.randint(1,10)

print(c)

#从指定范围内,按指定基数递增的集合中 获取一个随机数。

#random.randrange(10, 30, 2),结果相当于从[10, 12, 14, 16, ... 26, 28]序列中获取一个随机数。

d=random.randrange(10,30,2)

print(d)

'''random.choice从序列中获取一个随机元素。其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。'''

list1=["python","sfdsf","2324"]

seq="fasfsdf"

seq1=random.choice(list1)

seq2=random.choice(seq)

print(seq1)

print(seq2)

八、numpy函数

简介:关于numpy的更多用法见董付国编著的《python程序设计基础》第二版的246页。

import numpy

#把列表转化为数组

a=numpy.array((1,2,3,4))

print(a)

#全0二位数组,零矩阵

array0=numpy.zeros((3,3))

print(array0)

#全1的二维矩阵

array1=numpy.ones((3,3))

print(array1)

#单位矩阵

array3=numpy.identity(3)

print(array3)

九、数据分析pandas函数

关于pandas的更多用法见董付国编著的《python程序设计基础》第二版的264页。

简介:pandas是基于numpy的数据分析模块,pandas提供3种数据结构:Series,带标签的一维数组

DataFrame,带标签且大小可变的二位表格结构

Panel,带标签且大小可变的三维数组

生成一维数组:

import pandas as pd

import numpy as np

x=pd.Series([1,2,3,4])

print(x)

说明:第一列为标签

dates=pd.date_range('20180310',periods=6)

df = pd.DataFrame(np.random.rand(6,4), index=dates, columns=['A','B','C','D'])#生成6行4列位置

print(df)#输出6行4列的表格

说明:np.random.rand(6,4)为生成6行4列的随机0-1内的小数,index为行标签,column为列标签

十、正则表达式

关于正则表达式的更多用法见董付国编著的《python程序设计基础》第二版的174页。

import re

string="1223dsfsdDDS你好"

a=re.search('[0-9]{4}',string)#匹配4个数字

b=re.search('[a-zA-Z]{8}',string)#匹配英文字母

c=re.search('[\u4e00-\u9fa5]{2}',string)#匹配汉字

print(a)

print(b)

print(c)

说明:如需要直接获取匹配坐标,直接在re.search().span()即可。

十一、python访问二进制的模块

#使用pickle模块读写二进制文件

import pickle

data="dfadsafdsfdsafdsfes"

with open('sample_pickle.dat','wb')as f:

try:

pickle.dump(len(data),f)#要序列化的个数

for item in data:

pickle.dump(item,f)#序列化数据并写入文件

except:

print('写入文件异常')

with open('sample_pickle.dat','rb') as f:

n=pickle.load(f)#读取文件中的数据个数

for i in range(n):

x=pickle.load(f)#读取并反序列化每个数据

print(x)

另有模块:struct、shelve,操作类似,具体见董付国编著的《python程序设计基础》第二版的196页。

十二、python的异常处理

try:

#运行别的代码

except :

#如果在try部份引发了'name'异常

except ,:

#如果引发了'name'异常,获得附加的数据

else:

#如果没有异常发生

基础用法1:

try:

a=1

b=a/0

except:

print("程序异常!")

基础用法2——捕获异常:

try:

a=1

b=a/0

except Exception as e:

print(e)

基础用法3——try-except-else:

try:

a=1

b=a/0

except Exception as e:

print(e)

else:

print("程序正常")

try:

a=1

b=a/1

except Exception as e:

print(e)

else:

print("程序正常")

*由此可见,else下面的语句只有在没有异常才会执行。

基础用法4——try-except-finally

try:

a=1

b=a/0

except Exception as e:

print(e)

finally:

print("finally执行")

try:

a=1

b=a/1

except Exception as e:

print(e)

finally:

print(

*由此得出finally语句无论程序是否异常,finally都会执行。

十三、python的两个版本

1、python2.x

2、python3.x

我们现在使用的为python3.x版本,python3和python2不兼容

十四、逻辑运算

a = 10

b = 20

if a and b:

print("1 - 变量 a 和 b 都为 true")

else:

print("1 - 变量 a 和 b 有一个不为 true")

if a or b:

print("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")

else:

print("2 - 变量 a 和 b 都不为 true")

# 修改变量 a 的值

a = 0

if a and b:

print("3 - 变量 a 和 b 都为 true")

else:

print("3 - 变量 a 和 b 有一个不为 true")

if a or b:

print("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")

else:

print("4 - 变量 a 和 b 都不为 true")

if not (a and b):

print("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")

else:

print("5 - 变量 a 和 b 都为 true")

十五、类方法中如何调用类成员,如何调用实例成员

#类是对现实世界共性的一个抽象,这个抽象具有这些群体共有的功能和属性。

#定义一个类和成员方法

class People:

def fun1(self):

print("类的成员方法!")

#实例化对象,说白了就是你要使用类的东西,就需要在现实中将抽象实例化

people=People()

print(people.fun1())

#类是对现实世界共性的一个抽象,这个抽象具有这些群体共有的功能和属性。

#定义一个类和成员方法

class People:

'''这是一个注释,也就是帮助文档,当别人调用这个类的时候,想知道它的信息,就可以写在这里,通过类名.__doc__查看'''

def fun1(self):

print("类的成员方法!")

#实例化成员,说白了就是你要使用类的东西,就需要在现实中将抽象实例化

people=People()

print(people.fun1())

关于类成员的分类:_xxx: 以_下划线开头,保护成员,只有类的对象和子对象可以访问这些成员

__xxx:以__下划线开头或更多的下划线,但不以两个或更多下划线结束,表示私有成员,只有类对象自己可以访问,子类不能访问

__xxx__:系统定义的特殊成员

数据成员:数据成员可以分为两类:属于对象的数据成员和属于类的数据成员。属于对象的数据成员一般在构造方法中定义,也可以在其他方法中定义。在定义和在实例方法中访问数据成员时以self作为前缀;属于类的成员数据属于该类所有对象共享,不属于任何一个对象。

析构方法:此方法一般无须定义,因为Python是一门高级语言,程序员在使用时无需关心内存的分配和释放,因为此工作都是交给Python解释器来执行,所以,析构函数的调用是由解释器在进行垃圾回收时自动触发执行的。

#类是对现实世界共性的一个抽象,这个抽象具有这些群体共有的功能和属性。

#定义一个类和成员方法

class People:

'''这是一个注释,也就是帮助文档,当别人调用这个类的时候,想知道它的信息,就可以写在这里,通过类名.__doc__查看'''

def __init__(self,name,age,sno):#这是一个构造方法,一个class只能有一个用于构造对象的__init__函数

self.name=name

self.age=age

self.sno=sno#这三个数据成员属于对象的数据成员

def __del__(self):#模拟的析构方法

print("--->del")

eyesNumber=2

earsNumber=2#这两个数据成员属于类的数据成员

people1=People("Jordan",51,202022)

print(People.eyesNumber)#访问类的数据成员

print(people1.name)#访问实例对象的数据成员

#假如我们以类名的方式来访问对象的数据成员便会出错

print(People.name)

具体的方法类型和使用见董付国编著的《python程序设计基础》第二版的132页。

十六、文件的操作

文件打开的模式见董付国编著的《python程序设计基础》第二版的190页。

文件对象的常用方法见董付国编著的《python程序设计基础》第二版的191页。

f=open("text1.txt",'r',encoding='utf-8')#打开文件

for line in f:

print(line)

f.close()#关闭文件

#写文件

with open('text_write.txt','w') as f:

f.write("这是一个写入的文件,此文件会被自动创建")

#with 的用法可以自动在写完后关闭文件

文本文件的复制:借助shutil模块来完成拷贝操作

更多拷贝用法见董付国编著的《python程序设计基础》第二版的211页。

import shutil

shutil.copy('text1.txt','text2.txt')#第一个参数为被复制文件路径,如果文件在当前工作目录下,则不需要加入完整路径

十七、给出一个列表、元组,使用内置函数进行过滤

更过内容见董付国编著的《python程序设计基础》第二版的51页。

'''给出一个列表、元组,使用内置函数进行过滤.'''

#创建一个列表

list1=[4,5,6,2,7,0]

#排序

print(sorted(list1))

#最大值、最小值

print(max(list1))

print(min(list1))

#列表的个数

print(len(list1))

#求和

print(sum(list1))

#倒置

print(list1)#倒置前

b=reversed(list1)

print(list(b))#倒置后

#filter过滤

def maxthan(n):

return n>5

newlist=filter(maxthan,list1)#filter第一个参数为函数,第二个为需要过滤的数据

print(list(newlist))

十八、匿名函数和参数

更多用法见董付国编著的《python程序设计基础》第二版的97页和105页。

参数:以下是调用函数时可使用的正式参数类型:必需参数

关键字参数

默认参数

不定长参数

1、必需参数

def func(x):

pass

x为必需参数,即在调用时必需输入的参数

2、关键字参数

关键字参数就是指定参数名,不用像必需参数那样按顺序输入

def func1(x,y):

return x+y

a=func1(x=1,y=2)

#或者a=func2(y=2,x=1)

3、默认参数

默认参数为在定义函数时就为参数赋值,并且默认参数必须放在其他参数之后

def func2(x,y=9):

return x+y

c=func2(8)

print(c)

4、不定长参数

不定长参数就是在函数定义时不确定参数有几个,加了星号*的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

def func4(*x):

return x

x=func4(1,2,3,4,5)

print(x)

匿名函数:python 使用 lambda 来创建匿名函数。

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。lambda 只是一个表达式,函数体比 def 简单很多。

lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。

lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。

虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。

#lambda求和

sum=lambda arg1,arg2:arg1+arg2

print(sum(1,2))

十九、求类似1/(3+1)...1/(3*n+1),1/(3*n+2)的和

'''求类似1/(3*n+1),1/(3*n+2)的和'''

def sum1(n):

sum_=0

for i in range(1,n+1):

sum_+=1/(3*n+1)

return sum_

print(sum1(2))

二十、python的常用开发环境

自带的IDIE、pycharm、anaconda、ipython等

二十一、字典和列表的添加和删除函数

这个比较基础,见董付国编著的《python程序设计基础》第二版的42页和62页。

二十二、x==0的返回值,为bool类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值