Fork me on GitHub

python学习总结

背景

python简介

基础有什么

环境部署

中文编码

1、python中默认的编码格式是ASCII格式

2、若程序中有中文,需在文件开头加入# -- coding: UTF-8 -- 或者 #coding=utf-8

3、python3.X源码文件默认使用utf-8编码,无需指定utf-8编码

基础语法

1、python编程方式

交互式编程:不需要创建脚本文件,通过python解释器的交互模式进行代码编写
脚本式编程:通过脚本参数调用解释器执行脚本,脚本执行完毕后,解释器就不再有效

2、标识符

编程语言的标识符大同小异
数字、字母、下划线
区分大小写
不能以数字开头
_test,以单下划线开头的标识符是不能直接访问的类属性,不能用from XXX import *导入,需要通过类提供的接口进行访问
__test,以双下划线开头的标识符代表类的私有成员、
__test__,以双下划线开头和结尾的标识符代表特殊方法专用的标识,比如__init__()标识类的构造函数

3、保留字符

保留字符可以理解为关键字,保留字符不能被当成常数或者变数,或者是其他任何标识符的名称
![](https://i.imgur.com/7TXDfmp.png)

4、缩进

python对格式要求非常严格,因为python使用缩进来写模块,不像java需要用大括号{}来控制类、方法和其他的一些逻辑判断
缩进的空白数量可变,但是所有的**代码块语句的缩进空白数量必须保持相同**

5、其他

多行连接符    \
    若语句中包括[]、{}或者()就不需要使用多行连接符进行换行

引号        ''、""、''' '''、""" """
    其中三引号可以由多行组成,多行文本的快捷语法经常被用在文件的特定地点,被当做注释来使用

注释        #
    #用做单行注释
    三引号常用作多行注释

空行
    空行用来分隔两段不同功能或含义的代码,便于代码维护或重构

一行显示多条语句    ;
    如果想在同一行会用多条语句,需要在语句之间使用分号分隔

等待输入
    下方语句执行后就会等待用户输入,按回车键后就会退出程序
    raw_input("\n\nPress the enter key to exit.")

Print输出
    使用Print进行输出,默认都是换行的,如果想要不换行输出,需要在变量末尾加上逗号

python -h
    用来查看各参数帮助信息

变量类型

标准数据类型
    Number(数字)
    String(字符串)
    List(列表)
    Tuple(元组)
    Dictionary(字典)

涉及数据类型转换时,可以采用内置函数进行数据类型转码,只需要将数据类型作为函数名,将待转换内容作为参数输入即可

数字

数字数据类型用来存储数值,是不可变的数据类型
使用del语句删除对象的引用

python支持四种数字类型

int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)

python中使用L来表示长整型,避免使用l与数字1产生混淆
复数由实数部分和虚数部分构成,可表示为a+bj,或者complex(a,b),复数的实部a和虚部b都是浮点型

字符串

字符串由数字、字母和下划线组成的一串字符
一般有两种取值顺序:
    从左到右索引默认0开始的,最大范围是字符串长度少1
    从右到左索引默认-1开始的,最大范围是字符串开头
例:
    s = "letusmaketest"
    s1 = s[5]的结果是m
    s2 = s[9]的结果是t
    s3 = s[5:9]的结果是make
    s4 = s[:9]的结果是letusmake
    s5 = s[5:]的结果是maketest

    上面的s3结果包含s[5]的值m,但是不包括s[9]的值t。

加号(+)是字符串连接运算符,比如s + 'test'
星号(*)是重复操作,比如s * 2表示s连续输出两次

列表

列表是Python中使用最频繁的数据类型
列表可以完成大多数集合类的数据结构实现,支持数字、字符、字符串甚至包含列表(嵌套)
列表中值的切割也可以使用 [头下标:尾下标]的方式,规则和字符串切割取值相同
加号和星号操作与字符串相同
列表可以二次赋值

元组

元组和列表类似
元组使用()标识,内部元素用逗号隔开
元组不能二次赋值,相当于只读列表

字典

字典是除列表之外Python中最灵活的内置数据结构类型
字典是无序的对象集合,列表是有序的对象集合
字典和列表的区别:字典中的元素是通过键来存取,而列表中的元素是通过偏移来存取
字典用"{}"标识,字典由索引(key)和它对应的值value组成

例:
    testDic = {}
    testDic['test1'] = 'This is test1'
    testDic[2] = 'This is test2'
    testDic2 = {'name': 'huangyl','age':25, 'sex': 'man'}

    print testDic['test1']    #输出键为'test1'的值
    print testDic[2]    #输出键为2的值
    print testDic2        #输出字典testDic2
    print testDic2.keys()        #输出字典testDic2的所有键
    print testDic2.value()        #输出字典testDic2的所有值

基本语句

大同小异,基本语句包括:
    1、条件语句
    2、循环语句
        基本分类
        1)for循环
        2)while循环
        3)嵌套循环
        控制语句
        1)break语句
        2)continue语句
        3)pass语句

