分享

Python学习笔记

yangguang 发表于 2015-3-3 19:31:51 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 8398
本帖最后由 pig2 于 2015-3-3 22:02 编辑
Python的领域:
shall编程
交互式模式
help(raw_input) 获取相应的帮助信息
dir(类名) 显示类名中的方法和属性
type(变量名) 显示变量的类型
id(变量名)  显示变量指向的地址
len() 可以测量列表,元组,字符串的元素个数大小

Python 内建函数
raw_input(‘Enter login name:’)
重定向:>> 或者 <<
logfile = open('E:/python/pythonProgram/1.txt','a')
print >> logfile, 'Fatal error: invalid input'
logfile.close()
range(n) 0到n的一串数
for i in range(len(str))
       printstr,’(%d)’ % i
文件和内建函数open(),file()




数据结构
       列表:使用[]创建,如[‘Call’,’me’,’now’]
       元组:使用()创建,如(‘one’,’two’)
       字符串也是序列
列表:数组序列可变 [‘Call’,’me’,’Jerry’]
元组:数组序列不可变(‘one’,’two’)
字符串:字符序列不可变

步进切片sequence[::number]number为负数, 倒序显示字符串, 正数则正序显示字符串, 数值代表显示字符的step值.  


集合类型
集合
映射类型
字典:可变对象,大小


Python 4组逻辑运算操作符:
身份操作符:is 判断左端的对象应用是否等同右端对象应用; 也可以是None
比较操作符:<,>,<=,>=,!=,==等,增强型赋值语句:+=,-=等,增强型赋值语句的性能比较好
成员操作符:in 或者 not in:测试成员关系
逻辑操作符:and   or    not


输出表示:
print 接受一个逗号分隔的对象列表,并为行尾自动添加一个换行符,如果不需要,则在最后个元素后添加逗号。
输入/输出
print “string%format1%format…”%(variable1,variable2,….)

dir(__bulitins__)显示内置的命令和函数

%后面可以使用的修饰符:
%[(name)][flag][width][.precision]typecode
Eg:d={‘x’:32,’y’:27.49,’z’:65}
print “%(x)-10d%(y)0.3g”%d  输出d中的键为x,y的值。



函数的创建与调用:
使用def语句定义函数  def functionNamearguments:
                                           suite
每个Python函数都有一个返回值,默认为None。也可以使用”return value”明确定义返回值
def语句会创建一个函数对象,并同时创建一个指向函数的对象引用
       1 函数也是对象,可以存储在组合数据类型中,也可以作为参数传递给其他函数
       2 callable()可用于测试函数是否可调用
>>>def PrintName(name):
...     print name
...
>>>callable(PrintName)
1
>>>PrintName('yangxinzhao')
yangxinzhao
>>>

