python教程

Python  https://download.csdn.net/download/qccz123456/10567723

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

 

【中文编码】

Python文件中有中文编码时采用一下注释申明编码为utf-8:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

【标识符】

Python 中的标识符区分大小写。下划线开头的标识符具有特殊意义:

单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;

双下划线开头的 __foo 代表类的私有成员;

双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

【基本语法】

Python用“冒号+缩进”替代大括号,并可以使用斜杠( \)将一行的语句分为多行显示

使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串。

单行注释采用 # 开头。

【变量类型】

(1)Numbers(数字):不允许改变数据类型,长整型用大写"L"

(2)String(字符串):+ 是字符串连接,* 是重复操作, [头下标:尾下标] 截取子字符串

str = 'Hello World!'        str[2:5]        str * 2        str + "TEST"

(3)List(列表):用 [ ] 标识,列表中值的切割使用变量 [头下标:尾下标] 

list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]

(4)Tuple(元组):用( )标识,不能二次赋值,是只读列表

tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )

(5)Dictionary(字典):用{ }标识,由键key和对应的值value组成

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}        tinydict['name']

【数据类型转换】

int(x [,base]),float(x),str(x),list(s),dict(d)

【运算符】

**表示求幂;//表示取整除;整数除整数,只能得出整数。

成员运算符in、not in,指定的值是否在序列(字符串、列表或元组)中:

list = [1, 2, 3, 4, 5 ]        2 in list

               身份运算符is、is not,判断两个标识符是否引用自一个对象:

a = 20         b = 20        a is b

(is 是判断两个变量引用对象是否为同一个,== 是判断引用变量的值是否相等)

【条件语句】

if条件1:

    执行语句1

elif 判断条件2:

    执行语句2

elif 判断条件3:

    执行语句3

else:

    执行语句4

【循环语句】

(1)while 判断条件:

               执行语句

(2)for iterating_var in sequence:

               statements(s)

      如:fruits = ['banana', 'apple', 'mango']

for index in range(len(fruits)):

print '当前水果 :', fruits[index]

(3)for … else、while … else中else 中的语句会在循环正常执行完(即 for、while 不是通过 break 跳出而中断的)的情况下执行。

(4)break跳出当前循环;continue结束本次循环继续下次循环;pass占位符,空语句,不做任何事。

【字符串格式化】

print "My name is %s and weight is %d kg!" % ('Zara', 21)

"{0} {1}".format("hello", "world")

【时间与日历】

import time;  # 引入time模块

ticks = time.time()  #当前时间戳:1459994552.51

localtime = time.localtime(time.time())  #本地时间:年月日时分秒等

localtime = time.asctime( time.localtime(time.time()) )  # 格式化时间Thu Apr  7 10:05:21 2016

print time.strftime("%Y-%m-%d %H:%M", time.localtime())   #格式化日期2016-04-07 10:25

import calendar  # 引入calendar 模块

【函数】

def functionname( parameters ):

    "函数_文档字符串"

    function_suite

return [expression]

参数传递:传递整数、字符串、元组为不可变对象;传递列表、字典为可变对象。

函数参数:

(1)必选参数:比须以正确的顺序、数量传入函数,和声明时的一样。

(2)默认参数:def printinfo( name, age = 35 ): XXX          printinfo( name="miki" );

(3)不定长参数:星号变量存放未命名变量def printinfo( arg1, *vartuple ): XXX

(4)关键字参数:printme( str = "My string");

匿名函数:lambda [arg1 [,arg2,.....argn]]:expression

sum = lambda arg1, arg2: arg1 + arg2;         sum( 10, 20 )

全局变量想作用于函数内,需在函数内的变量前加 global。

【模块】

模块是一个 Python 文件,以 .py 结尾。

导入模块:import module1[, ...],使用module.function调用模块中的函数。

导入模块中函数:from modname import name1[, ...]。

搜索路径sys.path :(1)当前目录(2)PYTHONPATH 下的每个目录(3)系统默认路径。

dir(modname)函数,返回模块内部排好序的函数字符串。

locals()函数,在函数内部调用返回的是所有能在该函数里访问的命名。

globals()函数,在函数内部调用返回的是所有在该函数里能访问的全局名字。

reload(module_name),重载模块,重新执行模块里顶层部分的代码。

,即文件夹,包括模块及子包等,但必须存在 __init__.py 文件,文件可为空:

