Python基础笔记

前言

在实验楼根据python路线学习了基础,把一些知识点记录下来方便记忆

基本特性

赋值

a, b = b, a + b表示先对右边的表达式运算,再把运算的值给左边,即等价于
t1=b
t2=a+b
a=t1
b=t2

列表

letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

+ [a:b:c]切片索引
左边第一个元素的索引为 0,而长度为 n 的列表其最后一个元素的右界索引为 n。
省略的第一个索引默认为零,省略的第二个索引默认为切片的字符串的大小.
一个过大的索引值将被列表实际长度所代替,当上边界比下边界大时返回空列表.
c是步长,每隔c个字符取值,默认为1
对切片赋值,可以改变列表的尺寸,或清空它:
letters[2:5] = [‘C’, ‘D’, ‘E’]
letters[:] = []
'c' in letters 检查值的存在
if 列表名检查列表为空
多维嵌套:
x=[[‘a’, ‘b’, ‘c’], [1, 2, 3]]
x[0][1]=’b’
+ for循环
for x in a
或者for x in a[a:b:c]
+ 生成等差序列
for x in range(a,b,c)
list(range(a,b,c))
+ 对列表元素操作的函数
len(列表名)长度
append(元素) 添加元素到末尾
insert(位置,元素) 在索引位置插入元素
count(元素)统计元素数目
remove(元素)删除所有等值元素
列表[t:t+1]=[]或者del 列表[t]删除指定位置元素
reverse()反转列表
a=a+b或者a=extend(b)连接两个列表a和b
for i,x in enumerate(序列名)返回索引的位置和元素值
+ 列表推导式
squares = [x**2 for x in range(10)]
或者p = [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
或者z = [x + 1 for x in [x ** 2 for x in a]]
+ 同时遍历两个序列类型,你可以使用 zip()
a = [‘Pradeepto’, ‘Kushal’]
b = [‘OpenSUSE’, ‘Fedora’]
for x, y in zip(a, b):
print(“{} uses {}”.format(x, y))
Pradeepto uses OpenSUSE
Kushal uses Fedora
+ 遍历列表(或任何序列类型)的同时获得元素索引值,你可以使用 enumerate()
for i, j in enumerate([‘a’, ‘b’, ‘c’]):
print(i, j)
0 a
1 b
2 c

元组

不可变类型
创建只含有一个元素的元组,在值后面跟一个逗号。
a=(123,)
可以执行拆封操作并赋值给多个变量
x, y = divmod(15,2)

集合

集合是一个无序不重复元素的集
{}或者set()来创建

字典

字典是是无序的键值对(key:value)集合,键是不可变类型.
+ 创建新的键值对
字典[newkey]=newvalue
+ dict() 可以从包含键值对的元组中创建字典。
dict(((‘Indian’,’Delhi’),(‘Bangladesh’,’Dhaka’)))
得到{‘Indian’: ‘Delhi’, ‘Bangladesh’: ‘Dhaka’}
+ 遍历字典
for x, y in data.items()
+ 查找键的值
如果字典中包含有给定键,则返回该键对应的值;
如果没有这个键,则创建一个新的键值对,返回为该键设置的值(不写第二个参数默认是None,写了就是值)。
字典.setdefault(key, default=None)
+ 索引
用字典[key]索引不存在的key会报错,采用get()函数能不报错返回指定值.
字典.get(key,default=None)

字符串

s=”you are good”
+直接连接字符串
swapcase()大小写交换
isalnum()检测全为字母数字
isalpha()只有字母
strip(剥离字符)默认剥离左边空格和右边换行符,还有lstrip和rstrip
split(分割符)用分割符划分字符串为列表,默认为空格
find(目标字符串)用来在原字符串找目标字符串,返回目标字符串首字符的位置
连接符.join(列表)用连接符连接成字符串
s=”you are good”
print(“-“.join(s.split()))
you-are-good

高阶函数

使用一个或多个函数作为参数,返回另一个函数作为输出
+ map(函数,列表)
把列表的每个元素变成对应函数值,生成新列表。这个函数里边可以是查字典dict方法,也可以是匿名函数单表达式lambda
+ reduce(函数,列表)和 reduce(lambda 变量:变量处理方法,列表)
是把列表前后两个值按函数累计起来,得到的值继续和下个元素累计。
+ reduce(lambda x,y :x+(y/10**len(str(y))) ,map(int,s.split('.')))
整数和小数部分分开成列表两个元素,小数部分的数除10^长度来变成小数
+ filter(函数,列表)筛选函数
构建列表里每个值满足函数的新的惰性列表
+ sorted(列表,key=定义大者函数,反转reverse=1)
用来排序
+ 新函数名=functools.partial(旧函数名,初始化的参数)
偏函数

文件

fobj=open(文件名,r/w/a)打开文件,默认为r
close()关闭文件
read()读整个文件
readline()读一行
readlines()读多行到列表
for x in fobj也可以读多行
import sys
if len(sys.argv) < 3:
print(“Wrong parameter”)
print(“./copyfile.py file1 file2”)
sys.exit(1)
f1 = open(sys.argv[1])
s = f1.read()
f1.close()
f2 = open(sys.argv[2], ‘w’)
f2.write(s)
f2.close()
with open(‘sample.txt’) as fobj:能自动使用关闭文件

异常

try..except...为例外指定处理
raise语句允许程序员强行产生指定的例外
finally在任何情况下都一定要执行

模块

if __name__ == '__main__':当模块被执行时,这个作为主函数执行;当模块被导入时,这个部分不执行.

高级特性

迭代器

迭代器是一种检查容器内元素并遍历元素的数据类型
__iter__(),返回迭代器对象自身。这用在 for 和 in 语句中。
__next__(),返回迭代器的下一个值。如果没有下一个值可以返回,那么应该抛出 StopIteration 异常。

生成器

生成器是一次生成一个值的特殊类型函数.在 While 循环中,每当执行到 yield 语句时,返回指定变量

生成器表达式

迭代和列表解析的组合

闭包

在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用

装饰器

返回包装对象实现间接调用,以此插入额外逻辑。@functools.wraps(原函数) 将原函数对象的指定属性复制给包装函数对象。

面向对象编程

  • 创建类
    class 类名 (object):
    def init(self,。。。)
    类中的函数都要加(self)
  • 函数等级
    前无下划线的函数的公开函数。
    _函数单下划线的是类和子类可访问的保护函数
    __函数双下划线的仅是类可访问的私有函数
    __函数__两边双下划线的是特殊函数
  • 封装
    客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏
  • 继承:让某个类型的对象获得另一个类型的对象的属性的方法。
  • 多态:一个类实例的相同方法在不同情形有不同表现形式。

面向对象的高级编程

  • __slots__ = (属性名1,属性名2.。。。)限制类可绑定的属性名,对其子类无效。
  • 两个把函数变成类的属性方法函数装饰器,体现读写性。
    @property能把获取值函数变成类属性来返回值,即读。
    @函数名.setter能够把设定值方法变成类属性来检查和赋值,即写。
  • 多重继承
    子类(父类1,父类2,。。。)
利用 TensorFlow 训练自己的目标识别器。本文内容来自于我的毕业设计,基于 TensorFlow 1.15.0,其他 TensorFlow 版本运行可能存在问题。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值