0 python是动态语言, 变量可以在运行中指向不同类型的数值, 同时python也是面向对象很彻底的语言,python中的函数等任何东西都是作为对象来使用的。
eg:
1 基本概念
a) 常量:
a.1) 软件运行周期中不变的量
a.2) 常量无名, 输入1则这个1就是一个常量,输入'a' 则 'a'就是一个常量
a.3) 不需要修饰符
b) 数
b.1) 整数
b.2) 长整数
b.3) 浮点数
b.4) 复数
(复数用来计算向量的旋转要比矩阵.科学计算和物理应该会用得到 )
复数由实数部分和虚数部分构成,real + imag(J/j后缀)
实数部分和虚数部分都是浮点数,写法如下:
数据之间可以进行强制类型转换,写法为:
c) 字符串
c.1) 单引号和双引号都能表示字符串
c.2) 转义符 \ 和c语言类似 eg: \n表示换行
c.3) 原生字符串 r"字符串" 表示如果出现转义字符但是不想被转义,常用语正则 eg:
对于中文,用格式 u"中文"来表示
c.4) 常用索引相关操作
c.5) 邪恶的eval() 功能类似于js中的eval,将括号内的字符串当成表达式来求值
字符串的乘法操作是将此字符串赋值n次
d) 变量
d.1) 首字符为字母(大小写均可)或_
d.2) 其他部分字符为字母(大小写均可) 数字 下划线
d.3) 区分大小写,name和Name是不同的变量,和linux规则相同
d.4) 变量类型是在运行时才确定的,取名忘记规则,直接全取英文最容易
e) 数据类型
e.1) 数值
e.2) 字符串
e.3) 线性容器
- 字符串也是一种线性容器
- List
- tuple(元组)
e.4) Hash容器
- Dict(字典)
- set
e.5) None ---> 内存未分配的一种状态
e.6) 逻辑类型(True, False)
f) 逻辑行和物理行
f.1) 物理行就是在编辑器中的一行
f.2) 逻辑行是一个业务
f.3) 一个物行中可以写多个逻辑行, 多个物理行也可以表示一个逻辑行
eg: >>> i=5; print(i) 就是一个物理行中展示两个逻辑一个是赋值业务 一个是打印业务
>>> s = "This is \
my world" 就是两个物理行展示一个逻辑行的业务,给s赋值,多行连接用反斜杠(\)
2 运算符与表达式
a) 运算符
注意python的布尔与,或,非写法分别为 and, or,not,
b) 运算符的优先级
c) 数值表达式
d) 逻辑表达式
e) 函数式表达式
f) repr()
3 逻辑控制结构
a) if
a = 1
if a==1:
print 1
elif a ==2:
print 2
else:
print 3
b) while
c) for
# -*- coding: GBK -* --->设置让python注释支持中文
"""
for x in range(10):
print x
"""
"""
for x in xrange(5,20,3): # 从5开始,每次递增3,直到20为止
print x """
a = (1,2,3,4,"5")
for i in a:
print i
d) break
e) continue
4 函数
#coding=gbk
"""
python 定义函数 和 函数重载
"""
def fun1(arg0):
print arg0
#fun1(1)
#fun1("abc")
# 参数有默认值
def fun2(a=1,b=2,c=3):
"""this is a print function"""
print 'a=',a
print 'b=',b
print 'c=',c
#fun2() # 在实参不赋值的情况下,使用函数预定义的数值 打印输出
#fun2(11,22,33) # 传递实参 按照实参数据打印
#fun2(b=222,c=333) # 打印结果 a = 1 b = 222 c = 333
#print fun2() # 返回None 函数fun2是一个没有返回值函数
# python可以返回多个数值
def fun3(a,b):
print 'a=',a
print 'b=',b
return a,b
#print fun3(1,2) # 结果 (1, 2)
# 用多个变量来接收返回值
c,d = fun3(1,2)
#print c
#print d
# 用一个变量来接收返回值 结果是一个元组 (1, 2)
e = fun3(1,2)
#print e
# lambda函数
f1 = lambda x,y:x+y
print f1(2,3)
# -*- coding: GBK -*
# 函数的嵌套使用
def f1(a):
def f2(b):
return a+b
return f2
q = f1(10)
print q #<function f2 at 0x016D83F0>
p = f1(20)
print p
print q(1)
print p(1)
5 面向对象编程
# -*- coding: GBK -*
# 类的定义 类的继承 类的封装(成员变量 构造函数 成员函数 私有函数)
class father:
def __init__(self): # 定义构造函数 必须要有self关键字,self是固定规则
self.m = 1 # 类的成员变量
def add(self):
self.p = 3
print self.p + self.m
class son(father):
def __init__(self):# 如果要使用父类的参数和方法,那么必须在子类构造函数中,引用父类的构造函数,否则执行 c.sum() c.add()时报错
father.__init__(self)
self.n = 2
def sum(self): # 类的成员函数定义, 定义时,必须要有self关键字
self.__privateMethod()
print self.m + self.n
def __privateMethod(self): # 类的私有函数定义,在类的实例化对象中是调用不到的
print "this is the private method"
def __zhanyou__(self): # 类的专有函数定义
print "this is the zhuanyou method"
c = son()
c.sum()
c.add()
#c.__privateMethod()# 类的私有函数定义,在类的实例化对象中是调用不到的 调用报错==>AttributeError: son instance has no attribute '__privateMethod'
c.__zhanyou__()
6 异常处理
# -*- coding: GBK -*
class myException():
def __init__(self):
self.m = 1
def add(self):
print "begin exception"
try:
a = 1/0
except Exception,e:
print e.message
a = myException()
a.add()
"""
结果:
begin exception
integer division or modulo by zero
"""
7 输入、输出、文件和目录操作
待续 待续 待续
# -*- coding: GBK -*
# os.walk递归遍历所有当前路径的文件,递归的遍历出所有子文件夹中的文件 E:\aptana\version.txt
"""
打印输出文件内内容
f = open(r"E:\aptana\version.txt","r")
print f.read()
f.close()
"""
import os
for root,dirs,files in os.walk(r'd:\news'):
for file in files:
print os.path.join(root,file)
附: 用惯了java在用python,真不习惯啊,
1 Python定义代码块去掉了java的大括号写法,用:和同等距离缩进方式来代表这是属于这个函数块的内容,