`
flex_莫冲
  • 浏览: 1084989 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

python学习

阅读更多
来源:
http://www.runoob.com/python3/python3-class.html

元组
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,);
如果写成tup1 = (50);不会报错,因为会当成int创建,但是如果执行
tup1[0]就会报错了。

--------------------
python的逻辑运算符 and or not
and :x and y 返回的结果是决定表达式结果的值。如果 x 为真,则 y 决定结果,返回 y ;如果 x 为假,x 决定了结果为假,返回 x。

or :x or y 跟 and 一样都是返回决定表达式结果的值。

not : 返回表达式结果的“相反的值”。如果表达式结果为真,则返回false;如果表达式结果为假,则返回true。

-------------------

dict的键必须是唯一的,但值则不必。

空的集合
a=set()

空的字段
b={}


字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

-----------------------
python 没有switch 循环
只有if elif else,while else,for in else,
pass 是空语句

-----------
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter() 和 next()。
字符串,列表或元组对象都可用于创建迭代器:

在 Python 中,使用了 yield 的函数被称为生成器(generator)。
跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次执行 next()方法时从当前位置继续运行。

yield的介绍
https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/

-------------------------
参数
以下是调用函数时可使用的正式参数类型:
必需参数
关键字参数
默认参数
不定长参数
必需参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。

关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
以下实例在函数 printme() 调用时使用参数名:
#!/usr/bin/python3
 
#可写函数说明
def printme( str ):
   "打印任何传入的字符串"
   print (str);
   return;
 
#调用printme函数
printme( str = "菜鸟教程");


不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述2种参数不同,声明时不会命名。基本语法如下:
def functionname([formal_args,] *var_args_tuple ):
   "函数_文档字符串"
   function_suite
   return [expression]



匿名函数
python 使用 lambda 来创建匿名函数。
所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。
lambda 只是一个表达式,函数体比 def 简单很多。
lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda 函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
语法
lambda 函数的语法只包含一个语句,如下:
lambda [arg1 [,arg2,.....argn]]:expression



------------------

列表推导式
列表推导式提供了从序列创建列表的简单途径。通常应用程序将一些操作应用于某个序列的每个元素,用其获得的结果作为生成新列表的元素,或者根据确定的判定条件创建子序列。
每个列表推导式都在 for 之后跟一个表达式,然后有零到多个 for 或 if 子句。返回结果是一个根据表达从其后的 for 和 if 上下文环境中生成出来的列表。如果希望表达式推导出一个元组,就必须使用括号。
这里我们将列表中每个数值乘三,获得一个新的列表:
>>> vec = [2, 4, 6]
>>> [3*x for x in vec]
[6, 12, 18]



---------------
元组在输出时总是有括号的,以便于正确表达嵌套结构。在输入时可能有或没有括号, 不过括号通常是必须的(如果元组是更大的表达式的一部分)。

集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。
可以用大括号({})创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;后者创建一个空的字典,

集合也支持推导式:
>>> a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'r', 'd'}



----------------------
from…import 语句
Python的from语句让你从模块中导入一个指定的部分到当前命名空间中,语法如下:
from modname import name1[, name2[, ... nameN]]


__name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

说明: 每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。


-------------------
输出格式美化
Python两种输出值的方式: 表达式语句和 print() 函数。
第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。
如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。
如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。
str(): 函数返回一个用户易读的表达形式。
repr(): 产生一个解释器易读的表达形式。


str.format() 的基本使用如下:
>>> print('{}网址: "{}!"'.format('菜鸟教程', 'www.runoob.com'))
菜鸟教程网址: "www.runoob.com!"




-------------
try except 语句还有一个可选的else子句,如果使用这个子句,那么必须放在所有的except子句之后。这个子句将在try子句没有发生任何异常的时候执行。例如:
for arg in sys.argv[1:]:
    try:
        f = open(arg, 'r')
    except IOError:
        print('cannot open', arg)
    else:
        print(arg, 'has', len(f.readlines()), 'lines')
        f.close()


抛出异常
Python 使用 raise 语句抛出一个指定的异常。例如:
>>> raise NameError('HiThere')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
NameError: HiThere


try:
  raise NameError('HiThere')
except NameError:
  print('An exception flew by!')
  raise
   
An exception flew by!
Traceback (most recent call last):
  File "<stdin>", line 2, in ?
NameError: HiThere



-------------

类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用

类的方法
在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数:
#!/usr/bin/python3

#类定义
class people:
    #定义基本属性
    name = ''
    age = 0
    #定义私有属性,私有属性在类外部无法直接进行访问
    __weight = 0
    #定义构造方法
    def __init__(self,n,a,w):
        self.name = n
        self.age = a
        self.__weight = w
    def speak(self):
        print("%s 说: 我 %d 岁。" %(self.name,self.age))

# 实例化类
p = people('runoob',10,30)
p.speak()


多继承
Python同样有限的支持多继承形式。多继承的类定义形如下例:

需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。

类属性与方法
类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。
类的方法
在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数
类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 slef.__private_methods。
实例
类的私有属性实例如下:
#!/usr/bin/python3

class JustCounter:
    __secretCount = 0  # 私有变量
    publicCount = 0    # 公开变量

    def count(self):
        self.__secretCount += 1
        self.publicCount += 1
        print (self.__secretCount)

counter = JustCounter()
counter.count()
counter.count()
print (counter.publicCount)
print (counter.__secretCount)  # 报错,实例不能访问私有变量


类的专有方法:
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
__repr__ : 打印,转换
__setitem__ : 按照索引赋值
__getitem__: 按照索引获取值
__len__: 获得长度
__cmp__: 比较运算
__call__: 函数调用
__add__: 加运算
__sub__: 减运算
__mul__: 乘运算
__div__: 除运算
__mod__: 求余运算
__pow__: 称方


------------------------------------------------------------
python及ipython安装说明
从 下载python
ubuntu 下解压缩下载的tgz包
tar -xvzf Python-3.4.5.tgz
cd Python-3.4.5
./configure
这时若出现config error,可能要安装下
apt-get install build-essential
make
make install
参考:
http://www.runoob.com/python/python-install.html

安装成功 执行
python3 -V

setenv PATH "$PATH:/usr/local/bin/python"

安装ipython
sudo apt-get install python-pip
pip install ipython
pip install "ipython[notebook]"

sudo apt-get install ipython

参考:http://www.dabu.info/linux-install-ipython.html

默认ipython会使用ubuntu自带的python2.7
安装python3的pip 包管理器,再用pip3安装ipython
sudo apt-get install python3-pip
sudo pip3 install ipython

运行ipython3 进入,可见到python用了3.4版本
分享到:
评论

相关推荐

    python 学习资料大全,打包下载

    这篇文档将深入探讨"python 学习资料大全"中包含的四个关键资源,它们可以帮助你全面掌握Python编程技能。 1. **CherryPyEssentials-RapidPythonWebApplicationDevelopment.rar** 这个文件涉及到的是使用CherryPy...

    Python学习手册(第3版)中文版

    《Python学习手册(第3版)》讲述了:Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择。无论你是刚接触编程或者刚接触Python,通过学习《Python学习手册(第3版)》,你可以迅速高效地...

    Python学习笔记(干货) 中文PDF完整版.pdf

    这份"Python学习笔记"涵盖了从环境搭建到基础语法,再到数据类型和控制结构等关键知识点,旨在为初学者提供全面的学习指导。 首先,1.1章节介绍了Python的基础,包括Python的起源和历史。Python是由Guido van ...

    Python学习手册(第五版,原版/英文版)Leaning Python

    本书是《Python学习手册》的第五版,由Mark Lutz编写,是学习Python编程语言的经典教程。该书深入浅出地介绍了Python的各个方面,适合初学者和有经验的程序员阅读。书中探讨了Python语言的多种用途,包括但不限于...

    PYTHON学习资料包.zip

    【标题】"PYTHON学习资料包.zip"所包含的是一个综合性的Python学习资源集合,适合不同层次的学习者。从初学者到有一定基础的开发者,都可以在这个资料包中找到适合自己的学习材料。 【描述】"python学习资料包合集...

    Python学习手册(第3版).pdf

    ( Python学习手册(第3版).pdf( Python学习手册(第3版).pdf( Python学习手册(第3版).pdf( Python学习手册(第3版).pdf( Python学习手册(第3版).pdf( Python学习手册(第3版).pdf( Python学习手册(第3版).pdf( Python...

    python学习资源合集

    这份"python学习资源合集"包含了五本极具价值的Python学习书籍,旨在帮助初学者快速掌握这门语言并逐步进阶。 首先,《21天学通PYTHON》这本书提供了紧凑的学习计划,适合时间有限但希望快速入门的人。书中的内容...

    Python学习手册(第4版).rar

    如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python...

    Python学习手册_第四版

    如果你想要编写高质量、高效的并且易于与其他语言和工具集成的代码,《Python学习手册:第4 版》将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python...

    Python学习+PySimpleGUI+Pyinstaller,制作Windows桌面exe,演示生成的小程序

    Python学习+PySimpleGUI+Pyinstaller,制作Windows桌面exe,演示生成的小程序 Python学习+PySimpleGUI+Pyinstaller,制作Windows桌面exe,演示生成的小程序 Python学习+PySimpleGUI+Pyinstaller,制作Windows桌面exe...

    Python学习手册(第4版)

    , 《Python学习手册:第4版》每一章都包含关于Python语言的关键内容的独立的一课,并且包含了一个独特的“练习题”部分,其中带有实际的练习和测试,以便你可以练习新的技能并随着学习而测试自己的理解。你会发现...

    Python学习资料电子书合集5-2

    【Python学习资料电子书合集5-2】是针对Python编程语言的一份全面学习资源,包含多本高质量的电子书籍,旨在帮助学习者深入理解和掌握Python的各项技能。这个合集特别适合正在学习Python或者希望提升Python技能的...

    Python学习手册(第3版)-带目录完整版+Python学习手册(第4版)-带目录完整版

    "Python学习手册(第3版)-带目录完整版+Python学习手册(第4版)-带目录完整版"是两本非常有价值的资源,旨在帮助读者深入理解和掌握Python编程。 Python学习手册的第三版和第四版,都是全面且深入的学习指南。它们...

    python 学习资源包(python核心编程第二版/dive into python/python3新特性)

    总的来说,这个学习资源包提供了一个全面的Python学习路径,从基础知识到高级技巧,从Python 2到Python 3的新特性,应有尽有。无论是初学者还是有经验的开发者,都能从中受益匪浅。通过阅读和实践这些材料,你将能够...

    python学习手册 第四版 源码

    《Python学习手册 第四版 源码》是Python编程初学者和进阶者的一份宝贵资源,包含了大量的示例代码和练习,旨在帮助读者深入理解Python语言的各个方面。这份源码涵盖了Python语言的基础语法、高级特性、面向对象编程...

    Python学习手册(第4版)(高清pdf扫描版)

    Python学习手册:第4 版 将帮助你使用Python快速实现这一点,不管你是编程新手还是Python初学者。本书是易于掌握和自学的教程,根据作者Python专家Mark Lutz的著名培训课程编写而成。 《Python学习手册:第4版》每...

Global site tag (gtag.js) - Google Analytics