条件语句

基本形式:
    if 判断条件:
        执行语句……
    else:
        执行语句……

显而易见,如果满足条件,就do A,如果不满足,就do B
以上需要注意的几点:
    1、else是可选语句,当需要在条件不成立时执行内容则可以执行相关语句
    2、Python不支持switch语句,多个条件判断,只能用elif来实现,即判断条件a后又继续对条件b做了判断
    3、需同时判断多个条件时,可判断组合条件。当有多个条件时,判断优先级顺序为:括号>大于/小于>与/或/非

循环语句

Python中提供了for循环和while循环以及两种循环的组合形式嵌套循环

Python支持以下循环控制语句:
    break语句:在语句块执行过程中终止循环,并且跳出整个循环
    continue语句:在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环
    pass语句:pass是空语句,是为了保持程序结构的完整性

while

基本形式:
    while 判断条件:
        执行语句……
    else
        执行语句……
其中:
    1、执行语句可以是单个语句也可以是语句块
    2、判断条件可以是任何表达式,任何非零、或非空的值均为ture
    3、若无else语句,当判断条件为false时,循环结束;若有else,当判断条件为false时,将执行else语句
    4、如果判断条件永远为true,循环将会无限的执行下去

for

基本形式:
    for iterating_var in sequence:
        statements(s)
        break
    else:
        执行语句……


其中:
    1、Python中for循环可以遍历任何序列的项目,如一个列表或者一个字符串
    2、另外还有一种执行循环的遍历方式是通过索引进行遍历
    3、若无else语句,for循环会在遍历完成后退出;若有else语句,else语句会在循环正常执行完成的情况下执行

循环嵌套

while循环嵌套基本形式:
    while expression:
        while expression:
            statement(s)
    statement(s)

for循环嵌套基本形式:
    for iterating_var in sequence:
        for iterating_var in sequence:
            statements(s)
    statements(s)

其中:
    1、while与for循环体可以互相嵌套

break

1、break语句用在while和for循环中,用来跳出整个循环
2、break语句用来打破最小封闭for或者while循环
3、使用break终止循环语句时,即便循环条件没有false或者序列没有完全递归完,也会停止执行循环语句
4、在嵌套循环中,break语句将停止执行最深层的循环,并开始执行下一行代码

continue

1、continue语句用在while和for循环中,用来跳出本次循环,跳过当前循环的剩余语句,继续进行下一轮循环
2、无

pass

1、pass是空语句,为了保持程序结构的完整性
2、pass不做任何事情,一般用作占位语句

什么是函数

什么是函数

1、什么是函数
    1)函数是啥,函数就是函数。。。
    2)函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段
    3)函数能提高应用的模块性,和代码的重复利用率
    4)Python提供了很多內建函数,如len()、range()和print()等
    5)用户自己创建的函数,叫做用户自定义函数

2、函数的语法格式
    基本形式:
        def functionname( parameters ):
            "函数_文档字符串"
            function_suite
            return [expression]

    其中:
        1)函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
        2)任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
        3)函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
        4)函数内容以冒号起始,并且缩进。
        5)return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

函数调用

1、函数被定义后,指定了函数的名称、包含的参数以及代码块结构
2、调用函数时,写全函数名以及传入的参数

参数

数据类型与对象

1、万物皆对象
2、Python中,对象具有类型,而变量是没有类型的(变量可以理解为对象的引用或者指向对象存储区域的一个指针)
3、在python中创建参数时,会在内存中创建一块区域,存储该数据类型对象的值,同时会有一个指针(变量)来指向该内存区域

可更改与不可更改

1、数字(number)、字符串(string)、元组(tuples)是不可更改的对象,而数组(list)、字典(dict)是可以修改的对象

2、对于可变与不可变类型的解释:

不可变类型:
    变量赋值a=5后再赋值a=10,这里实际是新生成一个 int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了对象,再让a指向新的对象。
可变类型:
    变量赋值la=[1,2,3,4]后再赋值la[2]=5,则是将list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。

3、Python传参类似c++的值传递

不可变类型:传递整数、字符串、元组类型的对象。
    例:fun(a),传递的只是a的值,没有影响a对象本身。如果在fun(a)内部修改a的值,只是修改另一个复制的对象,不会影响外部的a本身。
可变类型:传递列表、字典类型的对象
    例:fun(la),则是将la真正的传过去,修改后fun外部的la也会受影响

4、python中一切都是对象,严格意义不能说值传递还是引用传递,应该说传不可变对象和传可变对象

Python中函数参数的传递是传递的变量的值。
不可变对象作为函数参数,相当于C系语言的值传递。 
可变对象作为函数参数,相当于C系语言的引用传递。

调用函数使用的正式参数类型

必备参数:

关键字参数:

默认参数:

不定长参数

未完待续

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%