入门python的必学知识点Word文件下载.docx
《入门python的必学知识点Word文件下载.docx》由会员分享,可在线阅读,更多相关《入门python的必学知识点Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。
高级语言就是Python与高级语言很相似,比如说C、C++。
下面来看一个程序:
例2.1
#Fibonacciseries;
#thesumoftwoelementsdefinesthenext
a,b=0,1
whileb<
10:
printb
a,b=b,a+b
我们在ubuntu中HomeFolder/me文件夹下右击新建一个文件exam.py,然后打开输入以上程序。
保存后打开终端,进入根目录,然后输入命令:
pythonexam.py
按回车键运行程序,结果如下:
1
2
3
5
8
这个是我们最熟悉不过的斐波那契数列,我们很容易验证程序的正确性。
下面介绍一下有关python程序的运行和基本语法。
一、编写并运行python程序的步骤。
1、建立一个.py文件,并保存在适当路径。
例2.1保存在HomeFolder/me文件夹下是因为进入根目录后就到这个文件夹下,运行时只需写命令python文件名.py。
如果不保存在这个路径,运行时需在文件名前加上路径。
2、向.py文件写入程序。
3、在终端运行程序。
Python程序的运行命令格式python[路径]/文件名.py,[]表示可以省略。
二、python程序的基本语法
1、注释
Python的注释是以“#”起始,一直到当前行的结尾。
2、变量表达式
Python的变量不需要定义即可使用,表达式的语法简明易懂:
+,-,*,/和大多数语言中的用法一样,运算规则也一样,括号用于分组。
例如:
y=(50-5*6)/4
x=7/3#x=2,整数运算截断
像c一样,等号(‘=’)用于给变量赋值。
被分配的值是只读的。
同一个值可以同时赋给几个变量:
x=y=z=0
示例中还介绍了一些新功能:
第一行包括了复合参数:
变量a和b同时被赋值为0和1。
最后一行又一次使用了这种技术,证明了在赋值之前表达式右边先进行了运算。
右边的表达式从左到右运算。
while循环运行在条件为真时执行。
在Python中,类似于C任何非零值为真,零为假。
这个条件也可以用于字符串或链表,事实上于对任何序列类型,长度非零时为真,空序列为假。
示例所用的是一个简单的比较。
标准的比较运算符写法和C相同:
<
(小于),>
(大于),==(等于),<
=(小于等于),>
=(大于等于)和!
=(不等于)。
循环体是缩进的:
缩进是Python对语句分组的方法。
Python仍没有提供一个智能编辑功能所以你要在每一个缩进行输入一个tab或(一个或多个)空格。
实际上你可能会准备更为复杂的文本编辑器来编写你的Python程序,大多数文本编辑器都提供了自动缩进功能。
交互式的输入一个复杂语句时,需要用一个空行表示完成(因为解释器没办法猜出你什么时候输入最后一行)。
需要注意的是每一行都要有相同的空字符来标识这是同一个语句块。
print语句打印给定表达式的值。
它与你仅仅输入你需要的表达式(就像前面的计算器示例)不同,它可以同时输出多个表达式。
字符串输出时没有引号,各项之间用一个空格分开,你可以很容易区分它们,如下所示:
i=256*256
print'
Thevalueofiis'
I
输出结果:
Thevalueofiis65536
print语句末尾的逗号避免了输出中的换行:
a,b=0,1
whileb<
1000:
printb,
a,b=b,a+b
1123581321345589144233377610987
注意:
如果最后一行仍没有写完,解释器会在它打印下一个命令时插入一个新行。
语句的组织依赖于缩进而不是begin/end块,要确保每个有缩进的行前面的空白要么都是空格,要么都是tab,必须要统一。
第三章其它流程控制工具
除了前面介绍的while语句,Python还从别的语言中借鉴了一些流程控制功能,并有所改变。
3.1if语句
if语句主要起分支控制作用,例如:
x=int(raw_input("
Pleaseenteraninteger:
"
))
ifx<
0:
x=0
print'
Negativechangedtozero'
elifx==0:
Zero'
elifx==1:
Single'
else:
More'
可能会有0或很多个elif部分,else是可选的。
关键字“elif”是“elseif”的缩写,这个可以有效避免过深的缩进。
if...elif...elif...序列用于替代其它语言中的switch或case语句。
3.2for语句
Python中的for语句和你在C或Pascal中使用的略有不同。
通常的循环可能会依据一个等差数值步进过程(如Pascal)或由用户来定义迭代步骤和中止条件(如C),Python的for语句依据任意序列(链表或字符串)中的子项,按它们在序列中的顺序来进行迭代。
例如(没有暗指):
#Measuresomestrings:
a=['
cat'
'
window'
defenestrate'
]
forxina:
printx,len(x)
cat
3window
6defenestrate12
3.3break和continue语句,以及循环中的else子句
break语句和C中的类似,用于跳出最近的一级for或while循环。
continue语句是从C中借鉴来的,它表示循环继续执行下一次迭代。
循环可以有一个else子句;
它在循环迭代完整个列表(对于for)或执行条件为false(对于while)时执行,但循环被break中止的情况下不会执行。
以下搜索素数的示例程序演示了这个子句:
forninrange(2,10):
forxinrange(2,n):
ifn%x==0:
printn,'
equals'
x,'
*'
n/x
break
else:
#loopfellthroughwithoutfindingafactor
isaprimenumber'
2isaprimenumber
3isaprimenumber
4equals2*2
5isaprimenumber
6equals2*3
7isaprimenumber
8equals2*4
9equals3*3
注解:
range()函数以等间隔产生一个数值序列
第四章函数
4.1定义函数
我们可以编写一个函数来生成有给定上界的菲波那契数列:
deffib(n):
#writeFibonacciseriesupton
"
"
PrintaFibonacciseriesupton."
a,b=0,1
whileb<
n:
printb,
a,b=b,a+b
#Nowcallthefunctionwejustdefined:
fib(2000)
11235813213455891442333776109871597
关键字def引入了一个函数定义。
在其后必须跟有函数名和包括形式参数的圆括号。
函数体语句从下一行开始,必须是缩进的。
函数体的第一行可以是一个字符串值,这个字符串是该函数的文档字符串,也可称作docstring。
有些文档字符串工具可以在线处理或打印文档,或让用户交互的浏览代码;
在你的代码中加入文档字符串是一个好的作法,应该养成习惯。
调用函数时会为局部变量引入一个新的符号表。
所有的局部变量都存储在这个局部符号表中。
引用参数时,会先从局部符号表中查找,然后是全局符号表,然后是内置命名表。
因此,全局参数虽然可以被引用,但它们不能在函数中直接赋值(除非它们用global语句命名)。
函数引用的实际参数在函数调用时引入局部符号表,因此,实参总是传值调用(这里的值总是一个对象引用,而不是该对象的值)。
4.2一个函数被另一个函数调用时,一个新的局部符号表在调用过程中被创建。
函数定义在当前符号表中引入函数名。
作为用户定义函数,函数名有一个为解释器认可的类型值。
这个值可以赋给其它命名,使其能句做为一个函数来使用。
这就像一个重命名机制:
fib
<
functionobjectat10042ed0
f=fib
f(100)
1123581321345589
你可能认为fib不是一个函数(function),而是一个过程(procedure)。
Python和C一样,过程只是一个没有返回值的函数。
实际上,从技术上讲,过程也有一个返回值,虽然是一个不讨人喜欢的。
这个值被称为None(这是一个内置命名)。
如果一个值只是None的话,通常解释器不会写一个None出来,如果你真想要看它的话,可以这样做:
printfib(0)None
以下示列演示了如何从函数中返回一个包含菲波那契数列的数值链表,而不是打印它:
deffib2(n):
#returnFibonacciseriesupton
ReturnalistcontainingtheFibonacciseriesupton."
result=[]
a,b=0,1
whileb<
result.append(b)#seebelow
returnresult
f100=fib2(100)#callit
f1