Python学习笔记(二)基础语法
学习Python,基本语法不是特别难,有了C的基本知识,理解比较容易。本文的主要内容是Python基础语法,学完后,能熟练使用就好。(开发环境依然是Python2.7,简单使用)
一,基本知识
1,不需要预先定义数据类型(此说法值得商榷,姑且这么说吧),这是与其他语言的最大不同(如C,C++,C#,Delphi等)
>>>x=12 >>>y=13 >>>z=x+y >>>printz 25
注意:尽管变量不需要预先定义,但是要使用的时候,必须赋值,否则报错:
>>>le Traceback(mostrecentcalllast): File"<pyshell#8>",line1,in<module> le NameError:name'le'isnotdefined
2,查看变量的类型函数type():
1>>>type(x) 2<type'int'>
3,查看变量的内存地址函数id():
>>>x=12 >>>y=13 >>>z=x+y >>>m=12 >>>print'id(x)=',id(x) id(x)=30687684 >>>print'id(m)=',id(m) id(m)=30687684 >>>print'id(z)=',id(z) id(z)=30687528 >>>x=1.30 >>>print'id(x)=',id(x) id(x)=43407128
从上述结果可以发现:变量的指向变,地址不变,换句话说,整数12的地址值始终不变,变化的是变量的指向(如x的地址变化);
4,输出函数print():
>>>x='day' >>>y=13.4 >>>printx,type(x) day<type'str'> >>>printy,type(y) 13.4<type'float'>
逗号运算符(,):可以实现连接字符串和数字型数据。
>>>print'x=',12 x=12
格式化控制符:%f浮点数;%s字符串;%d双精度浮点数(这和C的输出是一致的)。
>>>x=12 >>>y=13.0004 >>>z='Python' >>>print"output%d%f%s"%(x,y,s) output1213.000400Python
5,输入函数raw_input():
>>>raw_input("inputanint:") inputanint:12 '12'
注意:raw_input()输入的均是字符型。
6,查看帮助函数help():
>>>help(id) Helponbuilt-infunctionidinmodule__builtin__: id(...) id(object)->integer Returntheidentityofanobject.Thisisguaranteedtobeuniqueamong simultaneouslyexistingobjects.(Hint:it'stheobject'smemoryaddress.)
注意:Python的注释,#:仅支持单行注释;另外,Python编程具有严格的缩进格式。
二、函数
1,函数定义及其调用:
#definefunction:add(函数说明) defadd(x,y): #函数头部,注意冒号,形参x,y z=x+y #函数体 returnz #返回值 #definemainfunction defmain(): a=12 b=13 c=add(a,b) #函数调用,实参a,b printc main() #无参函数调用 print'End1!'
注意:这部分与C的存在的异同在于:
1,形参与实参的用法,无参函数,有参函数,默认参数等规则一致。
如defadd(x,y=2),调用可以是add(3)也可以是add(3,4),add(y=34,x)
2,C的形参需要指定数据类型,而Python不需要。
3,Python的返回值允许有多个。如:
deftest(n1,n2): printn1, printn2 n=n1+n2 m=n1*n2 p=n1-n2 e=n1**n2 returnn,m,p,e print'Entryprogramme1' sum,multi,plus,powl=test(2,10) #这个是C语言所没有的赋值方式 print'sum=',sum print'multi=',multi print'plus=',plus print'powl=',powl re=test(2,10) printre #数据类型为:'tuple' printre[0],re[1],re[2],re[3] print'End1!\n'
运行结果:
Entryprogramme 210 sum=12 multi=20 plus=-8 powl=1024 210 (12,20,-8,1024) 1220-81024 End!
2,局部变量:
deff1(): x=12 #局部变量 printx deff2(): y=13 #局部变量 printy deff3(): printx #错误:没有定义变量x,这与“不需要预先定义数据类型”不矛盾 printy defmain(): f1() f2() #f3()#变量报错 main() print'End2!'
3,修改全局变量的值:
defmodifyGlobal(): globalx #全局变量定义 print'writex=-1' x=-1 defmain(): #printLocalx() #printLocaly() #readGlobal() modifyGlobal() x=200 #y=100 print'beforemodifiedglobalx=', printx main() print'aftermodifiedglobalx=', printx
运行结果:
>>> beforemodifiedglobalx=200 writex=-1 aftermodifiedglobalx=-1
三、表达式与分支语句
1,表达式:
是由数字,运算符,数字分组符号括号,自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。表示通常有操作数和操作符两部分组成。
分类:算术表达式;关系表达式,逻辑表达式(and/or/not)
2,if分支语句:
1)形式一:(if<condition>:)
>>>sex="male" >>>ifsex=='male': print'Man!' #此处有两次回车键 Man! >>>
2)形式二:(if<condition>:else(if<condition>:))
sex=raw_input('Pleaseinputyoursex:') ifsex=='m'orsex=='male': print'Man!' else: print'Woman!'
运行结果:
>>> Pleaseinputyoursex:male Man!
3)形式三:(if<condition>:elif<condition>:else))(这是Python有而C没有的形式)
count=int(raw_input('Pleaseinputyourscore:')) ifcount>=90: print'优秀!' elifcount>=80: print'优良!' elifcount>=70: print'合格!' elifcount>=60: print'及格!' else: print'不及格!'
运行结果:
>>> Pleaseinputyourscore:90 优秀!
注意:Python没有switch语句。
四、循环语句:
背景:在程序设计的时候,经常会遇到一些语句被不断的重复执行,这样的代码极长又低效,很不直观,那么应该考虑用循环体来实现。
1,while语句:与C在表达上有区别,c有while与do……while形式;Python下:while与while……else……形式
1)while形式下:
i=1 whilei<5: print'Welcomeyou!' i=i+1
2)while……else……形式下:
i=1 whilei<5: print'Welcomeyou!' i=i+1 else: print"Whileover!" #循环正常结束
注意:如果while非正常状态结束(即不按循环条件结束),则else语句不执行。如下:
i=1 whilei<5: print'Welcomeyou!' i=i+1 ifi==2: print'While……' break else: print"Whileover!"
运行结果:
1>>> 2Welcomeyou! 3While……
补充:
continue语句:在while循环体中出现时,本次循环continue之下的语句不被执行,直接进入下一次循环。
i=1 whilei<=5: ifi==2ori==4: print'While……continue' i=i+1 continue print'Welcomeyou!' i=i+1 else: print"Whileover!"
运行结果:
>>> Welcomeyou! While……continue Welcomeyou! While……continue Welcomeyou! Whileover!
五,小结:
本文介绍了Python的变量,输入输出函数,表达式,基本语句(分支和循环)等知识的相关使用,通过练习,应该对Python有一个初步的认识。