Python标准库拥有众多内置模块。这些模块拥有大量函数
       Python模块实际就是包含Python代码的.py文件,拥有自定义的函数与类及变量等
       导入模块使用import语句进行,后跟模块名称(不能指定模块文件名的后缀.py
       导入一个模块后,可以访问其内部含有的任意函数、类及变量
>>>import random
>>>x = random.choice(['a','b','c'])
>>>print x
a

语句和语法
#:注释,可以从一行的任何地方开始
续行:
\
‘’’:闭合操作符,单一语句跨多行
代码组:
       缩进相同的一组语句构成的一个代码块
       首行以关键字开始,如if while 等,以冒号结束
       Python使用缩进来分割代码组,同一代码组的代码行必须严格对齐,否则会造成语法错误。
同一行放置多个语句
       ;:以分号做为分隔符
模块
       每一个Python脚本 可以都当成一个模块
       模块里面的代码可以是一段直接执行的脚本,也可以是一个类或者方法,导入模块的文件会被执行,因此文件只可以包含方法或者类,其他的代码会被执行一次

导入方法:import 模块名(不加.py
调用   模块名.方法名
Python基本编程风格:
“” ””:注释 ,可以通过__doc__动态获取注释文档字符串
缩进:同一四个字符
命名惯例
       以单一下划线开头变量名(_X)不会被from module import * 语句导入
       前后都有下划线的变量名(__X__)是系统定义的变量名,对Python有重要意义
       一两个下划线开头但没有下划线的变量名(__X)是类的本地变量
       在交互式模式下,变量名“_”用于保存最后表达式的结果
# coding=utf-8
__author__ = 'Administrator'

"""this is a test module"""   #模块文档

import sys     #模块导入
import os

debug = True    #全局变量

class FooClass(object): #类定义
    """Foo class"""
    pass

def
test(): #函数定义
    """test function"""
    foo =FooClass()

    if debug:
        print 'runtest()'

if __name__ == '__main__':  #主程序__name__ 导入了当前自己模块的名称,如果这个模块直接自己执行的,则该模块默认名称为__main__,因此长用于测试
如果这个模块是被导入,则该模块默认名称为style

    test()
如果这个模块被调用或者当主程序执行时,都会执行 if __name__ == ‘__main__’
实例被创建后,其身份(地址)和类型(赋值类型)就不可以变
如果对象的值是可以改变的,列表和字典都是可变对象
如果对象的值是不可以改变的,数值、字符串,元组都是不可变对象
如果某个对象包含其他对象的应用,则将其称为容器
列表是容器
数据比较:
       值比较:对象的数据是否相同 ==
       身份:is
       类型:type
Python内置函数id()可返回一个对象的身份,及该对象在内存中的位置
       is 运算符用于比较两个对象的身份
       type()用于返回一个对象的类型,用于类型比较
核心数据类型:
数字:int long float complex bool
字符:str Unicode
列表:list
字典:dict
元组:tuple
文件:file
其他类型:集合(set),frozenset,类类型,None
其他文件类工具:pipesfifossockets
类型转换:
显示转换:转换成字符串:str(),repr()format():将非字符串转换成字符串
                                                 Str() 相当于printrepr() str1 = str(3.14)
              转换整型:int(),float()   num2 = int(‘3.14’)
              字符串转换成列表:list(s)
                     >>>str1 = "Hello,world"
>>> l1 =list(str1)
>>> print l1
['H', 'e', 'l', 'l','o', ',', 'w', 'o', 'r', 'l', 'd']
              将列表转换成字符串:str(list)
              将字符串s转换成元组:tuple(s)
              将字符串s转换成集合:set(s),数学中的集合
                     >>>print tl
set(['e', 'd', 'H', 'l','o', ',', 'r', 'w'])
              创建字典:dict(d)  d 必须是(key,value)的元组序列
                     >>>d = [(1,'yang'),(2,'xin'),(3,'zhao')]
>>> d1 =dict(d)
>>> print d1
{1: 'yang', 2: 'xin', 3:'zhao'}
              将字符串转成不可变集合:frozenset(s)
              将整数转换成对应的ASIIC字符:chr(n)
              ord(ch):将字转换成整数值 ord(x)
              hex(ch): 将字转换成16进制字符串
              bin(ch): 将字转换成2进制字符串
              oct(x)
数字运算:
x**y  xy次方
字符序列:
       字符串字面量:单引号,双引号,三引号,前后结构要一直
因为不支持国标码,定义Unicode是要加u  str1 = u”杨新照”   Python 3 已经支持中文
       列表
PrintName().__doc__:调用函数方法
PrintName.__doc__: 引用对象的属性
使用与所用序列的操作和方法
S:索引运算符
S[i:j]为切片运算符,s[i:j:stride]为扩展切片运算符  stride为步进,可以为负数,I,j也可以为负数,从尾部向前
>>> list1[0:]
[1, 2, 3, 4, 5]
>>> lihst[3:] =['m','n']
>>> print list1
[1, 2, 3, 'm', 'n']
min(s) max(s) 只使用与能够对元素排序的序列,字符也行,只是按ASCII比较
sum(s)只使用与数字序列
lens(s) s中的最小值
使用
      
容器类:内部包含任意对象的有序集合,通过索引访问其中的元素,可变对象。异构(存储不同类型的数据),任意嵌套
列表:
       容器类型
       支持在原处修改:
              修改指定的索引元素,修改指定的分片。删除语句(del[list[1:3]],内置方法
算数操作返回新的列表:
List1 + list2 合并列表,返回新的列表
List1 * N list1 重复N次,返回一个新的列表
in : 成员关系判断
>>> list2 =[1,2,3]
>>> list3 =list2
>>>list2.append(4)
>>> print list3
[1, 2, 3, 4]
>>> list4 =list2[:]
>>>list4.append(5)
>>> print list2
[1, 2, 3, 4]
Python 内置库copy copy.deepcopy深度复制
>>> id(list2)
33940984
>>> import copy
>>> list5 =copy.deepcopy(list2)
>>> id(list5)
33940704
Python不要错过的书籍:

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条