python学习笔记
数据类型
字符串
单引号,双引号包围都可
.upper()
.lower()
.title()
+:合并字符串
\n:换行符
\t:制表符
.strip():删除字符两端空白
.lstrip():删左端
.rstrip()
str():将非字符变为字符
int():将字符型数值转换为数值
数字
整数:支持四则等直接运算
浮点数
列表
由任意特定顺序元素组成,[]表示
列表长度:len()
创建数值列表
list(range(1,6))生成列表[1,2,3,4,5]
指定步长list(range(1,8,2))生成列表[1,3,5,7]
数值列表的运算:
min()求最小
max()
sum()
列表解析numbers=[n for n in range(1,10)]
访问元素:通过索引标号访问,索引-1访问列表最后一个元素,如lists[-1]
添加元素:
.append()在末尾添加元素,
.insert(索引,元素)在指定位置添加元素
删除元素:
del语句:del 元素
.pop()删除末尾的元素,.pop(索引)删除指定索引的元素
删除指定的值:remove(指定的值)
排序:
.sort()对列表元素按字母顺序永久性排序a~z,反序,将参数reverse=True
sorted()临时排序
.reverse()对列表元素永久性倒着进行排序
遍历列表
numbers=[1,2,3]
for n in numbers:
print(n)
切片
numbers[0:3]包含0~2的3个元素的列表
[:3]包含除第3个之前的所有元素的列表
[3:]包含3之后所有元素的列表
[-3:]最后三个元素
复制
numbers1[1,2,3]
numbers2=numbers1 #两个列表是一个
numbers2=numbers1[:]#正确的复制方法
元组:值不能修改的列表,()表示
numbers=(1,2)
numbers[0]=3#错误
numbers=(3,4)#虽然元素不能修改,但是元组可以重新赋值
字典
一系列键值对,{}表示
dog={'alice':'1','bob':'2','ben':'3'}
#访问
dog['alice']
#添加
dog['kevin']='4'
#删除
del dog['alice']
#遍历.items()
for key,value in dag.items():
print(key)
print(value)
#遍历键.keys(),另外遍历字典,默认遍历所有键
#遍历值.values(),但是值有重复,可以使用集合set()去重
# 有序字典的使用
from collections import OrderedDict
OrderedDict()创建一个有序字典
判断
and or 连接多个条件
检查特定值是否在列表中:元素 in 列表 #不在用not in
if语句:if-elif-else
循环
break:中断所有循环,退出
continue:不再执行这次循环后的语句,进入下一次循环
输入
message=input("提示信息")#将输入的值赋值给了message
函数
def 函数名(传递参数):
函数体
return 返回值
#定义函数时,参数指定了默认值,调用函数时,采用了指定的方式
def pet(name="alice",age)
print(name)
pet(name="ben",age=12)
#注意!传递列表参数时,如果不想改变列表本身,可以通过[:]传递列表副本
#形参使用*,如def 函数名(*传递参数),可以接受多个参数
#形参使用**,接受多个键值类型参数,如:
def pet(**descripe):
……
pet(name="alice",age=14)
#导入模块,如formulation.py文件下有函数pet,main.py中可以
import formulation#导入模块所有
formulation.pet()
from formulation import pet #导入特定函数
pet()
#导入模块所有函数
from formulation import *
#给导入模块起别名
import formulation as f
f.pet()
#给导入函数起别名
from formulation import pet as p #导入特定函数
p()
类
#定义
class Dog():
"""文档字符串"""
def __init__(self,name,age):#特殊方法,约定,self必不可少且自动传参
#所有方法都可以访问的变量属性
self.name=name
self.age=age
def sit(self):
print(self.name)
#继承
class BigDog():
def __int__(self,name,age)
#初始化父类属性
super().__int__(name,age)
#可以对父类方法进行重写
def sit(self):
print(self.age)
# 可以将实例作为属性
class Leg():
def __int__(self):
def broken(self):
print("")
class Dog():
def __init__(self,name,age):#特殊方法,约定,self必不可少且自动传参
#所有方法都可以访问的变量属性
self.name=name
self.age=age
self.leg=Leg()
def sit(self):
print(self.name)
#实例化
dog=Dog("alice",12)
dog.leg.broken()
#导入类与导入函数类似
文件操作
读取文件
with open('test.txt') as file_object:#返回file_object文件对象
#读取所有
contents=file_object.read()
#逐行读取
for line in file_object:
print(line)
#file_object.readlines()得到一个包含文件每行内容的列表
写入文件
默认以只读模式打开,r读,w写,a附加,r+读取和写入,w打开文件,将将文件清空且如果没有该文件,将自动创建
with open(filename,'w') as file_object:
file_object.write("string")
异常处理
try:
except 异常:
pass#可以在异常发生时跳过
else:
#try之后运行
json使用
import json
#保存json格式的文件
with open(file.json,'w') as file_obj:
json.dump(string,file_obj)
#导入json文件
with open(file.json) as file_obj:
json.load(file_obj)
测试
import unitest
class NamesTestCase(unittest.TestCase)#继承这个类
#每次它先执行,可以写,以提供一组预期答案
def setUp(self):
#定义测试方法
def
self.assertEqual(结果,预计)#断言,判断结果是否满足预期,还有assertNotEqual,assertIn,assertTrue等
uninttest.main()