Python基础

一、安装

请参考Python自动化中的python安装

二、语言特性

语言的对比

C++\java 编译语言 C语言没有标准库,C++标准库不够简洁和易读 内存管理由开发者负责
Python、tcl、perl 解释型脚本语言,不需要编译 由内建的标准库,高级的数据结构

内存管理由python解释器负责

编译对比

Java 程序--->编译成字节码--->解释器生成机器文件

javac a.java

java a

C 程序--->编译成机器文件  
Python 程序--->解释器生成字节码文件 python a.py

 

由于整个Python语言从规范到解释器都是开源的,所以理论上只要水平够高,任何人都可以编写python解释器,来执行python代码,事实上,确实存在多种python解释器。

Jython介绍:需要安装Jython

1.Jython是纯Java实现的。Python的代码可以用Jython运行,只要没有用到扩展库。因为Jython实现了一个Python解析器,可以解析执行Python的代码。
2.Jython在import 一个Python文件的时候,会编译生成.class文件,而不是.pyc文件。
 
python程序变成java程序: jythonc a.py  生成 a.java
CPython介绍(默认解释器):

当我们从python官网下载并安装好python2.7后,就直接获得了一个官方版本的解释器,CPython,由于python是由C语言开发的,所以叫CPython,python在性能薄弱的地方可以用c语言编写,命令行下运行python就是启动CPython解释器,CPython用>>>作为提示符

IPython介绍:

执行python代码时和Cpython处理方式一样,只不过提示符用In[序号]:

 

三、IDLE的使用

交互式解释器,不保存输入的程序

主提示符>>>    等待输入下一个语句

次提示符...       等待输入当前语句的其他部分

四、数字

1/2 结果为0
1/2.0 结果为0.5

from __future__ import division

1/2

结果为0.5
1//2 整除  0
1.0//2.0 0.0
1%2 求余1
2.75%0.5 0.25
2**3 2的3次幂=6
   

 

 

长整型:普通整数不能大于2147483647(也不能小于-2147483648),如果需要更大的数,可以使用长整数,数字后面有一个L,长整数和普通整数可以混合使用

十六进制:0xAF    八进制:010   (首位都是零)

运算符:+    -    *    /      //     %     **

比较运算符:<  <=     >       >=      ==     !=    

逻辑运算符:and     or    not

变量:变量名包括字母、数字、下划线,变量名不能以数字开头(装材料的锅碗瓢盆)

表达式:某件事情(食谱的材料)  

语句:做某件事情(烹饪的方法)

x=1+2(x为变量,1+2为表达式,x=1+2为语句)

不支持自增,自减

数值内建运算符及内建函数:

1.abs()

2.divmod()

3.pow()

4.round()

5.*

6.//

7.%   等等,列出了小部份

比较内建函数的功能区别:

函数int()直接截去小数部分,返回值为整数

函数floor()得到最接近原数但小于原数的整数,返回值为浮点数

函数round()得到最接近原数的整数(四舍五入),返回值为浮点数

其他数值相关模块

很多关于数字的函数都是内建函数,在__builtin__模块中,解释器自动导入,无需再写import语句,另外还有几个跟数字相关的模块,如下所示:

1.decimal - 十进制浮点运算类

2.array - 高效数值数组

3.math/cmath - 标准C库数学运算符,常规运算在math中,复数运算在cmach中

4.operator - 数字运算符的函数实现,例如tor.sub(m,n)等价于m-n

5.random - 多种伪随机数生成器,函数randrange(),uniform(),random(),choice()

五、获取用户输入

x=input("x: ")   //如果输入的是字符串,则必须带双引号“daisy”

y=raw_input("y: ")  //把输入的数据当成原始数据

print xxx     //输出内容

str()函数显示给人看的

repr()函数显示给机器看的

六、函数

pow(2,3)内建函数

七、模块

__builtins__模块是在程序开始时自动被解释器导入的,可以看成适用任何一级python代码的全局变量

import math  import 模块名

math.foor(32.9)  模块.函数   使用这个模块的函数

如果不存在不同模块中有相同的同名函数的情况下,可以使用函数名称   from math import sqt      sqt(9)  (如果还有一个模块也有sqt(),这种形式会导致引用同一个函数名,有重复的现象,不知道用哪个模块的函数了)

_xxx 不用from module import *导入

__xxx__ 系统定义名字

__xxx 类中的私有变量,模块外或类外不可以使用

八、运行脚本

方法一、命令行:python test.py   (必须在test文件的路径下执行 或者 用test的全路径)(linux/windows)

方法二、在程序的首行加入#!/usr/local/bin/python解释器的绝对路径,文件加入可执行权限,直接在命令行窗口输入 test.py即可运行(unix),双击test.py(windows)

如果不想让窗口一闪而过,在程序的最后一行加入 raw_input("Press<enter>")

方法三、用软件工具sublime或者eclipse运行

九、注释

#

十、字符串

字符串即一串字符,可用单引号或双引号标注

转义字符,用反斜线\标示

用+拼接字符串

把其他字符转换成字符串:

1)repr(""),转换成合法的python表达式,给机器看的

2)str(""),比上一个函数更容易阅读,给人看的

3)··

十一、其他

1)如果需要写一个非常非常长的字符串,可能要跨很多行,那么,可以使用三个引号代替普通引号,print''' this is a very long string,'''也可以使用三个双引号"""long string""",这时可以在字符串中使用单引号和双引号,而不需要使用反斜线进行转义,同理适用于小括号,中括号,大括号。

2)普通字符串需要换行时需要在最后一个字符后面加上反斜线\,这个用法也适用于表达式和语句

3)对于长路径,需要使用’c:\\nowhere\\file'  双反斜线在转义成单反斜线

4)原始字符串以r开头,print r'C:\nowhere', 打印出的结果也是最原始的C:\nowhere,此时反斜线没有被转义

十二、Unicode

Python中的普通字符串在内部是以8位的ASCII码形式储存的,而Unicode字符串则储存为16位Unicode字符。u‘Hello ,world’

十三、帮助

1.使用help()内建函数

help(函数名)    //得到相应的帮助信息

十四、编程风格

#/usr/bin/env python

"this is a test module"

import sys

import os

debug=True

class FooClass(object):

     "foo class"

     pass

def test():

      "test function"

      foo=FooClass()

if __name__=='__main__':

       test()

模块被导入时,__name__值为模块名字

模块被执行执行时,__name__的值为__main__

 

posted @ 2017-08-15 10:47  eudaemonia  阅读(274)  评论(0编辑  收藏  举报