码迷,mamicode.com
首页 > 编程语言 > 详细

python基础

时间:2015-10-30 22:55:37      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

print ‘hello world!‘

print "%s is hello world %d" % ("Python",1)

 

 

logfile = open(‘/tmp/mylog.txt‘,‘a‘)

print >> logfile, ‘Fatal error: invalid input!‘

logfile.close()

 

raw_input()函数

 

操作符:+ - *  /  //(地板除)  % **(幂运算)

 

比较操作符:<   <=  >  >=  ==  !=  <>(不推荐)

逻辑操作符:and or  not

基本数字类型: int  long:10000000000L  bool  float:3.14159  complex:6.2 + 1.5j

 

for 和 range()

 

列表解析:

[x ** 2 for x in range(4)]

>>>0 1 4 9

文件内建函数:open(filename ,access_mode=<?>),file()

access_mode参数选择:r,r+,w,w+,a,a+,rb,r+b,wb,wb+,ab,ab+

r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

异常:

try:

  代码块

except  错误类型,e:

  print e

 

 

函数:

def name(参数):

  代码块

类:

class name():

  ver = 1

  def __init__(self,n = ‘a‘):

    self.name = n

  def haha(self):

    return ‘haha‘

 

self:必须,指向类实例.

ver:静态属性

__init__:构造方法,类实例创建完成后执行,可以完成初始化工作。

haha:自定义方法.

 

模块

使用函数:

int(obj):转换成int

len(obj):对象长度

type(obj):返回类型(元类)

str(obj):对人友好的转换成string

help(obj):文档

dir(obj):有obj:obj属性,无obj:全局变量名字

 

#!/usr/bin/env python   为了可以直接用名字运行文件。可加这句话

 

特殊符号:#  \(继续,换行代码)   ;(把多个语句写在同一行) 

 

理解变量赋值:

python变量赋值是地址赋值

x = 1
y = (x = x+1)

出错,赋值语句不是合法表达式,没有返回值,c语言中完全ok,然而python不行

y = x = x+1

完全没问题.

hello*2

‘hellohello‘

 

+= -= *= /=  %= **=

<<=   >>=  &=  ^=  |=

多元赋值:

x=y=z=1

x,y,z = 1, 1, 1

 

下划线:

_xxx:私有

__xx__:系统的

#/usr/bin/env python       #开始

“test module”   #模块文档


import sys    #模块导入

debug = Ture  #全局变量

class A(object):   #
    pass

def b():   #函数
    pass
       
if __main__ == __main__
        #主程序

引用计数:

x = 1

1对象被引用。

y = x

1对象又被引用

x = 2

1对象引用减少

y = x

1对象引用减少

1对象被回收。

del 删除引用。

以上是python的垃圾回收

os.lineseq:根据平台不同得到不同结束符

 

python对象:三个特征,可更改或不可更改。

1。唯一标示符,身份证

2。类型

3.值

标准类型:整型,布尔型,长整,浮点,复数,字符串,列表list,元祖tuple,dictionary

Null,文件,集合,函数,模块,类。

内部类型:代码对象(源代码),帧对象(不懂),跟踪记录,切片,省略,Xrange

对象比较:

字符串按照序列值比较

3<4<5

相当于

3<4 and 4<5

a is b       :       对象身份比较,地址是否相同

a == b     :       对象值比较,值是否相同

id(a)     :     获得身份证

有时候能用对象比较就不用值比较了,这样可能更快更好

*对于一些对象,python会缓存

例如:a =1

b =1

可能一看会以为指向不同的1

但是python,会把这种常见的1缓存,故你用id(a),id(b)会获得相同的地址,这种机制不稳定。实际没啥用。

内建函数:

cmp(a,b)

比较a,b大小,小返回负数,大正数,等于  0

str()和repr()(``操作符)

str面向玩家的友好转换。

repr()面向机器的友好转换。``(应该抛弃)和repr等价

type()和isinstance(a,b)

type过于复杂,返回一个类型的type类型类

type.IntType 可以得到一个相同的int 的type对象,这意味着,所有int类型会公用这一个对象,既然如此,尽量减少函数调用可以提高效率

同时,用 type(a) is type.IntType比较效率也会比,type(a) == type.IntType更高。

对这些类型类做一个总结就是:

标准类型类:基本,内建,数据(数据存储),对象(对数据和功能的高度抽象),原始(颗粒),类型(是一种类型)

按存储模型分类:原子类型(数值,字符串),容器类型(列表,元祖,字典)

按更新类型分类:可变(列表,字典)不可变(数字,字符串,元祖)

按访问类型分类:直接访问(数值)顺序访问(字符串,列表,元祖)映射访问(字典)

这样分类可以帮助理解,不可变理解是,里面对象占用了地址,他是不会离开的。直到被回收,所以一般我们觉得我们赋值,好像改变了,实际不过是变量换了一个地址罢了。

类型转换:

复数,浮点,长整,整。(这个顺序是默认类型转换,系统会把右边的转换成左边的)

地板除://   把小数去掉

import __future__ import division会实现真正的除法,默认是传统的除法。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

python基础

标签:

原文地址:http://www.cnblogs.com/wuweixin/p/4924520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!