Python 编程基础及操作

1Python 特点

• 解释型语言,伪编译
• 胶水语言
• 开源
• 跨平台
• 免费、自由软件
• 强类型、动态类型
• 自动内存管理
• 面向对象
• 有大量可用的库
• 增加其他语言编写并编译的模块即可扩展功能
 

2Python 的版本

  • 2.x  现在有大量应用
  • 3.x 今后趋势
  • 多版本共存与切换简便方法:更改系统环境变量path
  • 查看已安装版本方法
# chap02Python语言基础及工具
import sys
sys.version
输出   '3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)]'

使用pip管理第三方包

• Python2中需要单独安装
• 下载地址:
– https://pypi.python.org/pypi/pip
• 安装方法:
– cmd==>python get-pip.py
• 用法示例
pip install NumPy
pip list
pip install --upgrade SomePackage
pip uninstall SomePackage
• Python3安装包中已默认包含pip

3 Python基础知识

(1)Python的对象模型

对象是python语言中最基本的概念,在python中 处理的每样东西都是对象。

python中有许多内置对象可供编程者使用,内置 对象可直接使用,如数字、字符串、列表、 del等;

非内置对象需要导入模块才能使用, 如正弦函 数sin(x), 随机数产生函数random( )等。(就是import);

常用内置对象

(2)python的变量和引用

 1.变量的创建
x=3 创建了变量x,不需要提前声明变量

a,b=3,5
a,b=b,a

2.引用
在python中从变量到对象的连接称为引用。
>>>x=3
变量拥有自己的存储空间,变量连接到对象是该变量存
储了对象单元的内存地址,并没有存储对象的值。

3. 共享引用
共享引用是指多个变量引用同一个对象。下面的语句使两
个变量都引用同一个对象3
>>>a=3
>>>b=a
使用id函数可以查看对象的内存地址
>>>id(a)


4.垃圾回收机制
对于没有任何变量指向的值, Python自动将其删除。
Python跟踪所有的值,并自动删除不再有变量指向的值。
5.对象类型的动态的,强类型
>>> a=3
>>> type(a)
<type 'int'>
>>> a='4'
>>> type(a)
<type 'str'>
>>> a={3,5}
>>> type(a)
<type 'set'>
>>> a=[1,2,3]
>>> type(a)
<type 'list'>

6. 变量命名
• 以字母或下划线(有特殊含义)开头
• 变量名中不能有空格以及标点符号(括号、引号、逗
号、斜线、反斜线、冒号、句号、问号等等)
• 不要使用关键字(在keyword模块中)作变量名
• 不要使用系统内置的模块名或函数名(可以通过
dir(__builtins__)查看)作变量名
• 大小写敏感

空串表示为''或 ""

