勤学教育网合作机构> > 广州叩丁狼教育欢迎您!
广州叩丁狼教育banner
python学习网>

python学习总结

1

python 学习总结

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python可以用于很多的领域,从科学计算到游戏开发。同样Python是一种脚本语言,而且对于初学编程的人来说这是一条康庄大道。下面小迹就介绍一下初学时,应该做哪些事。以下是小编为你整理的python学习总结

首先是版本的选择,Python2和Python3两个版本各有优缺,Python2由于是比较早的版本,因此资料相对多;而Python3是以后的发展趋势,一般企业久而久之都会转成使用P3。根据自己的实际情况选择,虽然是两个版本,但差异也不大,通常一个学会以后另一个版本花些时间就可以。


python学习总结

所有初学者面临的第一个问题便是:如何选择教材,好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校或教育机构通常会指定一本不是特别好的Python课本,因此我们需要去百度或者知乎等平台看看大家是如何选购学习教程的;

书本的选购完成后,我们需要查看是否有配套的视频教程,可以通过百度或者去某些平台购买实时授课,这样在学习过程中遇到的问题就可以得以解答,而不是无头苍蝇,浪费了过多时间;

书和视频已搞定,那就是环境配置了,PC平台的环境配置以及库的安装,对于能否成功运行Python文件,有着关键的作用。不懂事要学会自己百度搜索相关的资源,一般你遇到的问题许多人也遇到过;

就是仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。

2

怎么打开path1路径

# path1路径 w:只写打开文件 utf-8:以怎样的编码打开文件 as f:打开后接口存为fwith open(path1, 'w', encoding='utf-8') as f: pass

with open(path1, 'w', encoding='utf-8') as f: s = 'good.123.love.456.make' f.write(s) f.flush() # 刷新缓冲区,类似于word中点击保存 f.seek(0) f.write('dog') # 代码执行后,会自动关闭文件。

with open(path, 'a', encoding='utf-8') as f: f.write('ying') f.flush() f.seek(0) f.write('love')

path = r'D:desk4.txt'with open(path, 'wb') as f: s = 'good morning 水立方' code = s.encode(encoding='utf-8') f.write(code)

# 查看4.txtpath = r'D:desk4.txt'with open(path, 'r', encoding='utf-8') as f: print(f.read())

3

如何设置生成器

from collections import Iterable, Iterator # 引入包# 将列表生成式的方括号改成圆括号,返回结果就不是列表了,而是一个生成器。g = (i for i in range(10))print(g)

print(isinstance(g, Iterator)) # 生成器属于迭代器。print(isinstance(g, Iterable)) # 生成器属于可迭代对象。print(isinstance('good', Iterator)) # 字符串等容器属于可迭代对象,但是不属于迭代器。

# 生成器每次被访问都会记录自己被访问的位置next(g) # 通过next()访问生成器中的下一个元素print(next(g))


如何设置生成器

# for-in遍历生成器会直接从记录的位置访问到最后for i in g: print(i, end=' ')print()

# next(g) # 访问到最后一个,就不能在访问了,否则崩溃g = (i for i in range(10))# 使用next()访问生成器中特定数量的数据# 生成器,访问一个加载一个,不访问不加载:俗称懒加载或惰性加载。for i in range(6): print(next(g))

# 利用函数创建生成器def back_genarator(n): print(111111) for i in range(n+1): print(2222222) yield i print(3333333)

# 生成器记录的是算法规则,依次加载# 调用next()才开始执行生成器内部的代码,每调用一次next,代码会走到yield,将结果抛出,然后代码暂停# 如果已经访问到最后一个yield,就代码生成器结束了,不能再次调用next()g = back_genarator(3)print(next(g))print(next(g))

4

面向对象编程基础

1,基本思想:类和实例。类是抽象的,例如“人”(注释:是哪个人,哪种人,哪里人,叫什么?等等)实例是具体的,例如“人”中的这个叫“小明”“小红”等具体实例。

1.1定义类并创建实例

定义类:

在Python中,类通过 class 关键字定义。以 Person 为例,定义一个Person类如下:

class Person(object):

pass

按照 Python 的编程习惯,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。

创建实例:

有了Person类的定义,就可以创建实例。实例使用 类名+(),类似函数调用的形式创建:

xiaoming = Person()

xiaohong = Person()

举例:定义Person类,并创建出两个实例,打印实例,再比较两个实例是否相等。

class Person(object):

pass

xiaoming = Person()

xiaohong = Person()

print xiaoming

print xiaohong

print xiaoming == xiaohong

返回结果是:

<__main__.Person object at 0x7fcdf36564d0>

<__main__.Person object at 0x7fcdf366b850>

False

1.2创建实例属性:

可以直接给他们的属性赋值,例如:

xiaoming = Person()

xiaoming.name = 'Xiao Ming'

注:

实例的属性可以像普通变量一样进行操作:

xiaohong.grade = xiaohong.grade + 1

1.3初始化实例属性:

Person类应该在创建的时候就拥有 name、gender 和 birth 属性.

在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用.例如:

class Person(object):

def __init__(self, name, gender, birth):

self.name = name

self.gender = gender

self.birth = birth

这样就为每个实例统一加上以上属性了。

__init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法)。

访问实例属性可以直接

print xiaoming.name

1.4访问限制:有些属性不想被访问,可以直接在前面加双下划线开头__,这种属性叫该实例的私有属性。。

注意:一般情况下最好不要使用__xxx__或者_xxx来定义属性。

1.5创建类属性:

定义类属性可以直接在 class 中定义:

class Person(object):

address = 'Earth'

def __init__(self, name):

self.name = name

类的属性

访问类属性不需要创建实例,就可以直接访问:

>>>print Person.address

Earth

注:类属性只有一份,实例可以有很多个;类里面的实例都可以访问到类的属性。类的属性可以修改,通过直接赋值的方式即可。例如:

Person.address = 'China'

注意:千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。

1.6 python中定义实例方法:

class Person(object):

def __init__(self, name):

self.__name = name

def get_name(self):

return self.__name

get_name(self) 就是一个实例方法,它的第一个参数是self。__init__(self, name)其实也可看做是一个特殊的实例方法。

注:调用实例方法必须在实例上调用:

p1 = Person('Bob')

print p1.get_name() # self不需要显式传入

=> Bob

注:函数调用不需要传入 self,但是方法调用需要传入 self。

因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法:

1.7python中定义类方法:

在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。

要在class中定义类方法,需要这么写:

class Person(object):

count = 0

@classmethod

def how_many(cls):

return cls.count

def __init__(self, name):

self.name = name

Person.count = Person.count + 1

print Person.how_many()

p1 = Person('Bob')

print Person.how_many()

通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。

因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。

以上是广州叩丁狼教育整理的python学习总结全部内容。

热门推荐

广州 勤学教育信息技术有限公司@版权所有 粤ICP备10236336号-1