gaofeng0210 发表于 2017-4-27 08:06:30

python_基础知识_1_简介

  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):
printx
"""
"""
for x in xrange(5,20,3): # 从5开始,每次递增3,直到20为止
printx """
a = (1,2,3,4,"5")
for i in a:
printi
  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 = 1b = 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的大括号写法,用:和同等距离缩进方式来代表这是属于这个函数块的内容,
页: [1]
查看完整版本: python_基础知识_1_简介