【Python】初级篇

(一)初识
1.Python三大优点:简单、功能强大、支持面向对象
2.Python的一些特点:
·大小严格区分
·简单、易学、支持面向对象
·开源
·库非常丰富
·标准库:正则表达式标准库
·非标准库:wxpython库
·跨平台使用
·解释性语言(解释器—字符码:直接运行)
·高级语言

(二)语法基础
1.常量与变量
(1)常量:一旦绑定,就不能更改
(2)

class _const(object):
    class ConstError(TypeError):pass

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

    def __delattr__(self, name):
        if name in self.__dict__:
            raise self.ConstError, "Can't unbind const(%s)" % name
        raise NameError, name

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

上面是定义常量,需将上面内容以const作为文件名保存在python27的lib目录下

import const
const.value = 10
const.value =100(对常量赋值,导致下面的error)
print const.value

ConstError: Can’t rebinf const(value)
(3)变量
2.数与字符串
(1)数的类型(5种)
·int
·long 888888l
·float
·bool 只有True、False
·complex
(2)什么是字符串
·如:’hello’、”my python”、”2+3”
(3)引号的使用与区别
·单引号

a = ‘It\’s’
b = “It’s”

·双引号
·三引号(换行、保持原格式)

c = ’’’H
Ell
O’’’

(4)转义字符
(5)自然字符串(r””:是保持转义字符)

print  r”Hell\no

输出:Hell\no
(6)字符串的重复

   Print “Hello”*20

(7)子字符串
·索引运算符从0开始索引
·切片运算符[a:b]是指从第a下标开始到第b-1下标(首位为0)
C = “jikexueyuan”
C1 = c[0]
C2 = c[1:3]
【例子】:

#coding=utf-8

#单引号
print 'It\'s a smart dress'
#双引号
print "It's a smart dress"
#三引号
print '''
I
t's
a
pen '''

#转义字符
print "\nI\nam\n"
#自然字符串
print r"I\n"
#字符串的重复
print '\nI can tell'*10
#子字符串
a = "I' can do it well"
b = a[0]
c = a[:2]
d = a[2:]
print b,c,d

【结果】

It's a smart dress
It's a smart dress

I
t's
a
pen 

I
am

I\n

I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I I'  can do it well

3.数据类型(Python中没有数组的概念)
(1)基本数据类型
·数
·字符串
(2)列表(列表中的元素是有序的)
(3)元组
区分列表和元组:
①列表里面买的元素的值可以修改,元组里面元素的值不能修改,只能读取
②列表:[], 元组:()
③a = [“”,””],b ={“”,””}
例子:

#coding=utf-8(IDE下默认为#_*_coding:cp936_*_,添加这一行会导致乱码)
a=["林林","标标"]
print a[0]
b=("小小","鱼鱼")
a[0]="小小"
print a[0],b[1]
结果:>>> 
鏋楁灄
灏忓皬 楸奸奔

a=["林林","标标"]
print a[0]
b=("小小","鱼鱼")
a[0]="小小"
print a[0],b[1]
结果:
林林
小小 鱼鱼

(4)集合
①两个功能:建立关系、消除重复元素
②格式:set(元素)
·交集(a&b)
·并集(a|b)
·差集(a-b)
·去除重复的元素(set(a))
例子:

a = set("aaaabbbcdmnop")
b = set("abcd")
c = a&b
d = a|b
e = a-b
f = set(a)
print c,d,e,f

(5)字典(也叫关联数组)
·格式:zidian={‘name’:’weiwei’,’home’:’guilin’}
·输出某一项:print k[“name”],也可以通过这种方法添加字典里面的项目
例子:

z={"name":"戴安娜","home":"上海"}
print z["name"]
z["interest"]="音乐"
print z["interest"]

4.标识符
(1)什么是标识符(变量与常量的名称)
(2)标识符命名原则
·首字符:字母或下划线
·字母、下划线、数字
(3)关键字(保留字:28种)
And、elif、global、or、else、pass、break、continue、import、class、return、for、while
5.对象
·对象
·pickle腌制

#pickle腌制
import pickle
#dumps(onject)将对象序列化
#loads(string)将对象原样恢复,并且对象类型也恢复为原来的格式
#dump(object,file)将对象存储到文件里面序列化
#load(object,file)将存储在文件里面的数据恢复
lista=["mingyue","yueliang"]
listb=pickle.dumps(lista)
print listb

