Python基础语法


学习python基础语法视屏,与matlab语法相似,相比C、C++语言十分简单:不需要定义变量,不需要定义数据结构,有大量封装好的函数可供调用。

一、前期准备

就python,R语言,SPSS,SAS,matlab几种统计学工具比较来看:

SAS与SPSS都是商业软件,前者昂贵,后者全窗口操作没有技术含量(f);

matlab数据处理功能真的是呵呵,界面卡,试着用矩阵处理1000个节点的网络需要八九个小时,优势在于绘图和小规模数据处理;

python与R语言全开源,资源多,灵活,数据处理功能强大,为主要学习目标。

作为脚本语言,python、perl、ruby三者比较:

经典的perl语言,作为python与perl的发源地如今看来有些陈旧,且代码晦涩难懂(f)

ruby与python很相似,哲学意义在于 “There are many ways to do it.”。有人评价国内ruby适合大团队,小团队难维护。ruby是纯粹的面向对象。

Python简单、易学、可读性好,哲学意义在于There should be one-- and preferably only one --obvious way to do it. python倾向于面向过程和面向对象的糅合。

既然二者相似,选择python入门。

学习一门新语言,我主要留意C的不同之处:1.标识符:是否可包含特殊字符。2.对大小写的支持。3.新增或减少的数据类型。4.输入输出方式。5.是否面向对象。除此之外,算数逻辑运算规则相同;if-else语句,for循环,while循环大同小异;函数定义使用基本一致。

面向对象和面向过程的区别:

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 (步骤划分问题,依次调用函数)

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。(功能划分问题,对象调用函数)

二、基础语法知识点

(1)标示符:定义同C语言,以字母或下划线开头,可包括字母,下划线和数字。

注:以下划线开头的标识符是有特殊意义的。

> 以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;

> 以双下划线开头的(__foo)代表类的私有成员;

> 以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如__init__()代表类的构造函数。

(2)变量赋值:

 

> 简单赋值,Variable(变量)=Value(值)。

> 多变量赋值,Variable1,variable2,...=Value1,Value2,...

> 多目标赋值,a=b=variable

> 自变赋值,如+=,-=,*=等。在自变赋值中,python仅计算一次,而普通写法需计算两次;自变赋值会修改原始对象,而不是创建一个新对象。

注:python变量原理同C语言指针,修改变量值只是新指向一个地址,不改变原来地址的值。

(3)大小写:区分大小写

(4)注释:#...注释单行; '''...'''注释多行。

(4)数据类型:string, int, float, list, tuple, boolen,

注:字符串可用‘’, , . 如果字符串中含单引号,则需要用双引号,或者将字符串中单引号转义。三引号用户换行。

tuple元组数据用(),list列表数据用[ ].

(5)输入输出:

str1 = raw_input(' input: ') #输入将全部转化为字符串存储。

type(str1) #测试变量类型

id(str1) #返回变量所在内存地址

f=float(str1) #强制类型转换

print (format(f, '.2%')) #格式化输出m.n%, m是占位,n是精度

printf format(0.3456, '.2%'), f #多项输出用逗号隔开,输出函数括号可省略

注:指定输出的占位若大于有效位数,则右对齐。若小于有效位数,则忽略占位照常显示。

(6)函数

函数类型:内部函数,第三方提供函数,自定义函数

内部函数四种类型函数库:字符函数库(无需导入),数学函数库(import math),os函数库(import os),网络函数库(import socket)...

第三方提供函数需安装导入

自定义函数:

def testfunc(a,b,c):

(tab) content

函数返回值,可返回整数、数字、元祖。函数可以作为参数,字典或列表中的元素使用。

实参赋值:可一一对应赋值 testfunc(1,2,3);指定形参一一赋值 testfunc(b=2,a=1,c=3);有预定义值的参数不能先于无预定义值的参数,且可被修改预定义值。

(7) if-elif-else, while-else, for

if a>0:

statement

else:

if a=0:

statement

else:

 

while 1:

while i<=5:

web.open_new_tab(http://www.cadn.com);

i+=1

time.sleep(0.8)

else:

os.system('killall /F /IM chrome.exe')

 

for target in sequences:

statement

sequences可以是:lists, tuples, strings, files

for中循环次数在语句中控制。

 

评论关闭