第1、2、3章 Python基础

Python简介:

Python是一种解释性语言,Python的正则表达式引擎很大程度是基于Perl的。
Jython是一个完全用Java开发的Python解释器,可以在只有Java虚拟机的环境中运行Python程序,在Jython环境中,Java和Python对象可以交互,也可以访问Java的标准类库。
Python有一点点函数化编程结构。
标准版的Python是用C编译的。
Python是大小写敏感的。


python 脚本启动方式:

#!/usr/local/bin/python  # 方法一:直接指定解释器
#!/usr/bin/env python    # 方法二:利用env指令

方法一:当你知道Python的完整路径时,可以直接指定解释器。
方法二:env是一个指令,可以在系统搜索路径中找到Python解释器。
在第一行用这两种方法指定后,给Python文件 +x 权限,就可以 ./test1.py 的方法直接执行。


输入输出:

print 变量名
print '%s-%d' % ('jack', 20) # %s %d %f

import sys
print >> sys.stderr, 'Fatal error!'  # 输出重定向到标准错误输出
logfile = open('./log.txt', 'a')     # 输出重定向到文件
print >> logfile, 'Fatal error!'
logfile.close()


print 'today', 'is a nice day', # 加逗号后不换行,但后面默认添加一个空格 

input()
raw_input()  # 读取一个字符串并删除串尾的换行

注释:

# 行注释

# 多行注释--其实是一个字符串
'''
多行
'''

# 文档字符串,help(foo)可查看
def foo():
    "This is a function..."
    pass

操作符:

+ - * / %   # 加、减、乘、除、取余
**          # 乘方

//          # 与/注意比较,( // 取整除,返回商的整数部分)
8.1/3       # 2.6999999999999997
8.1//3      # 2.0

# 比较操作符
< <= >= > == != <>

# 逻辑操作符
and or not

数字类型:

int
long
bool
float
complex        # 复数
complex(2,3)   # (2+3j)

字符串、列表、元组、字典:

单引号、双引号、三引号
索引[]
切片[:]
+ 号用于字符串连接
* 号用于字符串复制

列表[]
元组() : 元组不可更改,但内容可以更改
字典{}
a = ([1,2,3],4)
a[0].append(4)
print a           # ([1, 2, 3, 4], 4)

if、while、for:

if ...:
    pass
elif ...:
    pass
else:
    pass

while ...:
    pass

for i in ...:
    pass

# 列表解析
a = [i+1 for i in range(5) if not i % 2]   # [1, 3, 5]

错误和异常:

try:
    pass
except e:
    pass

raise语句

函数:

# 带默认参数的函数
def foo(age=20):
    "description"
    pass

这里写图片描述

模块:

# 导入模块
import sys
reload(sys)

语句与语法:

\n : 换行
\  : 继续上一行
;  : 将两个语句连接在一行中
() [] {} 均可跨行书写
增量赋值:
+=  -=  /+  %=  *=  **=
<<=  >>=  &=  ^=  |=

多重赋值:(等号两边的都是元组)
x, y, z = 1, 2, 'jack'
建议改写为:(更易读)
(x, y, z) = (1, 2, 'jack')

交换变量值:
x, y = 1, 2
x, y = y, x   # 直接就交换了

标志符:

合法的Python标志符:

  • 第一个字符必须是字母或下划线;
  • 大小写敏感;
  • 只能由字母,数字,下划线构成。

关键字:
这里写图片描述

内建的名字(built-in)虽然不是关键字,但应该把它作为系统保留字,不做它用,因为Python不支持重载标志符。

Python用下划线作为变量前缀或后缀指定特殊变量。
普通变量尽量避免使用下划线作为变量名的开始。

_XXX_  :  系统定义名字
_XXX   :  类中的私有变量名

基本风格指南:

import this  # 查看Python之禅,

模块结构和布局(典型示例):
(1)起始行
#!/usr/bin/env python2)模块文档
'''This is the doc'''
module.__doc__ 可访问
(3)模块导入
import ...4)(全局)变量定义
(5)类定义
class.__doc__ 可访问类的文档变量
(6)函数定义
function.__doc__ 可访问函数的文档变量
(7)主程序
if __name__ == '__main__':
    test()

关于__name__ 简单说两句,详情可参看我的博客:
如果模块是被导入,__name__的值是模块名字;
如果模块是被直接执行,__name__的值是'__main__'.

内存管理:

  • 变量无需事先声明;
  • 变量无需指定类型;
  • 不用关心内存管理;
  • 变量名会被回收;
  • del语句能直接释放内存。

引用计数:
计数增加情况:

  • 对象被创建
  • 另外的别名被创建
  • 作为参数传递给函数
  • 成为容器对象的一个元素

计数减少情况:

  • 一个本地引用离开了作用范围
  • 对象的别名被显式销毁
  • 对象从一个窗口对象被释放myList.remove(x)
  • 窗口对象本身被销毁del myList
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值