首页 > 编程语言 > 详细

《简明python教程》笔记

时间:2017-01-03 09:38:19      阅读:195      评论:0      收藏:0      [点我收藏+]

读《简明Python教程》笔记:

   本书的官方网站是www.byteofpython.info

   安装就不说了,网上很多,这里就记录下我在安装时的问题,首先到python官网下载,选好安装路径安装好后,一定要配置环境变量,详细呢可以看武老师的博客(我的python编程入门老师虽然他不认识我,我也不认识他)。

重要
   在你的程序中合理地使用注释以解释一些重要的细节——这将有助于你的程序的读者轻松地理
解程序在干什么。记住,这个读者可能就是6个月以后的你!

可执行的python程序(linux下):

$ chmod a+x hello_world.py

$ ./hello_world.py

$ 输出程序的执行结果

chmod命令用来改变文件模式,给系统中所有用户这个源文件的执行权限,然后就可以直接通过指定源文件的位置来执行程序,使用./提示程序位于当前目录。

也可以把.py去掉直接执行文件,因为系统要使用源文件第一行指定的解释器来执行该文件。

只要知道文件的确切位置,你就可以运行程序——但是如果你希望你的程序可以从各个位置运行,你可以把你的程序保存在PATH环境变量中的目录之一,系统会自动在PATH中的目录里寻找你要执行的文件。

$echo $PATH

/opt/mono/bin/:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/swaroop/bin

$cp hello_world.py /home/swaroop/bin/hello_world

$hello_world

程序执行的结果

用echo命令显示PATH变量,用$给变量名加前缀以向shell表示我们需要这个变量的值。我们看到的/home/swaroop/bin是PATH变量中的目录之一。swaroop是在系统中使用的用户名。你可以把你选择的目录添加到PATH变量中——这可以通过运行PATH=$PATH :/home/swaroop/mydir完成。

当你想要在任何时间、任何地方运行你的程序,这个方法很有用。他就好像创造你自己的指令,如同cd或其他linux终端或DOS提示符命令那样。

提示:(这个问题困惑我好久)

对于Python,程序、脚本或者软件都是指同一个东西。

获取帮助

help(str)括号内是你要查询的数据类型。

linux下的操作:

如果想要获取关于如print那样操作符的帮助,那么你需要正确的设置PYTH ON DOCS环境变量。这可以在linux中轻松的通过env完成。

$ env PYRH ON DOCS=/usr/share/doc/python-docs-2.3.4/html/python

