Python教程

Python基础语法及常用函数

本文主要是介绍Python基础语法及常用函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、Python环境(Mac):

    建立软连接: ln -f /usr/local/bin/python3.7 /usr/local/bin/python

    查看环境变量:$PATH

    编辑环境变量:vim ~/.bash_profile

2、变量:

    命名规则:变量名由字母、数字、下划线构成,数字不能开头;大小写敏感;不能跟关键字和系统保留字冲突

    变量是一种存储数据的载体,在计算机中变量是实际存在的数据或者说是存储器中存储数据的一块内存空间;

    变量的值可以被读取和修改

3、数字(numbers)与运算符

    常用数字类型:int、float

    常用运算符:加(+)、减(-)、乘(*)、除(/)、取余(%)、乘方(**)、修改运算优先级(())、等于(==)、不等于(!=)

4、字符串

    转义符:\ ;忽略转义符的作用(r);多个字符串连接(+);

    索引:a = 'abc'   a[0]=a

    切片:a = 'abc'   a[0:2]=ab

5、分支结构的概念

    一条一条语句顺序执行叫做顺序结构;分支结构就是在某个判断条件后,选择一条分支去执行

 

    python的分支结构:

        关键字:if、elif、else

        缩进:如果if条件成立的情况下需要执行多条语句,只要保持多条语句具有相同的缩进就可以

    循环结构的概念:

        循环语句允许我们执行一个语句或语句组多次;python提供了for循环和while循环

 

    for-in循环:

        如果明确的知道循环执行的次数或者要对一个容器进行迭代,那么推荐使用for-in循环

    range函数:

        range可以用来产生一个不变的数值序列,而且这个序列通常都是用在循环中的;

        range(101)可以产生一个0到100的整数序列;

        range(1,100)可以产生一个1到99的整数序列;

        range(1,100,2)可以产生一个1到99的奇数序列,其中的2是步长

    while循环:

        如果要构造不知道具体循环次数的循环结构,推荐使用while循环;while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为true循环继续,表达式的值为false循环结束;

        while循环使用else语句:

            count = 0

            while count <5:

                print(count,"小于5")

                count=count+1

            else:

                print(count,"大于或等于5")

            简单循环组:类似if语句的语法,如果while循环体中只有一条语句,可以将该语句与while写在同一行中,如下所示:

            flag = 1

            while(flag):print("hello world")

            print("完成")

    break和continue语句:

        break语句可以跳出for和while的循环体,如果你从for或while循环中终止,任何对应的循环else块将不执行;

        continue语句被用来告诉python跳过当前循环块中的剩余语句,然后继续进行下一轮循环

6、函数的作用

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段;

    函数能提高应用的模块性,和代码的重复利用率

    函数代码块以def关键词开头,后接函数名称和圆括号();冒号起始;注意缩进;圆括号中定义参数;函数说明-文档字符串;return[表达式]结束函数:选择性的返回一个值给调用方;不带表达式的return或者不写return函数,相当于返回none

    默认参数:默认参数在定义函数的时候使用k=v的形式定义;调用函数时,如果没有传递参数,则会使用默认参数;

    关键字参数:在调用函数的时候,使用k=v的方式进行传参;在函数调用/定义中,关键字参数必须跟随在位置参数的后面;

    特殊参数:*:仅限关键字函数,在【仅限关键字】形参前放置一个*,则这个参数限制为关键字参数

    Lambda表达式:可以用lambda关键字来创建一个小的匿名函数;lambda的主体是一个表达式,而不是一个代码块,仅仅能在lambda表达式中封装有限的逻辑进去