listc = pickle.loads(listb)
print listc

group1=("wanmei","rensheng")
f1=file('pickle.py','wb')
pickle.dump(group1,f1,True)
f1.close()

f2 = file('pickle.py','rb')
t = pickle.load(f2)
print t
f2.close()

6.行与缩进
(1)了解逻辑行与物理行
·意义上的行数
·实际看到的行数
例子:

#以下是2个物理行
print "abc"
print "123"

#以下是1个物理行,2个逻辑行
print "abc";print"123"

#以下是1个逻辑行,2个物理行
print '''
12345'''2)行中分号的使用
(3)行连接
#行连接
print "学习\
python"

(4)什么是缩进(2种:tab格、空格)
(5)如何缩进(while、for)
(6)注释(#)

(三)运算符(优先级)及表达式
1.运算符
·+:字符串连接
·not\and\or
2.优先级
3.表达式
①值、变量和运算符组成的整体

1.运算符
·+:字符串连接
·not\and\or
2.优先级
3.表达式
①值、变量和运算符组成的整体
②>>> a = 7
>>> "My"
'My'
>>> a = 'OK'
>>> a
'OK'
>>> a = "OK"
>>> a
'OK'
>>> print 'OK'
OK
>>> print "OK"
OK
>>> 

③表达式执行结果和print执行结果的差别(如上)
(四)控制流
1.Python的三种控制流

'''Python有三种控制流类型:顺序结构、分支结构、循环结构'''


#重复执行一遍程序(法一)
i = 0
print i
i += 1
print i


i = 0
print i
i += 1
print i

#循环控制流(法二)
for k in range(0,5):
    i = 0
    print i
    i += 1
    print i

a = 1
while a:
    print "Hello"
    a -= 1

#控制流的分支结构
xiaoming = "hungry"
if xiaoming == "full":
    print "宝宝好乖"
else:
    print "宝宝好皮"

分支结构-if语句
'''
if语句用判断选择执行的语句块
'''

a = 1
if a ==1:
    print "hello"

a = 0
if a ==0:
    print "Man"
else:
    print "Woman"


score = 100
if score >= 90:
    print "优秀"
elif score >= 60:
    print "合格"
else:
print "还得努力"
'''
while语句:用来控制一段语句重复执行
'''

#死循环:(占用CPU)
a = True
while a:
    print "ABC"

#while语句嵌套使用
a = 0
while a<2:
    if a<=1:
        print a 
'''
1.range函数的使用
2.带嵌套的for语句
'''```

for语句的格式:
for i in 集合:
执行该部分
else:
执行该部分


for i in [1,3,5,6]:
    print i

for i in range(1,5):
    print i

for i in range(0,3):
    if i%2==0:
        print i
    else:
        print "奇数"


a = range(0,5)
print a
”’步长:2”’
b = range(0,10,2)
print b

Break语句:
”’
break语句是强制停止循环的意思
”’

#break语句在while循环中
a =1
while a:
    print a
    a += 1
    if a == 10:
        break

#break语句在for循环中
for i in range(5,9):
    print i
    if i>8:
        Break

#break语句在双层循环语句
a = 10
while a <= 12:
    a += 1
    for i in range(1,7):
        print i
        if i == 5:
            break
    if a==11:
        Break

#continue语句:强制停止本次循环,直接跳到下一次循环
a = 3
while a<6:
    a +=1
    if a == 4:
        continue
    print a

for i in range(1,5):
    if i==2:
        continue
    print i

for i in range(1,5):
    print i
    if i==2:
        continue

”’
continue:只是结束本次循环,然后继续进入下一个循环
break:直接结束整个循环
”’
区别:

for i in range(1,4):
    if i ==2:
        continue
    print i

for i in range(1,4):
    if i==2:
        break
print i

结果:
1
3
1

(五)Python函数
1.函数(function)
①系统自带
②自定义

#系统自带

#字符串长度
a = "flagisTrue"
print len(a)

#字符串的切割
a = "flag"
b = a.split("a")
print b

#自定义
def a():
    print "hello"

a()

#python中函数定义的两个含义:①申明指定的部分是函数不是对象②定义函数所包含的功能
'''
函数定义的格式:
def 函数名():
    函数内容
'''

2.形参与实参

def function(a,b):
    if a>b:
        print a
    else:
        print b
function(2,5)

#关键参数
def function(a=1,b=2,c=3):
    print a
    print b
    print c
function(5)
function(b=7,a=6)
function(3,c=8,b=9)

输出:

5
5
2
3
6
7
3
3
9
8

3.全局变量与局部变量
差别在于:作用域
①局部变量

def func(a):
    i = 1
    print i

i=2
print i
func(2)

结果:

>>> 
2
1
>>> 

②全局变量

global声明全局变量的标识符
def func():
    global i
    i = 7
    print i
i = 3
print i
func()

def func1():
    global a
    a = 9
func1()
#因为a是全局变量
print a

结果:

>>> 
3
7
9
>>> 

试想:

def func1():
    global a
    a = 9
print a

输出:

Traceback (most recent call last):
  File "C:/Users/linmeini_love/Desktop/123.py", line 4, in <module>
    print a
NameError: global name 'a' is not defined

4.函数使用与返回值

#返回值
#一个返回值
def test():
    i = 7
    return i
print test()
#多个返回值
def test1(i,j):
    k=i*j
    return (i,j,k)
x=test1(2,5)
print x

def test1(i,j):
    k=i*j
    return (i,j,k)
m,n,o=test1(2,5)
print o

输出:

>>> 
7
(2, 5, 10)
10
>>> 

5.文档字符串
作用:用于查看所对应文档的功能
(下面是某个文档)

#文档字符串
def d(i,j):
    '''实现乘法运算的函数

    函数会返回乘法运算结果'''
    k = i*j
    return k

那怎么知道该文档的功能呢?

print d.__doc__

输出:

实现乘法运算的函数

    函数会返回乘法运算结果

help(d)
Help on function d in module __main__:

d(i, j)
    实现乘法运算的函数

    函数会返回乘法运算结果

(六)函数进阶–模块
1.函数是一段程序,模块是一个程序块

'''
在使用模块之前,必须先导入指定的模块,才能使用
自带模块:标准库模块
①标准库中与系统功能有关的模块叫sys模块
    ·版本:version
    ·地址:executable
    ·返回windows操作系统:getwindowsversion()
    ·查看倒入模块列表:modules.keys()   
'''
>>> import math
>>> math.pi
3.141592653589793
>>> 
>>> import sys
>>> sys.version
'2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]'
>>> sys.executable
'C:\\Python27\\pythonw.exe'
>>> sys.getwindowsversion()
sys.getwindowsversion(major=6, minor=1, build=7600, platform=2, service_pack=‘’
>>> sys.modules.keys()

”’
2.字节编译

'''
1..pyc文件:以.pyc为后缀名的一类文件
2.在执行Python模块时有两种执行方式:①模块内容--字节编译-->二进制语言(产生对应的.pyc文件:二进制文件)--->执行②直接执行对应模块的二进制语言
那为什么我们之前说Python是解释型语言,而不是编译型语言,现在又说它有字节编译?如下:
Python虽然出现了编译这个过程,但是该过程在解释其中发生的。编译形语言是说在软件中就有一个独立的编译模板去将程序编译
3..pyc文件产生的方式:(2种)
①本来没有,直接执行.py为后缀的某个模块,就会生成对应的.pyc文件
②打开Python编辑器
  cmd->
4.在Python中,.pyc文件最大的作用是加快了模块的运行速度,.pyc文件还可以做反编译等高级功能
5.二进制软件阅读器(Binary Viewer)
'''

(七)Python数据结构
1.数据结构

#对三个物品:apple、orange、pear
'''
按顺序存储
'''
#存储一(列表):可以取出
["apple","orange","pear"]

#存储二(元组):不可以取出,也不可以更改
("apple","orange","pear")

#存储三(字典):值存储到某一有名字的键
{"sam":"apple","Jac":"orange","mating":"pear"}

'''
数据结构:数据的组织方式,数据的存储方式,数据结构是静态的
算法:运算方法,思维,动态的
数据结构是算法的基础,但是相同的数据结构运用不同的算法拥有不同的效率
'''

2.棧
3.队列
(八)面向对象
(九)文件与Python异常处理
(十)标准库与Python其他使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值