zoukankan      html  css  js  c++  java
  • Python使用基础

    1) 基本概念
    1.1 常量
    Python没有提供常量保留字,需要自行扩展一个常量类来实现常量功能

    class _const:
    class ConstError(TypeError):pass
    def __setattr__(self,name,value):
    if self.__dict__.has_key(name):
    raise self.ConstError,"Can't rebind const (%s)"% name
    self.__dict__[name]=value

    import sys
    sys.modules[__name__]=_const()

    1.2 数字
    类型:整数(int), 长整(long), 浮点(float), 复数
    PS: 没有double类型
    代码段:
    i = 1234
    print type(i)
    i = 1234l
    print type(i)
    i = float(i)
    print type(i)
    i = 1234312515431643643613615
    print type(i)
    i = 213.432151
    print type(i)
    i = 34131251325125312441241421415.125125315
    print type(i)
    运行结果:

    <type 'int'>
    <type 'long'>
    <type 'float'>
    <type 'long'>
    <type 'float'>
    <type 'float'>

    1.3 字符串
    单引号'abc', 双引号"abc", 三引号"""abc""""或'''abc''', 三者效果相同,都是str类型
    例子:'ab"abc"d'实际上是字符串ab"abc"d

    """作用有三:
    a. 字符串;b. 块注释(多行注释); c. 文档字符串(help)
    反斜杠用作转义字符\, 如果字符串前使用r"hello world! "会忽略里面的转移字符 ,类似C#中的@
    eval(字符串),把字符串当作是表达式进行计算
    1.4 变量
    变量名大小写敏感,首字母必须为字母或下划线

    1.5 数据类型
    数值
    字符串
    线性容器
    字符串也算一种线性容器
    List
    tuple
    Hash容器:Dict, set
    None类型
    布尔类型(True, False),所有非零值都默认为True,0为False
    1.6 逻辑行和物理行
    一个物理行使用多个逻辑行,应使用分号;隔开
    一个逻辑行分多个物理行表示,应使用反斜杠分割

    1.7 缩进
    缩进错误会导致执行错误,建议用四个空格作为缩进(不要混用空白和Tab作为缩进)

    2) 运算符与表达式
    2.1 运算符
    位运算:基本和C#相同:&与, |或, ^异或, <<左位移, >> 右位移 以及特殊的~按位翻转
    比较操作: <, >, <=, >=, ==, !=
    逻辑比较操作: not, and, or,这是和C#不同的
    2.2 运算符优先级
    略过

    2.3 表达式
    字符串表达式
    数值表达式
    逻辑表达式
    函数式表达式
    例子:
    a= lamua x:x+1
    a(2) #输出值为3
    3) 逻辑控制结构
    if/elif/else
    if <表达式>:
    命令行1
    命令行n
    elif <表达式>:
    命令行
    else:
    命令行
    for
    for 变量 in <tuple类型变量>:
    print 变量

    其中tuple变量可以来自range函数或xrange函数,range和xrange函数的格式是:range(起点值, 终点值, 步长)
    else
    在Python中else除了可以出现在if中,还可以出现在for还while中,else只在整个循环完全执行的情况下执行,如果循环被break语句终止,则不会执行else分支
    while
    4) 函数
    使用def定义函数,支持缺省参数
    例子:
    def function(a=1, b=2, c=3):
    print a
    print b
    print c

    function() #将输出1,2,3
    函数允许有多个返回值
    例子:
    def function():
    return 1, 2, 3
    c, d, e = function()
    print c
    print d
    print e
    # 打印1,2,3
    函数可赋值指向某个变量,在Python中函数也是一个对象
    例子:
    def function(a):
    print a
    f = function
    f("Hello") #等同于执行function("Hello")
    Lambda表达式
    闭包
    5) 面向对象编程
    类的定义
    例子:
    class a:
    def __init__(self): #__init__(self)是缺省构造函数
    self.m = 1 #定义属性m为1

    class b(a): # 定义类b从类a继承
    """这是类b的注释"""
    def __init__(self):
    a.__init__(self) # Python不会自动调用基本类的constructor,你得亲自专门调用它
    self.n = 2
    self.__nn = 3 # 私有属性__nn
    def sum(self, num): # 必须添加self关键字表明是类成员
    """这是类b中sum方法的注释"""
    print self.m + self.n + num
    def __privateMethod(self): # 定义类b的私有方法,外部不可见
    print "It's a private method with prefix :__"

    objB = b()
    objB.sum(5) # 输出8
    print type(objB) # 输出<type 'instance'>,说明是一个实例
    print type(b) # 输出<type 'classobj'>, 说明是一个类
    print objB.__doc__ # 输出类b的注释:这是类b的注释
    print objB.sum.__doc__ # 输出:这是类b中sum方法的注释
    私有成员(属性、方法)
    一个 Python 函数,类方法,或属性的名字以两个下划线开始(但不是结束),它是私有的;其它所有的都是公有的。
    专有成员(属性、方法)
    专有方法是以__开始和结尾的公开方法,是在特殊情况下或当使用特别语法时由 Python 替你调用的,而不是在代码中直接调用(象普通的方法那样)
    需要特别注意的是,Python中的类属性,可以在类中定义,也可以在类之外定义,甚至允许在实例上定义
    例子:
    class Personality:
    def __init__(self, name = "William"):
    self.Name = name
    self.Sex = True
    self.__Money = 0.0

    william = Personality()
    william.Nickname = "Wind" # 在实例上增添属性Nickname, 从此该实例上有Nickname这个属性
    print william.Nickname

    Personality.Age = 32 # 在类之外增添属性Age, 所有Personality的实例上都将有Age=32,包括此前实例化的william
    print william.Age

    6) 异常处理
    例子:
    class Personality:
    def __init__(self, name = "William"):
    self.Name = name
    self.Sex = True
    self.__Money = 0.0

    def Test(self):
    try:
    i = 1/0
    except Exception, e:
    print e
    def Test2(self):
    pass # 关键字pass, 占位符todo

    wc = Personality()
    wc.Test()
    # 将输出:integer division or modulo by zero

    7) 模块与包
    通过在文件首行插入#coding=UTF-8标示编码类型
    使用#!/usr/bin/python27,来指定Python的位置

    8) 文件和目录操作
    open函数
    read, readline, seek, write, writeline
    os包中的os.listdir和os.walk函数

  • 相关阅读:
    软工第二次作业-集成部署入门
    软工第一次作业
    使用RVM安装特定版本Ruby和Rails
    神奇的位操作(Bit Manipulation)
    多数投票算法——Boyer–Moore majority vote algorithm
    朝花夕拾,温故知新——提问回顾与个人总结
    获得“小黄衫”の 感言
    结对编程纪实
    决胜笔记之巅——案例分析
    工欲善其事——2021软工第二次博客作业
  • 原文地址:https://www.cnblogs.com/Xrinehart/p/3505634.html
Copyright © 2011-2022 走看看