目录
Python注释的合理使用
Python空行的合理使用
模块
Python数据类型
列表的访问和切片
结构化程序设计
函数
面向对象编程
注释符号#
age = 25 #liming age
print age
如果代码中存在中文,则需要在开始位置进行注释说明。
#-*-coding:UTF-8-*-
通常情况下为了区分每一段代码的具体功能,在函数之间或者类之间空一行。
#!/user/bin/python
#-*-coding:UTF-8-*-
class A:
def funx (self):
print "funx()"
def funy (self):
print "funY()"
class B:
def funm (self):
print "funm()"
def funn (self):
print "funn()"
...
空行分为逻辑行和物理行
物理行是在编程的过程中肉眼可以可见的,而逻辑行是区分程序语句的,用;隔开,例如:
#!/user/bin/python
#-*-coding:UTF-8-*-
a=4;d=6;#这是一个逻辑行,后面一个;也可以省略
print a+d
#这是一个物理行
print 5+a
换行符\
#!/user/bin/python
#-*-coding:UTF-8-*-
a='dfd ffdfdg dfgdf \ #这就是换行符号\
dgdfg dfgdfgdfgdfgdfghdfh'
print a
主要作用是减少重复性的工作,提高效率。
比如在ABAQUS软件中,包含的模块有:Part模块、Interaction模块、Step模块等等。
类或者函数的集合就是模块,他可以实现某种特殊的功能,例如:
import math
import sys
import cv2
还可以使用from ...import...语句
第一个省略号用于表示模块,第二个省略号表示模块中的某种方法,如:
from sys import path
from math import * #导入math模块中的所有方法
from sys import path as p #导入模块中的函数并取别名
***.***
.前面表示模块,.后面表示方法,如:
import sys
print sys.path
查看某一模块下的所有属性名和方法名:
import sys
print dir(sys)
---------- Python ----------
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'getwindowsversion', 'hexversion', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'py3kwarning', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions', 'winver']
Python内置的数据类型主要有:数字类型、字符串类型、列表类型list、元祖类型tuple、字典类型dic等。
数字类型又可以分为:整数类型【长整型、短整形】、浮点类型、复数类型。Python语言可以自动的对数据类型进行分类转换,不需要申明变量的类型。比如:在C语言中需要先指定数据的类型,int a=100;而Python中直接用a=100。
Python语言可以根据数值的大小自动转换数据的类型,Python中的浮点型数据类型只有双精度,而没有单精度。
Python作为一种面向对象的编程语言,任何一种数据类型都是一个对象。
type是__builtin__模块的一个类。
--builtin--模块中定义的都是Python的内置函数,这些不需要导入模块,Python解释器将会自动导入。
示例:
#!/user/bin/python
#-*-coding:UTF-8-*-
a = 5
print type(a)
b = 2.221
print type(b)
d = 4+55j
print type(d)
f = False
print type(f)
输出结果如下:
---------- Python ----------
Output completed (0 sec consumed) - Normal Termination
字符串类型
字符串类型使用单引号、双引号或者三引号,这些引号都是在英文输入的状态下输入。
在Python中单双引号的作用相同,但是三引号的作用是用来定义多行字符串。
Python中的转义字符(\),如:
print ' this\'s apple'
转义字符 | 含义 | 转义字符 | 含义 |
\' | 单引号 | \v | 纵向制表符 |
\'' |
双引号 | \r | 回车符 |
\a | 发出系统响铃 | \f | 换页符 |
\b | 退格 | \o | 代表八进制数的字符 |
\n | 换行符 | \x | 代表十六进制的字符 |
\t | 横向制表符号 | \000 | 终止符,后面内容将全部被忽略 |
Python多变量快速赋值,例如:
x,y,z = 0,1,2
Python的全局变量
用关键字global申明
Python运算符和表达式
赋值运算符=
运算符 | 名称 | 说明 | 实例 |
+ | 加 | 对象相加 | 8+5返回13;‘a’+'b'返回‘ab’ |
- | 减 | 两数相减 | 6-6返回0;-8表示负数-8 |
* | 乘 | 数相乘或重复多次 | 5*3返回15;‘a’*3返回‘aaa’ |
/ | 除 | 两数相除 | 5/3返回1;5/2.0返回2.5 |
** | 幂 | x**y返回x的y次幂 | 5**3返回125 |
% | 取余 | 返回余数 | 10%3返回1 |
// | 取整 | 返回商的整数部分 | 5//3.0返回2.0 |
运算符 | 名称 | 说明 | 实例 |
> | 大于 | a>b,返回a是否大于b | 6>5返回True |
< | 小于 | a | 6<5返回False |
<= | 小于等于 | 包含小于和等于,满足一个即可 | 6<=5,返回False |
>= | 大于等于 | 包含大于和等于,满足一个即可 | 6>=5,返回True |
== | 等于 | 比较两个对象是否相等 | a=5;b=6;a==b返回False |
<> or != | 不等于 | 比较两个对象是否不相等 | a=5;b=6;a!=b返回True |
运算符 | 说明 |
not | 逻辑‘非’ |
and | 逻辑‘和’ |
or | 逻辑‘或’ |
Python优先级
只需要记住()最高即可,别的需要时再查。
Python中列表的操作【此处只讲解列表,元组暂时不做说明】
列表方法 | 说明 |
append(obj) | 在列表末尾加对象obj |
extend(ite) | 在列表的末尾加ite元素 |
pop([index]) |
指定index移除的元素,如果不指定index则移除最后一个 |
remove(value) | 删除第一次出现的value |
reverse() | 对列表翻转 |
sort() | 对列表排序 |
直接上代码:
aa = [5,6,23,2]
aa.sort()
print aa
---------- Python ----------
[2, 5, 6, 23]
Output completed (0 sec consumed) - Normal Termination
#!/user/bin/python
#-*-coding:UTF-8-*-
list = ['apple','peach','banana']
print list #输出列表
print list[2] #打印列表中的第三个元素
list.append('pear') #在列表末尾加pear元素
print list
list.insert(2,'milk') #在列表第三个元素前面插入一个元素milk
print list
list.remove('apple') #去掉元素apple
print list
print list.pop() #取出最后一个元素并打印出来最后一个元素,只有pop可以返回取出的元素
print list 打印取出后剩余的元素
---------- Python ----------
['apple', 'peach', 'banana']
banana
['apple', 'peach', 'banana', 'pear']
['apple', 'peach', 'milk', 'banana', 'pear']
['peach', 'milk', 'banana', 'pear']
pear
['peach', 'milk', 'banana']
Output completed (0 sec consumed) - Normal Termination
看代码一目了然
#!/user/bin/python
#-*-coding:UTF-8-*-
list = ['apple','peach','banana','pear']
print list #输出列表
print list[-2]
print list[1:-1]
print list[-3:-2]
print list[:]
---------- Python ----------
['apple', 'peach', 'banana', 'pear']
banana
['peach', 'banana']
['peach']
['apple', 'peach', 'banana', 'pear']
Output completed (0 sec consumed) - Normal Termination
控制语句包括:
顺序结构
循环结构
条件语句
条件语句
情形1:(if...else)
if (expression):
sentence1
else:
sentence2
以上如果expression为True,则执行语句sentence1,否则执行sentence2.
情形2:(if...elif...else)
if (expression1):
sentence1
elif (expression2):
sentence2
else:
sentence3
以上如果expression1为True,则执行语句sentence1,否则判断expression2是否为True,如果为真则执行sentence2;
如果都为False,则执行sentence3。
注:在if和else之间可以有多个elif
控制台输入函数input() 和 raw_input()
input()函数只支持数字或者表达式,不支持字符串的输入,函数语句为:
input ('prompt') ->value
参数prompt为提示用户输入信息,返回数字类型的值。
raw_input()函数返回字符串类型的,函数语句为:
raw_input ('prompt') ->string
参数prompt为提示用户输入信息,返回字符串类型的值。
使用int()和float()可以对输入的数据类型进行转化。
循环语句(while,for...in)
while语句还可以和else一起搭配使用,也可以单独使用。
while (expression):
...
else:
...
当while最后一次循环结束的时候,将执行else语句。
for...in循环
for..in 通常用于遍历某个集合,访问集合中的每一个元素。
for var in set:
...
else:
...
每执行一次从set中取出一个值传给var。
break和continue
如果在程序中希望终止某一程序语句,可以使用continue或者break,其中break语句是终止整个循环,下次不再循环,而continue是指终止本次循环,进入下一个循环。
实例:
#!/user/bin/python
#-*-coding:UTF-8-*-
#break示例
a=1
while a<10:
print 'this is %s small than 10'%a
a+=1
break
print '只执行一次,彻底跳出了'
print 'break威力好大啊!'
---------- Python ----------
this is 1 small than 10
break威力好大啊!
Output completed (0 sec consumed) - Normal Termination
#continue示例
#!/user/bin/python
#-*-coding:UTF-8-*-
a=1
while a<10:
print 'this is %s small than 10'%a
a+=1
continue
print '只执行一次,彻底跳出了'
print 'break威力好大啊!'
---------- Python ----------
this is 1 small than 10
this is 2 small than 10
this is 3 small than 10
this is 4 small than 10
this is 5 small than 10
this is 6 small than 10
this is 7 small than 10
this is 8 small than 10
this is 9 small than 10
break威力好大啊!
Output completed (0 sec consumed) - Normal Termination
源代码包的组成
一个源代码包中包含多个模块,一个模块中包含多个函数或类,一个类中可能又包含子类以及若干个函数。
除了内置的函数之外,还可以自定义函数。
定义函数使用的关键字def,形式为:
def 函数名(参数1[=默认值1],参数2[=默认值2],...):
...
return expression
函数名通常是以字母或者下划线开始,后面跟字母或者下划线数字。
函数中的参数可以有一个或者多个,所有的参数放在()中,每个参数之间用,隔开。
函数的形参和实参
()里面的参数代表形式参数,简称形参,与形式参数相对应的参数为实参。
注:形式参数和实际参数的顺序必须一一对应,但是当形式参数中给定默认值的时候,顺序可以不一致。
示例:
#!/user/bin/python
#-*-coding:UTF-8-*-
#该函数的作用是求解两个加数的和
def sum (a,b): #a,b为形式参数
add = a+b
print add
sum(99,100) #调用sum函数,其中99,100为实际参数,a=99,b=100
---------- Python ----------
199
Output completed (0 sec consumed) - Normal Termination
#指定默认参数的情况下
#!/user/bin/python
#-*-coding:UTF-8-*-
def sum (a,b=99):
add = a+b
print add
sum(100)
---------- Python ----------
199
Output completed (0 sec consumed) - Normal Termination
注意:对于形式参数的排序,需要将没有赋默认值的参数放在给定初始值的形式参数前面,即def sum(a,b=99):是正确的,def sum(a=99,b):是不合理的。
函数的返回值
函数的返回用return语句,后面可以跟具体的变量或者表达式,如果return后面没有返回值,则表示返回值为None。
None作为Python语言中的对象,不属于数字也不属于字符串类型。
示例:
def sum (a,b=99):
add = a+b
return add #返回值
ad = sum(1000)
print ad
---------- Python ----------
1099
#如果不设置返回值
def sum (a,b=99):
add = a+b
#return add
ad = sum(1000)
print ad
---------- Python ----------
None
#以上代码可以等效为:
#!/user/bin/python
#-*-coding:UTF-8-*-
def sum (a,b=99):
add = a+b
return
ad = sum(1000)
print ad
---------- Python ----------
None
递归函数
递归函数简单的说就是自己调用自己的函数。
递归函数分为两个过程:
1、递推:函数调用自己;
2、回归:函数从后向前返回的过程。递归结束后再按照相反的顺序逐级返回。
示例:求阶乘
递归实现过程如下图所示:
源代码:
#!/user/bin/python
#-*-coding:UTF-8-*-
def factorial(n):
if n==0:
return 1
else:
return n*factorial(n-1)
a = factorial(10)
print '10的阶乘是:',a
---------- Python ----------
10的阶乘是: 3628800
lambda函数
lambda的功能是创建匿名函数。
之前所介绍的函数,函数名就是函数的标识符,但是匿名函数的标识符和函数名之间没有绑定,只是通过变量和表达式进行构建函数,不适用条件语句和循环语句,所以lambda函数也称为表达式函数。
格式如下:
lambda 变量1,变量2,...:expression
其中变量1和变量2...用计算表达式expression
lambda函数和普通函数不同点就是缺少函数名,变量的后面同样有冒号;
示例:
#!/user/bin/python
#-*-coding:UTF-8-*-
sum = lambda x,y:x+y
print sum(52,656)
---------- Python ----------
708
Gernerator
函数
Generator函数的定义格式:
#!/user/bin/python
#-*-coding:UTF-8-*-
def 函数名(形式参数):
...
yield expression
返回的关键字为yield,他和return的不同点是:
return从函数返回数据项后程序终止执行,但是yield返回之后仍然按照顺序向前执行。
map
函数
map()函数可以对多个序列中的每个元素执行相同的操作,并将计算结果组成一个列表。map函数示例如下:
#!/user/bin/python
#-*-coding:UTF-8-*-
def five(x):
return x**5
print map(five,range(2,5))
---------- Python ----------
[32, 243, 1024]
将函数和语句结合起来进行程序设计,通常称为面向过程编程;
将数据和功能结合起来进行编程,称为面向过程的程序设计。
面向对象编程已经成为程序设计的主流,它主要包括:类、对象、方法、属性以及继承。
类和对象
类是对象的抽象,对象是类的实例化。
下图表示类、对象和属性之间的关系:
定义类
class class_name:
...
类可以将需要的变量和函数组合在一起,这个过程称为封装。
示例:
#!/user/bin/python
#-*-coding:UTF-8-*-
#!/user/bin/python
#-*-coding:UTF-8-*-
class Student:
print '定义一个学生的类'
def age (self):
print 25
def name (self,name='chengcheng'):
print 'name:',name
stu1 = Student()
stu1.age()
stu1.name()
stu2 = Student()
stu2.age()
stu2.name(name='dongdong')
---------- Python ----------
定义一个学生的类
25
name: chengcheng
25
name: dongdong
以上程序定义了一个学生的类,该类中含有两个属性age和name,对该类进行实例化stu1和stu2,由于name属性中默认name=‘chengcheng’,所以stu1.name()为chengcheng;第二个实例stu2给name赋值为‘dongdong’,所以stu2.name(name='dongdong')的输出结果为dongdong。
类的属性
根据作用范围分类:包括私有属性和公有属性。
私有属性:该类之外的函数不能调用的属性;
公有属性:该类之外的函数可以调用的属性,表示方法:函数、方法或者属性的名字不是两个下划线开始。
根据实例与静态分类:包括实例属性和静态属性。
实例属性:以self作为前缀的属性。
静态属性(静态变量):类可以直接调用静态变量,但是实例化对象却不能调用静态变量。
实例:
#!/user/bin/python
#-*-coding:UTF-8-*-
#!/user/bin/python
#-*-coding:UTF-8-*-
class Student:
height = 170 #类属性
def __init__ (self):
self.age = 20 #实例属性
comefrom = '中国' #局部变量
if __name__=="__main__":
print Student.height
stu1 = Student()
print stu1.age
stu2=Student()
print stu2.age
---------- Python ----------
170
20
20
访问私有属性的方法:(慎用,这种方法可以任意改变实例属性的值,存在数据安全性问题,通常只用于程序开发阶段的测试和调试)
instance_classname__attribute
instance表示实例化对象,classname表示类,attribute表示私有属性。
实例:
#!/user/bin/python
#-*-coding:UTF-8-*-
#!/user/bin/python
#-*-coding:UTF-8-*-
#!/user/bin/python
#-*-coding:UTF-8-*-
#!/user/bin/python
#-*-coding:UTF-8-*-
class Student:
height = 170 #类属性
def __init__ (self):
self.__age = 20 #实例属性
if __name__=="__main__":
stu1 = Student()
print stu1._Student__age
类的方法
类的方法和类的属性一样,包括共有方法和私有方法。私有方法不能被该类之外的其他函数调用,也不能被外部类或者函数调用。
Python可以使用staticmethod()函数或者@staticmethod将普通函数转换为静态方法,静态方法相当于全局函数,没有与类的实例绑定。
类的常用内置方法
子类
Python语言中允许使用子类。例如人由头、身子、腿等部位组成,因此可以设计出人、头、身子、腿等几个类,但是又由于头、身子、腿只是人的一部分,因此可以将这些类放在人这个大类的内部,这就是子类。调用子类的方法:
1、直接使用外部类来调用内部的子类,生成子类的实例,在调用子类的方法。
obj_name = outclass_name.inclass__name()
obj_name.method()
obj_name表示子类的实例,outclass_name表示外部类的名字,inclass_name表示子类的名字,method表示子类的方法。
2、先对类进行实例化,再实例化内部类,最后调用内部类的方法。
out_name = outclass_name() #out_name外部类的实例
in_name = outclass_name.inclass_name() #内部类的实例
in_name.method()
继承、多态、异常处理等内容此处不做介绍,需要时在查相关资料!
差不多就这么多吧,祝大家国庆节快乐!明天开溜!!!