Python2.3.4(#1,0 ct26 2004,16:42:40)

[GCC 3.4.2 20041017(Red Hat3.4.2-6.fce)] on linux2

Type"help","copyright","cred its"or"license"form ore inform ation.

>>>help("print")

注意"print"要加引号。

一、字符串:

1、字符串:(字符串是字符的序列,是不可变的)

使用字符串的方式:

~ 单引号(’)

~ 双引号(”)               #"what‘s your name?"双引号内使用单引号不用转义符

~ 三引号(‘‘‘或""")         #‘‘‘what‘s your name? My name is "Guido‘s admisers", I like python.‘‘‘三引号中自由的使用单引号和双引号

2、转义符:

‘what\‘s your name?‘如果没有 \ python解释器则找不到字符串的起止位置。

\\ 表示 \ 的意思

”how old are you?\

what‘s your name?"

上面的字符串则表示:行末的单独的一个 \ 表示字符串在下一行继续,而不是开始新的一行。

3、自然字符串:

r‘what\‘s your name? \n My name is Guido?‘

这样字符串里的转义符就不会进行转义处理了。

在处理正则表达式时一定要用"r"

二、变量:

1、变量名命名的规则:

~ 第一个字符必须是字母(大小写均可)或者一个下划线(‘_‘)

~ 其他部分可以由字母(大小写均可)、下划线(‘_‘)或树脂(0-9)组成

~ 相同的变量名是区分大小写的,例如name!=Name

~ 变量名中只能有以上说的方式内容组成

三、对象:

在Python中,在程序中用到的任何东西都叫对象。

四、逻辑行与物理行:

物理行是你在编写程序时说看见的。逻辑行是Python解释器看见的单个语句。如果在一个物理行使用多于一个逻辑行,就需要用分号(;)来特别标明这种用法。(;)表示一个逻辑行的结束。(尽量避免使用一个物理行存在多个逻辑行)

多个物理行可以写一个逻辑行,例如:

s = "This is a string.\

This continues the sting."

print(s)

执行输出:

This is a string.This continues the sting.

五、缩进:

在python中缩进决定语句的分组,同一层次的语句必须有相同的缩进,错误的缩进会引发错误。

在使用缩进时,空格和制表符不要混合使用,因为在跨平台操作时无法正常工作,在每个缩进层次使用单个制表符或者使用四个空格。

六、运算符与表达式:

运算符

技术分享

运算符优先级

在运算中,python会优先计算下表中最下面的运算符,最好使用()圆括号来分组运算和操作数,使程序更加易读。

在下表中列在同一行的运算符具有相同优先级。

下表是一个优先级的默认顺序,如若想改变优先级的顺序,则需使用圆括号。

技术分享

结合规律:

具有相同优先级的运算符按照从左向右的顺序计算。一些如赋值运算符那样的运算符是由右向左结合的,即a=b=c被处理为a=(b=c)。

七、控制流:

if语句

if条件为真,执行if下的语句;如果if条件为假,处理另一块elif语句;否则实行else块,else从句是可选的。

注意:if、elif、else语句在结尾处包含一个冒号——我们通过他告诉python下面跟着一个语句块。

#! usr/bin/env python
#  -*-coding:utf-8-*-


name = input("what‘s your name?")
if name == "VV":
    print("I love you!")
elif name == "MM":
    print("Get out!")
else:
    print("I don‘t know.")

while语句

如果条件为真,while语句允许重复执行一块语句。所以while语句是循环语句。同时,也有一个可选的else从句

#!/usr/bin/env python
# -*- coding:utf -8-*-


while 1>2:
    print(123)
    break
else:
    print(789)

for循环

for...in...是另外一个循环语句,它在以序列的对象上递归即逐一使用队列中的每个项目。

#!/usr/bin/env python
# -*- coding:utf -8-*-


for i in range(1,5,2):
    print(i)
else:
    print(‘MM‘)

range(1,5)生成序列[1,2,3,4],range的默认步长为1,给range提供第3个数,它将成为步长。例如:range(1,5,2)给出[1,3]。

else总是会在for循环结束后执行一次,除非遇到break

break语句:终止循环语句,一旦遇到立刻停止执行循环程序。

continue语句:终止后面的剩余语句,然后继续进行下一轮循环。

八、函数

定义函数:

#!/usr/bin/env python
# -*- coding:utf -8-*-


def name():          #定义函数
    pass             #函数体
name()               #执行函数

函数的参数:

函数的参数有形式参数和实际参数

定义时圆括号内的参数为形式参数,执行时圆括号内的参数为实际参数。

局部变量:

当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。这称为变量的作用域。所有变量的作用域是它们被定义的块,从他们的名称被定义的那点开始。

全局变量(global):

如果你想为一个定义在函数外的变量赋值,那么就得告诉python这个变量不是局部的,而是全局的。我们使用global语句完成这一功能。没有global语句是不可能为定义在函数外的变量赋值的。

#!/usr/bin/env python
# -*- coding:utf -8-*-


MM = "alex"
def name():        
    global MM
    print(MM)           
name()               

默认参数值:

你可以在函数定义的形参后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。

默认参数值应该是一个不可变的参数。

#!/usr/bin/env python
# -*- coding:utf -8-*-


def name(MM, VV="Lily"):         
    pass             
name(‘TT‘)              

 关键参数:

不再依照传入参数的顺序来分配参数,而是使用名字来参入参数。

这样做的两个优势:

~ 由于我们不必担心参数的顺序,使用函数变得更加简单。

~ 假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。

#!/usr/bin/env python
# -*- coding:utf -8-*-


def name(MM, NN, VV="Lily"):         
    pass             
name(NN=‘pp‘, MM=‘TT‘)

return语句:

return语句用来从一个函数返回即天出函数。我们也可以选择从函数返回一个值。

函数一旦遇到return立刻终止函数的运行并返回其后的参数。

#!/usr/bin/env python
# -*- coding:utf -8-*-


def name(MM, VV="Lily"):         
    if MM==VV:
        return MM
    else:
        return VV           
name(‘TT‘)

DocStrings:

奇妙的特性,文档字符串。DocStrings是一个重要的工具,他可以帮助你的程序文档更加简单易懂,你应该尽量使用它。甚至可以在程序运行的时候从函数恢复文档字符串!

#!/usr/bin/env python
# -*- coding:utf -8-*-


def printM_ax(x, y):
    ‘‘‘Prints the m axim um of two num bers.
The two values m ust be integers.‘‘‘

    x = int(x) # convert to integers, if possible
    y = int(y)

    if x > y:
        print(x, ‘is m axim um ‘)
    else:
        print(y, ‘is m axim um ‘)
printM_ax(3, 5)
print(printM_ax.__doc__)


#执行结果
5 is m axim um 
Prints the m axim um of two num bers.
The two values m ust be integers.

~ 在函数的第一个逻辑行的字符串是这个函数的 文档字符串 。注意,D ocStrings也适用于模块和类,我们会在后面相应的章节学习它们。

~ 文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。 强烈建议 你在你的函数中使用文档字符串时遵循这个惯例。

~ 你可以使用__doc__(注意双下划线)调用printM ax函数的文档字符串属性(属于函数的名称)。请记住Python把 每一样东西 都作为对象,包括这个函数。我们会在后面的类一章学习更多关于对象的知识。

~ 如果你已经在Python中使用过help(),那么你已经看到过D ocStings的使用了!它所做的只是抓取函数的__doc__属性,然后整洁地展示给你。你可以对上面这个函数尝试一下——只是在你的程序中包括help(printM ax)。记住按q退出  help。

~ 自动化工具也可以以同样的方式从你的程序中提取文档。因此,我 强烈建议 你对你所写的任何正式函数编写文档字符串。随你的Python发行版附带的pydoc命令,与help()类似地使用D ocStrings。

《简明python教程》笔记

原文:http://www.cnblogs.com/Guido-admirers/p/6238712.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!