简述
- 解释型语言。在解释器中运行时处理,执行前不需要编译程序。 这与PERL和PHP类似
- 代码块不使用大括号 {} ,用严格的缩进代替
- 新行 为 结束,\将语句分为多行显示,[], {} 或 () 不需要\
- 多行语句用;
- 支持’、", 其中""“多行文本”""
- 单行注释#,多行注释用三个单引号或三个双引号
- 变量赋值不需要类型声明;多变量赋值a = b = c = “ydfind”、a,b,c=1,2.0,“ydfind”
- del var1:删除对象引用
- pass 是空语句,占位置
常用语法
- input(“等待用户输入,退出…\n”)
- 带参数:import sys;print(len(sys.argv), ‘;’, str(sys.argv))
- list[1:3],列表时第2到第3个,String时第2到第4个
- str(x)转为string,repr(x)转为string表达式,eval(str)计算其中的有效表达式,set(s)转为集合,frozenset(s)转为不可变集合,chr(x)/unichr(x)转为字符,ord(x)转整数,hex(x)/oct(x)转16及8进制
- type (dict):返回类型
- with。貌似和delphi差不多
- 时间
time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
time.sleep(secs)
- from fib import fibonacci:从fib导入函数fibonacci
标准数据类型
- Numbers数字。int、long(3好像被干掉了)、float、complex(复数)
- String字符串。转义字符,运算字符,字符串格式化;Unicode 字符串 u’Hello World’
- List列表。[];
- Tuple元组。()且不能更新,即不能赋值;一个元素时,需后面加逗号
- Dictionary字典。{k1 : v1, k2 : v2 },xx.keys(),xx.values(),clear()
运算符
- 10**20:10的20次方
- //:取整除
- 逻辑运算符:and、or、not
语句
- 条件
if 判断条件1:……
elif 判断条件2:……
else:……
- 循环
while 判断条件:……
for num in range(10,20):....
for fruit in fruits:......
while count < 5:
......
else:
break
continue
函数
def printinfo( arg1="默认值", *vartuple ):
# 使用全局变量,或nonlocal
global Money
print(arg1)
for var in vartuple:
print(var)
return;
# lambda表达式
sum = lambda arg1, arg2: arg1 + arg2;
包
包含__init__.py的文件夹
文件操作
file object = open(file_name [, access_mode][, buffering])
// access_mode:"w"、"r"等。"a"背后追加,默认文件访问模式为只读(r)。
// buffering:0,不会有寄存;1,访问文件时会寄存行;大于1整数,为寄存区缓冲大小;负值,寄存区缓冲大小系统默认。
fo = open("foo.txt", "r+")
str = fo.read(10)
fileObject.write(string)
fo.close()
// 当前位置
position = fo.tell()
// from:0开头,1当前,2末尾
seek(offset [,from])
os.chdir("/home/newdir")设为默认目录
getcwd()获得当前目录
异常
工作原理:当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。
try:...
except:...
except 名字:...
except 名字,数据:...
except OSError as err:
print("OS error: {0}".format(err))
else:...
finally:......
// 抛出异常
raise
raise NameError('HiThere')
// 自定义异常
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return repr(self.value)
类
// 支持多继承
class MyClass(Base1, Base2, Base3):
def __init__(self):
self.data = []
类方法必须包含参数 self, 且为第一个参数
_开头的变量、函数为私有变量和函数
__init__ : 构造函数,在生成对象时调用
__del__ : 析构函数,释放对象时使用
常用模块
- glob.glob(’*.py’):从目录生成文件列表
- re.findall正则表达式
- math.cos(math.pi / 4)
- random.choice([’’, ‘r’, ‘p’]),sample(),random(),randrange(6)
- zlib,gzip,bz2,zipfile,以及 tarfile支持数据压缩
报错
报错 | 原因 |
---|---|
io.UnsupportedOperation: can’t do nonzero cur-relative seeks | 改为open(“xxx”, “rb”) |