7、列表

    python中可以通过组合一些值得到多种复合数据类型;列表是其中最常用的数据结构;列表通过方括号括起、逗号分隔的一组值得到;一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同

    列表的特性:list.append(x):在列表的末尾添加一个元素,相当于a[len(a)]=[x];

    list.insert(i,x):在给定的位置插入一个元素,第一个参数是要插入的元素的索引,以a.insert(0,x)插入列表头部,a.insert(len(a),x)等同于a.append(x);

    list.remove(x):一处列表中第一个值为x的元素,如果没有这样的元素,则抛出ValueError异常;

    list.pop([i]):删除列表中给定位置的元素并返回它,如果没有给定位置,a.pop()将会删除并返回列表中的最后一个元素;

    list.sort(key=None,reverse=False):对列表中的元素进行排序(参数可用于自定义排序);

    list.reverse():反转列表中的元素;

    list.clear():删除列表中所有的元素,相当于del a[:];

    list.extend(iterable):使用可迭代对象中的所有元素来扩展列表,相当于a[len(a):]=iterable;

    list.index(x[,start[,end]]):

        返回列表中第一个值为x的元素的从零开始的索引,如果么有这样的元素将会抛出ValueError异常;

        可选参数start和end是切片符号,用于将搜索限制为列表的特定子序列,返回的索引是相对于整个序列的开始计算的,而不是start参数;

    list.count(x):返回元素x在列表中出现的次数;

    list.copy():返回列表的一个浅拷贝,相当于a[:];

注意:

    insert,remove或者sort方法,只修改列表,没有打印出返回值-她们返回默认值None,这是python中所有可变数据结构的设计原则;

    并非所有数据或可以排序或比较(字符串和数字等)

    列表推导式:

        列表推导式提供了一个更简单的创建列表的方法,常见的用法是把某种操作应用于序列或可迭代对象的每个元素上,然后使用其结果来创建列表,或者通过满足某些特定条件元素来创建子序列;

8、元组

    元组使用()进行定义;tuple、list、range都是序列数据类型;元组是不可变的,可以通过解包、索引来访问;

9、集合

    集合是由不重复元素组成的无序的集;基本用法包括成员检测何消除重复元素;可以使用{}或者set()函数创建集合;要创建一个空集合只能用set()而不能用{};

10、字典

    字典是以[关键字]为索引;关键字可以是任意不可变类型,通常是字符串或数字,如果一个元组只包含字符串、数字或元组,那么这个元组也可以用作关键字;

11、python的程序结构:

    组成:package包;module模块;function方法

    模块:包含python定义和语句的文件,.py文件,作为脚本运行;

    模块导入:import 模块名;from <模块名> import<方法 | 变量 |  类>;from <模块名> import *;

        注意:同一个模块写多次,只被导入一次;import应该放在代码的顶端;

    模块分类:系统内置模块;第三方的开原模块;自定义模块;

        自定义模块:自定义模块是自己写的模块,对某段逻辑或某些函数进行封装后供其他函数调用;

        第三方开源模块:通过包管理工具pip完成的;

    常用方法:

        dir()找出当前模块定义的对象;dir(sys)找出参数模块定义的对象;

    搜索路径:python解析器对模块位置的搜索顺序是:

        包含输入脚本的目录(如果未指定文件,则为当前目录);

        PYTHONPATH(目录名称列表,语法与shell变量相同PATH);

        安装的默认路径;

    使用模块的总结:代码可维护性;提升编码效率;函数名可重复(起名避免与系统重复)

12、字面量

    字面量是以变量或常量给出的原始数据,在程序中可以直接使用字面量;

    字面量的类型:数值型、字符型、布尔型、字面量集合:列表(List),元组(Tuple),字典(Dict)和集合(Set)、特殊字面量:None;

13、字面量插值

    字面量插值,就是将变量、常量以及表达式插入的一种技术,它可以避免字符串拼接的问题,很多语言都支持了此功能;

    字面量插值方法:

        格式化输出:%的用法,%d,%i:转化为带符号的十进制整数;

            %o:转化为带符号的八进制整数

            %x,%X:转化为带符号的十六进制整数

            %e:转化为科学计数法表示的浮点数(e小写)

            %E:转化为可惜计数法表示的浮点数(E大写)

            %f,%F:转化为十进制浮点数

            %g:智能选择使用%f或者%e格式

            %G:只能选择使用%F或者%E格式

            %r:使用repr()函数将表达式转化为字符串

            %s:使用str()函数将表达式转换为字符串

        通过string.format()方法拼接:

            用法:str.format()

                字符串    举例:print("we are the {} and {}".format('Tom','Jerry'))

                列表       举例:print("we are the {0} and {1}".format(*listdata))

                字典       举例:print("my name is {name},age is {age}".format(**dictdata))

        Formatted string literals,字符串格式化机制(>=python3.6:

            使用方法:f'{变量名},'

            注意:大括号里可以是表达式或者函数;大括号内不能转义,不能使用'\';

14、文件读取

    读写文件的操作步骤:

        第一步:打开文件,获取文件描述符;

        第二步:操作文件描述符(读|写);

        第三步:关闭文件;

    注意:

        文件读写操作完成后,应该及时关闭;

    open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)

    参数说明:

        name:文件名称的字符串值;

        mode:只读r,写入w,追加a,默认文件访问模式为只读(r);

        buffering:寄存区缓存

            0:不寄存

            1:访问文件时会寄存行

            >1寄存区的缓冲大小

            负值,寄存区的缓冲大小则为系统默认

    文件读取的方法:

        f = open('test.txt'方法,'r')

        f.read()

        f.close()

    最优写法:

        with open('file 名称','r') as f:

    读取文件常用方法:

        read()    读取文件中的所有内容(缺点:当文件内容非常大,大于内存时,无法使用这个方法)

        readable()    判断文件是否可读

        readline()    每次读取一行(包括行结束符),返回的是一个字符串对象,保持当前行的内存

        readlines()    读取所有行的内容,放到列表中

