Python3学习笔记

这篇博客详细记录了Python3的学习笔记,涵盖了变量类型(如字符串、列表、元组和字典)、函数(包括参数、引用和类型)、面向对象编程(介绍、概念、方法和设计模式,如工厂模式和单例模式)、文件操作、异常处理、模块的使用及发布安装,以及其他实用技巧,如给程序传参数和运算符等。
摘要由CSDN通过智能技术生成

python3学习笔记

1.变量类型:

数字类型:int、long、float、complex
布尔类型:true、false
字符串(string)
列表(list)
元组(tuple)
字典(dictionary)

1.字符串

str
通过下标存储
len(name)    #测字符串长度
name[0]、name[1]...

.操作:

        切片:name[start:end-1:(+/-)step]
        find,index(str)        r(从右往左)    #查找str是否出现
        count(str)                #共出现str多少次
        replace(str1,str2)            #将str1替换为str2
        split(str)                #用str分割,(删除str)
        capitalize()                #字符串第一个单词大写
        title()                #每个单词首字母大写
        startwith(str),endwith(str)        #判断是否以str开头/结尾返回Ture与False
        lower(),upper()                #全部转换为小写/大写字母
        rjust,ljust,center(width)        #靠左/右/中间对齐,并用空格填充至长度width
        (l/s)strip                #删除(左/右)两边的空白字符
        (r)partition(str)            #(从右)以str分割为str前、str、str后
        splitlines                #按行分隔,返回一个包含各行的列表
        is[alpha/digit/num/space]        #判断是否全部为字母/数字/(数字或字母)/空格返回T/F
        join(str)                #str每个元素插入当前操作的字符串

.字符串可以相加:

n = "name"
a = "address"
number = 18

print(n+a+str(number))
print("%s%d"%(n,number))
print("",end="\n")

2.列表

[]     list

1.增加元素

    append        #添加元素或列表
    insert        #添加元素至指定位置
    extend        #将列表中的元素添加进去
    list1 + list2 = list1.extend(list2)

2.修改元素

    list[num] = changename

3.查找元素

    name(not)in list#判断name是否位于list中返回Ture/False
    index,count    #name在list中是否出现/出现几次

4.删除元素

    del list[num]    #删除指定下标的元素
    .pop()        #删除最后一个元素
    .remove()    #删除元素

5.排序元素

    .sort()        #从小到大排序
    .reverse    #改为逆序

3.元组

()    tuple
#元组与列表相似,但其中的元素不能修改
#只有一个值时需要加,号

4.字典

[]    dict        #字典的key值必须不可变

1.查找键值

    dict["key"]
    dict.get("key",value)

2.添加键对

    dict["new_key"]=value

3.删除键对

    del dict.["key"]
    dict.clear    #清空字典

4.修改键对

    dict.["key"]=new_value

5.常见操作

    len()        #返回键值对个数
    keys(),values()    #返回key,values的列表
    items()        #返回包含键对值元组的列表
    has_key(key)    #判断是否含有指定key返回Ture/False

6.字典的遍历

    for temp in dict.items():
        print(temp[0])
        print(temp[1])                    

    for a,b in dict.items():
        print(a)
        print(b)

2.函数

pass        #为待写的程序代码占位置
def function():
    "帮助文档"
return        #函数在return处结束
        #return返回多个值可利用列表,元组,字典


如果全局变量与局部变量名字相同,函数使用局部变量
如果在函数中对全局变量进行修改,必须在前面加上global声明(不可变类型)

.参数

1.缺省参数

def function(a,b=num)
        #为函数指定一个默认参数,当参数未输入时函数读取默认参数
        #缺省参数必须位于最后
        #缺省参数为可变类型时只初始化一次

2.不定长参数

def function(a,b,*args,**kwargs)
        args    #类型为元组,存放多余所有未命名的变量参数
            #若实参为列表,前加*将其解包
                [a,b,c]---->a,b,c
        kwargs    #类型为字典,存放多余命名参数
            #若实参为字典,前加**将其解包
                {"a":"1","b":"2"}---->a=1,b=2

.引用

函数参数是引用传递(地址)

.类型

1.可变类型

        list,dict    #如果变量a等于一个可变类型变量list,当list的值发生改变时,a的值同时发生改变

2.不可变类型

        int,long,bool,float,str,tuple
    对可变类型来说,函数体的运算会更改传入的参数变量
    传递列表时
        a=a+a    #生成新列表
        a+=a    #在原来的基础上直接修改

匿名函数

sum = lambda arg1,arg2:arg1+arg2
        #可做参数传递
        b.sort(key=lambda x:x['age'])    字典b中元素按age排序

3.文件

操作