from package_runoob.runoob1 import runoob1

【文件IO

输入:raw_input("\n\nPress the enter key to exit.")  #更安全的读取一行

str = input("请输入:");  #更具功能性的读取一行

输出:print “hello”    默认输出有换行,若实现不换行需要在变量末尾加逗号。

文件:

file object = open(file_name [, access_mode][, buffering])

fileObject.close();

fileObject.write(string);

fileObject.read([count]);

fileObject.tell()  #方法告诉你文件内的当前位置

fileObject.seek(offset [,from])  #方法改变当前文件的位置

文件属性:file.closed、file.mode、file.name、file.softspace

               操作文件:

import os

os.rename(current_file_name, new_file_name)

os.mkdir("newdir")

os.chdir("newdir")  #改变当前的目录

os.getcwd()  #得到当前的工作目录

os.rmdir('dirname')   #删除目录,所有内容应该先被清除

【异常和错误】

               异常处理与断言。

  1. try:

<语句>        #运行别的代码

except <异常名>:

<语句>        #如果在try部份引发了'name'异常

except <异常名>,<数据>:

<语句>        #如果引发了'name'异常,获得附加的数据

else:

<语句>        #如果没有异常发生

  1. try:

<语句>

finally:

<语句>    #退出try时总会执行

  1. raise语句自己触发异常:raise [Exception [, args [, traceback]]]
  2. 用户自定义异常,如下

class Networkerror(RuntimeError):

    def __init__(self, arg):

        self.args = arg

【面向对象】

class ClassName:

'类的帮助信息'     #类文档字符串

aaa    #定义类变量

def __init__(self, bbb):    #初始化函数

self.xxx = bbb    #定义实例变量

aaa = bbb    #使用类变量

def __del__( self ):    #析构函数

               pass

def function(self, ccc):    #类的方法中第一个参数必须是self

self.xxx = ccc    #使用实例变量

self.???代表类的实例,self.class 则指向类。

Instantiation = ClassName(bbb)    #创建类的对象

ClassName.__doc__ : 类的帮助信息

ClassName.__name__: 类名

ClassName.__module__: 定义类所在的模块

ClassName.__bases__ : 类的所有父类构成的元素

ClassName.__dict__ : 类的数据属性信息

判断对象类型:isinstance()、type()

获得一个对象的所有属性和方法:dir()

慎用以下函数访问对象属性:

getattr(obj, name[, default]) : 访问对象的属性

hasattr(obj,name) : 检查是否存在一个属性

setattr(obj,name,value) : 设置一个属性。如果属性不存在,会创建一个新属性

delattr(obj, name) : 删除属性

继承:

class SubClassName (ParentClass1[, ParentClass2, ...]):

'Optional class documentation string'

class_suite

(1)继承中基类的构造不会被自动调用,需在其派生类的构造中专门调用。

(2)调用基类的方法需要加上基类的类名前缀,且需要带上self参数变量;调用普通函数时并不需要带上self参数。

(3)先在本类中查找调用的方法,找不到才去基类中找。

(4)    issubclass()  判断一个类是另一个类的子类或者子孙类

isinstance(obj, Class) 判断obj是Class类或Class子类的实例对象

属性与方法的指定含义:

头尾双下划线__foo__:特列方法,类似 __init__() 。

单下划线_foo:protected 类型,不能用于 from module import *

双下划线__foo:private类型,只允许类本身进行访问。

【正则表达式】

import re

p = re.compile(pattern)    #根据模式字符串和可选的标志参数生成正则表达式

result = re.match(pattern, string, flags=0)    # 从字符串的起始位置匹配一个模式

result = re.search(pattern, string, flags=0)    # 扫描整个字符串并返回第一个成功的匹配

result = re.sub(pattern, repl, string, count=0, flags=0)    # 使用repl替换string中的匹配项

               若无匹配的字符串则返回none

pattern:匹配的正则表达式

string:要匹配的字符串

flags:标志位,用于控制正则表达式的匹配方式,如:是否区分大小写等

repl:替换的字符串,也可为一个函数

count:模式匹配后替换的最大次数,默认 0 表示替换所有的匹配

result.groups():返回一个包含所有组号字符串的元组,从 1 到 所含的小组号

result.group(num=0):返回一个包含组号所对应值的元组

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值