15、Json格式转化

    Json概念:

        轻量级的数据交换格式;友好、易于读写(比xml,protobuf要好);对机器友好,易于解析和生成;由列表和字典组成;

    使用场景:

        生成:将对象生成为字符串,存入文件、数据库,在网络传输等;

        解析:解析来自文件,数据库、网络传输的字符串成python对象;

        跨语言的数据交换:比如python和c/c++/java/javascripts的数据交换;

    Json使用方式:

        import json

    常用的几种方法:

        json.dumps(python_obj)    将数据类型转换为字符串

        json.loads(json_string)    将字符串转成json

        json.dump()    将数据类型转换成字符串并存储在文件中

        json.load(file_stream)    将文件打开,把里面的字符转换成数据类型

16、python常用的标准库

    python标准库常见模块:操作系统相关:os;时间与日期:time,datetime;科学计算:math;网络请求:urllib;

    os模块主要是对文件,目录的操作;常用方法:

            os.mkdir()    创建目录

            os.removedirs()    删除文件

            os.getcwd()    获取当前目录

            os.path.exists(dir or file)    判断文件或者目录是否存在

    time模块:获取当前时间以及时间格式化的模块;导入方式:import time;

        常用方法:

            time.asctime()    国外的时间格式

            time.time()    时间戳

            time.sleep()    等待

            time.localtime()    时间戳转成时间元组

            time.strftime()    将当前的时间戳转成带格式的时间

                格式:time.strftime("%Y-%m-%d   %H-%M-%S",time.localtime())

    urllib库:

        python 2:

            import urllib2

            response = urllib2.urlopen("http://www.baidu.com")

        python3:

            import urllib.request

            response = urllib.request.urlopen('http://www.baidu.com')

    math库:

        math.ceil(x)    返回大于等于参数x的最小整数

        math.floor(x)    返回小于等于参数x的最大整数

        math.sqrt(x)    平方根

17、进程

    进程是执行中的程序;拥有独立地址空间、内存、数据栈等;操作系统管理;派生(fork 或 spawn)新进程;进程间通信(IPC)方式共享信息;

18、线程

    同进程下执行,并共享相同的上下文;线程间的信息共享和通信更容易;多线程并发执行;需要同步原语;

19、python与线程

    解释器主循环;主循环中只有一个控制线程在执行;使用全局解释器锁(GIL);

    GIL保证一个线程:

        设置GIL

        切换进一个线程去运行

        执行下面操作之一:

            指定数量的字节码指令

            线程主动让出控制权

        把线程设置回睡眠状态(切换出线程)

        解锁GIL    

        重复上述步骤

    两种线程管理:

        _thread:提供了基本的线程和锁;

         

        threading:提供了更高级别、功能更全面的线程管理;支持同步机制;支持守护线程;

 

 

 

20、python第三方库:pytest、requests

21、Yaml、Json、Excel

    YAML是一个可读性高,用来表达数据序列化的格式,常常作为配置文件使用;

 

    JSON是一个轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象;

 

    EXCEL有直观的界面、出色的计算功能和图表工具是一款电子制表软件;

 

 

这篇关于Python基础语法及常用函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!