open(文件名,访问模式)    "r"    #只读    (默认)
                "w"    #写入(存在则删除)    +    用于读写
                "a"    #追加
    read(n)    #如果使用读了多次,下次读取的数据从上次结束开始(一次读取n字节)
    readline    #每次读取一行
    readlines    #读取内容按行显示
    write()    #写入内容
    tell()        #返回当前文件读写位置
    seek(offset,from)    #设置当前文件读写位置
            offset    #偏移量    
            from    #0,开头;1,当前;2,末尾
    import os
        os.rename oldfile newfile    #重命名
        os.getcwd    #显示当前目录(pwd)
        os.chdir    #修改当前路径
        os.listdir    #将当前
        os.remove,os.mkdir,os.rmdir
    a = str(list)
    list = eval(a)    # 将变量list转换为应该的类型

4.面向对象

1.简介

        class Name:
            def function(self):
            pass

        a = Name()
        x = a.function()
    类与对象    #列表中元素可以是对象
        类是创建对象的模型,是对象的抽象
        属性    变量
        方法    函数

类添加新对象后,访问可以通过方法中self.属性获得
修改对象属性时最好用方法修改而不是直接修改
属性名前加上_为私有属性,不能随意修改(实际是在名字前加类名)

2.概念

        继承    #私有的属性、方法,不会被子类继承
        重写    #子类中的方法会覆盖掉父类中同名的方法
        调用    #在调用的父类方法前面加super().
        多继承    #当前类.__mro__ 元组中决定调用方法前后(方法名相同时)
        多态
        类属性,实例属性    #用对象名访问实例属性,用类名访问类属性
                #重名时实例属性会覆盖类属性
        类方法    #实例方法上一行加上@classmethod,用于修改类属型
            #第一个参数一般用clz
        静态方法    #实例方法上一行加@staticmethod
                #普通函数无参数

3.方法

        self    
            把对象自身当作第一个参数传递给self
        __init__()方法
            当创建完一个对象后会立马执行,不需调用
            创建对象后实参会传给__init__()方法
        __str__()方法
            print(对象名)打印的是对象中__str__()方法的值
        __del__()方法
            删除一个对象时会默认调用__del__()方法
        __new__方法
            完成对象的创建,返回实例化的对象,一般重写时加上return object.__new__(cls)

4.模式

1.工厂模式

目的是使类功能单一,减少耦合性
#通过工厂方法实行对象创建
工厂方法 #定义了一个创建对象的接口(可以理解为函数),但由子类决定要实例化的类是哪一个

2.单例模式

一个类只有一个实例存在

          __instance = None
            def __new__(cls, *args, **kw):  
                if not cls.__instance:    
                    cls._instance = super().__new__(cls, *args, **kw)  
                    return cls._instance  

5.异常

#程序运行过程中发生错误无法执行,出现错误的提示
#函数产生异常就会结束

1.捕获异常

        try...except 异常名(as result)
            #把可能出现问题的代码放在try中,把处理异常的代码放在except中
            #result储存系统捕获到的错误提示
        捕获所有异常    except:    
                except Exception as result    #存储异常的基本信息

        else    #如果没有出现一场就执行下面的代码

        finally...    #无论异常产生最后一定会执行

2.抛出异常

自定义异常    #定义一个Exception的子类
        raise 异常名    #抛出异常
                #捕获异常时变量存储的是自定义异常的对象
        raise    #将捕获的异常抛给系统,触发默认的异常处理

6.模块

导入模块的过程相当于执行的过程

1.常用操作

"__name__"    #可用于判断是直接执行的python脚本还是被引入执行的
if __name__ = "__main__"    #在导入模块时不会执行
import sys
sys.path.append()    #修改绝对路径,使不在当前目录下也能导入模块
__all__    #用*导入时只导入列表变量中包含的函数

2.模块的使用

    import 文件夹.模块
    from 文件夹 import 模块
    文件夹中的__init__.py控制着包的导入行为,在其中定义的__all__变量控制着 from 包名 import * 时导入的模块
    若只 import 包名,则不会导入包中的模块

3.模块的发布与安装

1.编写setup.py文件

from distutils.core import setup
           setup(name='test',version='1.6',description='???',author='???',py_modules=["???"])

py_modules需指明所需包含的py文件(不需加.py)

2.构建模块

python setup.py build

3.生成发布压缩包

python setup.py sdist #打包后,生成最终发布压缩包name-version.tar.gz,目录结构

4.安装方式

找到压缩包后解压,然后进入文件夹执行命令

sudo python(3) setup.py install

若执行目录安装则在后面加 –prefix=安装路径

7.其他

1.给程序传参数

import sys

python3 test.py test
sys.agrv 为一个列表,其值为['test.py','test']

2.查看关键字

import keyword
keyword.kwlist

3.常用操作

dir 函数名    #函数具有哪些功能及用法
input("text")    #函数的值为字符串型,若数字相加则进行转义

4.运算符

//        #取整除
%        #取余
**        #幂运算

5.分隔符

多行语句写在一行用;隔开
一行语句写在多行用\隔开

6.直接执行脚本

在脚本最前面加上这个即可

#!/usr/bin/python3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值