Python基础语法(Python基础知识点)
Python与Perl,C和Java语言等有许多相似之处。不过,也有语言之间有一些明确的区别。本章的目的是让你迅速学习Python的语法。
第一个Python程序:
交互模式编程:
调用解释器不经过脚本文件作为参数,显示以下提示:
$python Python2.6.4(#1,Nov112014,13:34:43) [GCC4.1.220120704(RedHat5.6.2-48)]onlinux2 Type"help","copyright","credits"or"license"formoreinformation. >>>
键入下列文字在Python提示符,然后按Enter键:
>>>print"Hello,Python!";
如果您运行的是新的Python版本,那么需要使用打印语句括号像print("Hello,Python!");。但是在Python版本2.6.4,这将产生以下结果:
Hello,Python!
脚本模式编程:
调用解释器及脚本作为参数,并开始执行的脚本,并一直持续到脚本完成。当脚本完成时,解释器不再是活动的。
让我们在脚本中编写一个简单的Python程序。所有的Python文件将具有.py扩展。所以,把下面的代码写在一个test.py文件。
print"Hello,Python!";
在这里,我假设你已经在PATH变量中设置Python解释器。现在,尝试如下运行这个程序:
$pythontest.py
这将产生以下结果:
Hello,Python!
让我们尝试另一种方式来执行Python脚本。下面是修改后的test.py文件:
#!/usr/bin/python print"Hello,Python!";
在这里,假设Python解释器在/usr/bin目录中可用。现在,尝试如下运行这个程序:
$chmod+xtest.py #Thisistomakefileexecutable $./test.py
这将产生以下结果:
Hello,Python!
Python标识符:
Python标识符是用来标识一个变量,函数,类,模块或其他对象的名称。一个标识符开始以字母A到Z或a〜z或后跟零个或多个字母下划线(_),下划线和数字(0〜9)。
Python中标识符内不允许标点符号,如@,$和%。Python是一种区分大小写的编程语言。因此,Manpower和manpower在Python中是两个不同的标识符。
这里有Python标识符命名约定:
•类名以大写字母以及所有其它标识符以小写字母。
•开头单个前导下划线的标识符表示由该标识符约定意思是私有的。
•开头两个前导下划线的标识符表示一个强烈的私有的标识符。
•如果标识符末尾还具有两个下划线结束时,该标识符是一个语言定义的特殊名称。
保留字:
下面列出了在Python中的保留字。这些保留字不可以被用作常量或变量,或任何其它标识符。所有Python关键字只包含小写字母。
行和缩进:
一个程序员学习Python时,遇到的第一个需要注意的地方是,不使用括号来表示代码的类和函数定义块或流程控制。代码块是由行缩进,这是严格执行表示方式。
在缩进位的数目是可变的,但是在块中的所有语句必须缩进相同的量。在这个例子中,两个功能块都很好使用:
ifTrue: print"True" else: print"False"
然而,在本实施例中的第二块将产生一个错误:
ifTrue: print"Answer" print"True" else: print"Answer" print"False"
因此,在Python中所有的连续线缩进的空格数同样的会结成块。以下是各种语句块中的例子:
注意:不要试图理解所使用的逻辑或不同的功能。只要确定你明白,即使他们各种模块无需括号。
#!/usr/bin/python importsys try: #openfilestream file=open(file_name,"w") exceptIOError: print"Therewasanerrorwritingto",file_name sys.exit() print"Enter'",file_finish, print"'Whenfinished" whilefile_text!=file_finish: file_text=raw_input("Entertext:") iffile_text==file_finish: #closethefile file.close break file.write(file_text) file.write(" ") file.close() file_name=raw_input("Enterfilename:") iflen(file_name)==0: print"Nexttimepleaseentersomething" sys.exit() try: file=open(file_name,"r") exceptIOError: print"Therewasanerrorreadingfile" sys.exit() file_text=file.read() file.close() printfile_text
多行语句:
Python语句通常用一个新行结束。但是,Python允许使用续行字符()来表示,该行应该继续下去(跨行)。例如:
total=item_one+ item_two+ item_three
包含在[],{}或()括号内的陈述并不需要使用续行符。例如:
days=['Monday','Tuesday','Wednesday', 'Thursday','Friday']
Python引号:
Python接受单引号('),双引号(“)和三(''或”“”)引用,以表示字符串常量,只要是同一类型的引号开始和结束的字符串。
三重引号可以用于跨越多个行的字符串。例如,所有下列是合法的:
word='word' sentence="Thisisasentence." paragraph="""Thisisaparagraph.Itis madeupofmultiplelinesandsentences."""
Python注释:
一个井号(#),这不是一个字符串文字开头的注释。“#”号之后字符和到物理行是注释的一部分,Python解释器会忽略它们。
#!/usr/bin/python #Firstcomment print"Hello,Python!";#secondcomment
这将产生以下结果:
Hello,Python!
注释可能会在声明中表达或同一行之后:
name="Madisetti"#Thisisagaincomment
你可以使用多行注释如下:
#Thisisacomment. #Thisisacomment,too. #Thisisacomment,too. #Isaidthatalready.
使用空行:
一行只含有空格,可能带有注释,如果是空行那么Python完全忽略它。
在交互式解释器会话中,必须输入一个空的物理行终止多行语句。
等待用户:
程序的下面一行显示的提示,按回车键退出,等待用户按下回车键:
#!/usr/bin/python raw_input("Presstheenterkeytoexit.")
在这里,“已”被用来显示实际行之前创建两个换行。一旦用户按下键时,程序结束。这是一个很好的技巧,保持一个控制台窗口打开,直到用户完成应用程序运行。
在一行中多个语句:
分号(;)允许在单行写入多条语句,不管语句是否启动一个新的代码块。下面是使用分号示例:
importsys;x='foo';sys.stdout.write(x+'')
多个语句组作为套件:
一组单独的语句,在Python单一的代码块被称为序列。复杂的语句,如if,while,def,andclass,那些需要一个标题行和套件。
标题行开始的声明(与关键字),并终止与冒号(:)),接着是一个或多个线构成该套件。例如:
ifexpression: suite elifexpression: suite else: suite
命令行参数:
我们可能已经看到了,比如,很多程序可以运行,它们提供有关如何运行的一些基本信息。Python中可以使用-h做到这一点:
$python-h usage:python[option]...[-ccmd|-mmod|file|-][arg]... Optionsandarguments(andcorrespondingenvironmentvariables): -ccmd:programpassedinasstring(terminatesoptionlist) -d:debugoutputfromparser(alsoPYTHONDEBUG=x) -E:ignoreenvironmentvariables(suchasPYTHONPATH) -h:printthishelpmessageandexit [etc.]
您也可以设定您的脚本,它应该以这样的方式接受各种选项。命令行参数是一个高级主题并在以后学习,当您通过其它的Python概念后。
以下是补充:
Python中查看变量对应的地址用函数id(var)。
注意在Python中与在C语言中有一些不同的地方。比如:a=10,在Python中是这样的,数值10在内存中开辟一块空间来存放数据10,然后用a去引用这个10,所以这里a相当于一个标签,如果a被重新赋值了,相当于a又指向了另一个地址,比如a=1000,那么a指向了数据1000的地址,在这点与C语言有很大的不同。
所以相同的数据用不同的变量去引用,它们的地址一样,比如:
a=123 b=123
然后我们输出id(a)和id(b)会发现这两个值完全一样
Python中的复数
在Python中复数类型的虚部用j表示的,比如a=3+4j
可以直接进行计算。
Python中序列的基本操作
(1)len() 求序列的长度
(2)+ 序列拼接
(3)* 重复序列元素
(4)in 判断元素是否在序列中
(5)max()与min() 返回序列的最大值和最小值
(6)compare(str1,str2) str1小于str2返回-1,等于返回0,大于返回1
元组
a,b,c=(1,2,3)
t=(“name”,30,”school”)
列表
list=[“name”,30,”school”]
可以看出,元组是用(),而列表用[],另外在元组中不能改变单个元素的值,而列表可以。
Python里面增加了**运算符和//运算符
**用于幂的计算,比如计算2的3次方,就直接a=2**3
>>>a=2**3 >>>printa 8 >>>
//用于向下取模,主要用于浮点数,比如3//1.7=1.0
>>>a=3//1.7 >>>printa 1.0 >>>
数字类型的内建函数
转换函数:将其他类型的数字转换为相应类型
int()、long()、float()、complex()
bool()
>>>a=6 >>>b=complex(a) >>>printb (6+0j) >>>
功能函数:
abs(num)绝对值
coerce(num1,num2)将num1和num2转换为同一类型,然后以一个元组的形式返回
>>>a=3.14159 >>>b=100 >>>printcoerce(a,b) (3.14159,100.0) >>>
divmod(num1,num2)获得商和余数的元组
>>>a=9 >>>b=6 >>>printdivmod(a,b) (1,3) >>>
pow(num1,num2,mod=1)快速幂取模运算
>>>a=2 >>>b=3 >>>printpow(a,b,5) 3
round(flt,ndig=1)对浮点型进行四舍五入运算
>>>printround(3.1415926,4) 3.1416 >>>
列表类型内建函数
list.append(obj)向列表中添加一个对象obj
list.count(obj)返回一个对象obj在列表中出现的次数
list.extend(obj)把序列obj中的内容添加到列表中
list.index(obj,i=0,j=len(list))返回list[k]
list.insert(index,obj)在index位置插入对象obj
list.pop(index=-1)删除并返回指定位置的对象,默认是最后一个对象
list.remove(obj)从列表中删除对象obj
list.reversed()
list.sort()
>>>arr=[1,1,5,6,9,7,3,2,11,56,45,78,100,55,0,5,9,10] >>>arr.append(89) >>>printarr [1,1,5,6,9,7,3,2,11,56,45,78,100,55,0,5,9,10,89] >>>printarr.count(5) 2 >>>arr1=[123,456,789] >>>arr.extend(arr1) >>>printarr [1,1,5,6,9,7,3,2,11,56,45,78,100,55,0,5,9,10,89,123,456,789] >>>arr.insert(1,999) >>>printarr [1,999,1,5,6,9,7,3,2,11,56,45,78,100,55,0,5,9,10,89,123,456,789] >>>arr.pop(0) 1 >>>printarr [999,1,5,6,9,7,3,2,11,56,45,78,100,55,0,5,9,10,89,123,456,789] >>>arr.remove(999) >>>printarr [1,5,6,9,7,3,2,11,56,45,78,100,55,0,5,9,10,89,123,456,789] >>>arr.sort() >>>printarr [0,1,2,3,5,5,6,7,9,9,10,11,45,55,56,78,89,100,123,456,789] >>>
列表有容器和可变特性
堆栈—后进先出
list.append()向队列尾部添加
list.pop()从队列尾部删除
队列—先进先出
list.append()向队列尾部添加
list.pop(0)从队列头部删除
字典类型:
访问字典中的值
通过键访问相应的值dict2['name']
访问字典的键dict2.keys(),返回一个列表
访问字典的值dict2.values(),返回一个列表
遍历一个字典
执行中字典的键不能被改变
删除字典元素和字典deldict2[name]deldict2
>>>dict={'name':'goujinping','age':'21','sex':'man','school':'NEFU'} >>>printdict {'age':'21','school':'NEFU','name':'goujinping','sex':'man'} >>>dict['age'] '21' >>>printdict['name'] goujinping >>>printdict['age'] 21 >>>forkeyindict.keys(): printkey age school name sex >>>forvalueindict.values(): printvalue 21 NEFU goujinping man >>>deldict['sex'] >>>printdict {'age':'21','school':'NEFU','name':'goujinping'} >>>deldict['school'] >>>printdict {'age':'21','name':'goujinping'} >>>deldict >>>printdict <type'dict'> >>>