三引号'''或"""表示的字符串可以换行,支持排版较为复
杂的字符串;三引号还可以在程序中表示较长的注释。
 

(4)字符串

单引号、双引号、三单引号、三双引号可以互相嵌套

字符编码

ASCII

  一个字节,8个bit。占了一位,2^7=128个。(2^10=1024)

美国人发明计算机。最早有127个字符编码到计算机;

A  65

z  122

GB2312

 中文两个字节

Unicode 

utf-8

str(obj)把对象obj转换为字符串
int(x[,d])返回数字整数部分,或把d进制的字符串x转
换为十进制并返回, d默认为十进制
sorted(列表[,cmp[,key[reverse]]]返回排序后的列表
type(obj)返回对象obj的类型

 (7)对象的删除
Python中删除对象用del语句。 del用来删除一个对象,并
释放对象所占资源。 del的用法演示如下:
>>>a=[1, 2, 3]
>>>del a[1]
>>>a
[1, 3]
>>>x=5
>>>x
5
>>>del x #此后x就不存在了

基本输入输出
输出是通过print语句来完成的,
print语句的一般格式为:
print 对象1, 对象2, ... , 对象n
在Python3中, print是函数,而不是语句。

在Python2.7的版本中进行重定向输出的用法:
>>> fp = open(r'c:\mytest.txt','a+')
>>> print >>fp, "Hello,world"
>>> fp.close()
在Python 3.6版本中进行重定向输出的用法:
>>> fp = open(r'd:\mytest.txt', 'a+')
>>> print('Hello,world!', file = fp)
>>> fp.close()
 

模块的使用

• import 模块名
>>>import math

>>>math.sin(0.5)
>>>import random
>>>x=random.random( )
>>>y=random.random( )
#求0.5的正弦
#获得[0,1) 内的随机小数

>>>n=random.randint(1,100) #获得[1,100]上的随机整数
• 可以使用dir函数查看任意模块中所有的对象列表,如
果调用不带参数的dir()函数,则返回当前脚本的所有
名字列表。
• 可以使用help函数查看任意模块或函数的使用帮助。

• from math import sin #可以减少查询次数,提高执行速度
• from math import * #谨慎使用
>>> from math import sin
>>> sin(3)
0.1411200080598672
>>> from math import sin as f #别名
>>> f(3)
0.141120008059867
 

• 可以使用sys.modules.items()显示所有预加载模块的相关信息
• 在2.x中可以使用reload函数重新导入一个模块,在3.x中,需要使用imp模块的reload函数
• Python首先在当前目录中查找需要导入的模块文件,如果没有找到则从sys模块的path变量所指定的目录中查找。可以使用sys模块的path变量查看python导入模块时搜索模块的路径,也可以向其中append自定义的目录以扩展搜索路径。
• 在导入模块时,会优先导入相应的pyc文件,如果相应的pyc文件与py文件时间不相符,则导入py文件并重新编译该模块。


• os
• sys
• math
• Locale:提供了C语言本地化函数的接口,并提供相关函数实现基于当前locale设置的数字与字符串转换
• random
• struct
• pickle:序列化
• datetime
• time
• wmi:需安装
• tkinter: GUI开发
• urllib/urllib2:网页编程
• Pygame:游戏开发
• tkinter、 wxPython: GUI编程
• SciPy:科学计算
• PIL:图像处理
• fabric:远程操作与部署, http://docs.fabfile.org/en/1.10/
• capstone:反汇编框架
• ropper: ROP相关框架
• IDAPython: IDA插件, https://code.google.com/p/idapython/
• Yara:恶意软件识别与分类引擎
 

5 Python代码规范
(1)缩进
• 类定义、函数定义、选择结构、循环结构,行尾的冒号表示缩进的开始
• python程序是依靠代码块的缩进,来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。
• 同一个级别的代码块的缩进量必须相同。
• 一般而言,以4个空格为基本缩进单位,可以通过下面的方法进行代码块的缩进和反缩进:
– Fortmat→Indent Region/Dedent Region
(2)注释
一个好的、可读性强的程序一般包含30%以上的注释。常用的注释方式主要有两种:
– 以#开始,表示本行#之后的内容为注释
– 包含在一对三引号'''...'''或"""..."""之间且不属于任何语句的内容将被解释器认为是注释在IDLE开发环境中,可以通过下面的操作快速注释/解除
注释大段内容:
– Format→Comment Out Region/Uncomment Region

(3)每个import只导入一个模块(4)如果一行语句太长,可以在行尾加上\来换行分成多行,但是更建议使用括号来包含多行内容。
(5)必要的空格与空行
– 运算符两侧、函数参数之间、逗号两侧建议使用空格分开。
– 不同功能的代码块之间、不同的函数定义之间建议增加一个空行以增加可读性。
(6)适当使用异常处理结构进行容错,后面将详细讲解。
(7)软件应具有较强的可测试性,测试与开发齐头并进,后面将详细讲解。


Python文件名
• .py: Python源文件
• .pyc: Python字节码文件。对于Python模块,第一次被导入时将被编译成字节码的形式,以提高脚本的启动速度。对于非模块文件,直接执行时并不生成pyc文件,可以使用py_compile模块的compile函数进行编译。
• .pyo:优化的Python字节码文件。可以使用”python –O file.py”或”python –OO file.py”进行优化编译。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值