Python 笔记

内容大部分来自:菜鸟

 

类的属性,方法和继承(参考

1.变量

1.全局变量,可以被任意函数,文件使用,达到全局同步,名字唯一性,尽量少使用,函数引用时,声明global
2.局部变量,仅存在对应作用域(随作用域释放),注意会覆盖同名的全局变量
3.静态变量(类公有变量),直接定义在类里,不是类方法里,可以直接通过类名访问,类内以及类的实例中可以同步共享
4.类的protect属性,可以被子类继承,能在类外被访问(应该主观上避免对 protected 属性的访问,但访问它也不会导致报错),和public的使用一样
5.类的private属性,不能被子类继承,不能被类外访问(不要盲目地将属性设为 private),可以通过类内方法调用(间接调用)

 

class A(object):
    # 静态变量
    sta_num = 0   # 公有属性,同下面的name
    _pro_num = 0   # 保护属性,同下面的_sex
    __pri_num = 0   # 私有属性,同下面的__age

    def __init__(self, name, age, sex):
        # public
        self.name = name
        # protect
        self._sex = sex  # 能类外引用,和public一样,只能命名上为protect属性,方便开发者识别
        # private
        self.__age = age   # 不能类外引用,可以通过类内方法调用(间接调用)

# 直接引用public对象,和protect对象
a.name = 'wumenglong'
print(a.name)
print(a._sex)
# print(a.__age)  不能引用类的私有属性
print(A.sta_num)
print(A._pro_num)
#print(A.__pri_num) 不能引用类的私有属性

 2.方法

 类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类__dict__里的

对象的__dict__中存储了一些self.xxx的一些东西

1.公有方法,不加装饰器,只能被类实例引用,且第一个参数时self(函数名开头不加__)
2.私有方法,'__'开头,不能在类外使用,即不能被实例引用,只能在类内被其他方法使用,注‘_’一个下划线开头也是公有方法
3.静态方法,@staticmethod,参数不受限制,可以被类名和类实例引用
4.类方法,@classmethod,第一个参数是cls,它表示类本身,可以被类名和类实例引用
注:如果用类方法调用静态方法,可以让cls代替类名,防止类名需要改变时,改动的地方比较多
class MyClass(object):
    name = 'Test'
    def __init__(self):
        self.func1()
        self.__func2()
        self.classFun()
        self.staticFun()
    def func1(self):
        print self.name,
        print "我是公有方法."
    def __func2(self):
        print self.name,
        print "我是私有方法."
    @classmethod
    def classFun(self):
        print self.name,
        print "我是类方法."
    @staticmethod
    def staticFun():
        print MyClass.name,
        print "我是静态方法."
# 内置方法
mc = MyClass()

 

3.继承

参考:继承

继承是面向对象的重要特性之一, 继承关系继承是相对两个类而言的父子关系,子类继承了父类的所有公有属性和方法, 继承,实现了代码重用

 1.如果父类定义了__init__方法,子类必须显式调用父类的__init__方法, ParentClass.__init__(self,[args...]) 或者super(子类,self).__int__([args...])

  • 经典类的写法: 父类名称.__init__(self,参数1,参数2,...)
  • 新式类的写法:super(子类,self).__init__(参数1,参数2,....)

2.多重继承, Python支持多重继承,第一个类可以继承多个父类,但是继承第一个父类的__int__方法

3.子类对父类的重写

运算符(按优先级高->低)

  • 四则
  • 位运算 : &(与), |(或), ^(异或,相同为0,相异为1), ~(非),>>(右移), <<(左移) (注:优先级没有四则运算高)
  • ==,=
  • 成员运算符 : in(元素在容器里面), not in(不在)
  • 逻辑运算符 : and, or, not (注:优先级最低)
以下表格列出了从最低到最高优先级的所有运算符:
运算符描述
lambdaLambda 表达式(优先级最低)
or布尔“或”
and布尔“与”
not x布尔“非”
in,not in成员测试
is,is not同一性测试
<,<=,>,>=,!=,==比较
|按位或
^按位异或
&按位与
<<,>>移位
+,-加法与减法
*,/,%乘法、除法与取余
+x,-x正负号
~x按位翻转
**指数
x.attribute属性参考
x[index]下标
x[index:index]寻址段
f(arguments...)函数调用
(experession,...)绑定或元组显示
[expression,...]列表显示
{key:datum,...}字典显示
'expression,...'(优先级最高)字符串转换

 注:Python 中没有 ++ 或 -- 自运算符

因为在 Python 里的数值和字符串之类的都是不可变对象,对不可变对象操作的结果都会生成一个新的对象。

 

容器

list

  • 初始化:L = []
  • 追加元素: L.append(1)
  • 删除元素:del L[0]
  • 切片:L[n:m]  # 得到索引n到m的列表(不包含m,若n为空,是开始,m为空是末尾,-1代表尾元素)
  • 切片:b = a[i:j:s]这种格式呢,i,j与上面的一样,但s表示步进,缺省为1.当s为-1,输出倒序
  • 加法,打印的乘法(输出多个)
#!/usr/bin/python
# -*- coding: UTF-8 -*-

list01 = ['runoob', 786, 2.23, 'john', 70.2]
list02 = [123, 'john']

print list01
print list02

# 列表截取

print list01[0]
print list01[-1]
print list01[0:3]

# 列表重复

print list01 * 2

# 列表组合

print list01 + list02

# 获取列表长度

print len(list01)


# 元素是否存在于列表中

print 'john' in list02  # True

# 迭代

for i in list01:
    print i

# 比较两个列表的元素

print cmp(list01, list02)

# 列表最大/最小值

print max([0, 1, 2, 3, 4])
print min([0, 1])

# 将元组转换为列表

aTuple = (1,2,3,4)
list03 = list(aTuple)
print list03

# 在列表末尾添加新的元素

list03.append(5)
print list03

# 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list03.extend(list01)
print list03

# 统计某个元素在列表中出现的次数

print list03.count(1)

# 从列表中找出某个值第一个匹配项的索引位置

print list03.index('john')

# 将对象插入列表

list03.insert(0, 'hello')
print list03

# 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

print list03.pop(0)
print list03

# 删除列表元素(按索引删)

del list02[0]
print list02

# 移除列表中某个值的第一个匹配项(按元素删)

list03.remove(1)
print list03

# 反向列表中元素

list03.reverse()
print list03

# 对原列表进行排序

list03.sort()
print list03

 

元组

和列表差不多,不能删除元素,不能增加改变元素,string就是一个特殊的元组

 

字典

遍历:

for k,v in dic.items():
    print("key:"+k)
    print("value:"+str(v))

Python字典包含了以下内置方法:

序号函数及描述
1dict.clear()
删除字典内所有元素
3dict.fromkeys(seq[, val])
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
4dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
6dict.items()
以列表返回可遍历的(键, 值) 元组数组
7dict.keys()
以列表返回一个字典所有的键
9dict.update(dict2)
把字典dict2的键/值对更新到dict里
10dict.values()
以列表返回字典中的所有值
11pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12popitem()
随机返回并删除字典中的一对键和值。

set()集合

不允许重复,里面是随机的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python笔记.md 是一个用于记录Python编程相关内容的markdown文档。 在Python学习过程中,学习者通常会遇到各种问题和疑惑,需要有一个地方来记录学习笔记和重要概念,以方便日后复习和查阅。Python笔记.md 就是一个很好的选择。 Python笔记.md 可以按照自己的需要来组织内容,比如可以分为不同的章节或主题,并使用markdown语法来格式化文档,使其更加清晰易读。 在Python笔记.md中,可以记录Python的基础语法、常用数据结构、函数、类、模块等内容。此外,还可以记录一些常见的错误和解决方法,以便日后遇到类似问题时能够快速找到解决方案。 Python笔记.md 还可以用来记录自己的思考和理解。在学习过程中,我们常常会思考某个概念或代码背后的原理,这时候可以将自己的思考记录在笔记中,以便后续复习和回顾。 使用Python笔记.md 还可以方便与他人分享学习心得。可以在文档中加入注释或标题,使得文档更加易读和友好。同时,也可以将Python笔记.md 推送到版本控制系统中,与他人共享和共同编辑。 总之,Python笔记.md 是一个非常有用的工具,可以帮助学习者系统地记录、整理和复习Python编程相关的知识和经验。无论是初学者还是有经验的开发者,都可以从中受益,并提高自己的编程技能。 ### 回答2: Python笔记.md是一个使用Markdown语法编写的Python笔记文档。Markdown语法是一种轻量级的标记语言,可以快速地编辑和排版文档。 在Python笔记.md中,可以记录Python程序设计的相关知识、概念和技巧。通过使用Markdown语法,可以方便地插入代码块、链接、图片以及其他强调和排版格式,使得笔记更加直观和易读。 Python笔记.md可以按照不同的章节和主题组织内容,方便快速查找和阅读。在每个章节中,可以记录不同的Python编程概念,如数据类型、控制结构、函数、类等。可以通过示例代码和解释说明来详细解释这些概念的用法和特点。 在笔记中,还可以记录一些Python的常见问题和解决方案,例如常见错误、调试技巧等。这些内容可以帮助初学者更好地理解和掌握Python语言。 此外,Python笔记.md还可以连接到其他的Python资源,如官方文档、教程、在线代码编辑器等。这样可以提供更多的学习和参考资料。 总之,Python笔记.md是一个有条理、易读和方便编辑的Python学习笔记文档,可以帮助人们更好地学习和理解Python编程语言。 ### 回答3: Python笔记md是一种用来记录Python编程语言相关内容的文本文件格式。它使用Markdown语法来快速、简洁地编写和格式化笔记Python笔记md的优点是: 1. 简单易懂:Markdown语法简洁明了,使用起来非常简单,即便没有编程背景的人也能快速上手。 2. 跨平台兼容:无论是在Windows、Mac还是Linux系统中,Python笔记md都可以轻松使用。 3. 可读性强:Python笔记md的文本格式使得代码和说明可以同时显示,方便读者理解和学习。 4. 方便分享和发布:Python笔记md可以导出为HTML或PDF格式,方便分享给其他人或者发布到网络上。 5. 与开发工具兼容:大多数集成开发环境(IDE)和文本编辑器都支持Markdown语法,可以实时预览和编辑笔记。 使用Python笔记md可以帮助程序员记录代码和相关的解释和说明,方便复习和查看。它还可以用于编写技术博客、文档和教育材料等。而且由于其文本格式的特点,Python笔记md也非常适合使用版本控制系统进行版本管理。 总而言之,Python笔记md是一种简单、灵活且易于分享的笔记格式,可以有效提高编程学习和开发的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值