《Python编程从入门到实践》
table of content
二、数据类型
.title():开头大写
.upper()/.lower():大/小
.()rstrip:删除右侧空白
lstrip/strip:删除左侧/两端空白
** 表示乘方、次方
str 变字符串
#行注释
三、列表
[-n] last n value
.append(’’) 末尾添加
.insert(n,’’) 插入
del a[n] 删除
.pop(n) 删除并输出
.remove(’’) 根据值删除frist value
.sort 永久排序reverse=True
sorted() 临时排序
.reverse 反转列表
len(a) 长度
四、列表操作
4.1 生成列表
- a=list(range(n1,n2,step))
- a=[’’,’’]
- a=list(’’)
- a=[value for value in range(n1,n2)]
- a=b[n1:n2] Ps:a=b是同一个列表
4.2 列表基操
for a in b: 遍历b,缩进即循环
range(n1,n2,step) 生成n1—n2-1 value
list(’’) 生成列表
min()/max()/sum() 最小/最大/和
[n1:n2] 切片,n1到n2
4.3 元组
() round brackets initialize
可理解成const数组?
4.4 同一格式
PEP 8 格式要求
缩进 4个blank
五、if
if bool:elif bool:else:
布尔bool类型 True False
and/or 配合使用
(not) in 特定值是否(不)包含在列表
条件符号两边加blank
六、字典
6.1 使用
a={‘key’ : value , …} 键—值对
a[‘key’] 访问
a[‘key’]=value 添加
del a[‘key’] 删除
6.3 遍历
.items() 返回一个键值对list
.keys() 返回键list
.values() 返回值list
set() 剔除重复多余值
6.4 嵌套
表 存 典
典 存 表
典 存 典
七、输入 while
7.1 输入
input(‘explain’) 回车输入字符串
int(‘explain’) 输入数值
% 模运算符,返回余数
7.2 while
while a < n :
break 退出循环
continue 跳到下次循环延续
Ctrl+C 中止程序
.pop() 末尾出栈
.remove(‘value’) 删除特定值
八、函数
8.1 定义
“”" “”" 注释
注释错误解决:
开头添加#coding=gbk或#coding=utf-8
8.2 实参
function(param=value) 关键字实参,不用考虑位置
def function(param=value) : 设置默认值
8.4 传递列表
= 永久性修改
lis[ : ] 传递副本,不修改
8.5 任意数量实参
def function( * param) 创建空元组接收
8.6 模块
import module #导入模块,py文件,复制
module.function() #调用模块函数
from module import function1,function2 #导入特定函数,无需上述句号
from module import function as function2 #指定函数名
import module as module2 #指定模块名
from module import * #导入所有函数
九、类
class Name() : #创建类
def __init__(self , param) :
self.param = param
def function(self) : #每个方法默认有self
9.3 继承
class Name2(Name) : #继承Name类
def __init__(self , param) :
super().__init__( param) #关联父子类
name.name2.param() #调用其他类方法,独立成类
十、文件
10.1 读取整个文件
with不用异常检测,区别繁琐try
with open('path') as file_name : #windows系统路径用反斜杆\
contents=file_name.read() #读取全部
print(contents.rstrip()) #删除右侧空白/换行符,strip左侧
with ... as ... #上下文的管理协议,简化异常检测try,文件只能内部使用
open() #返回文件对象
行读取
for line in file : #rstrip配合使用
.readlines() #列表储存,可用于with外部
10.2 写入
不同模式
open(path , '') #'w'写入,'r'读取,'a'附加(不覆盖),'r+'读写
.write('') #非自动换行
10.3 异常
预设异常,防止出现意外停止
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
try-except #防止异常停止
try-except-else #没异常执行else
.split() #空格为分隔存储列表
pass #什么都不做
存储数据
json格式可以保留原格式
json.dump()和 json.load()
import json #导入模块
data = [2, 3, 5, 7, 11, 13]
filename = 'data.json'
with open(filename, 'w') as file:
json.dump(data, file) #写入转存
with open(filename) as file:
numbers = json.load(file)
十一、测试
测试程序,发现问题bugs
unittest模块
测试function处理的parma1是否等于parma2
import unittest
class Test(unittest.TestCase) #继承TestCase
def name(self):
name = function(parma1)
self.assertEqual(name, parma2)
unittest.main()