目录

  • 1.print函数与转义字符
    • 01. 输出函数print()
    • 02.转义字符与原字符
  • 2.变量与数据类型
    • 01.二进制与字符编码
    • 02.Python中的标识符和保留字
    • 03.变量的定义和使用
    • 04.python中常见的数据类型
  • 3.input()函数与运算符
    • 01.input()函数
    • 02.运算符
  • 4.选择结构和对象布尔值
    • 01.顺序结构
    • 01.对象的布尔值
    • 02.选择结构
  • 5.range()函数与循环结构
    • 01.range函数的使用
  • 6.列表
  • 7.字典
  • 8 .元组
    • 01.什么是元组
    • 02.元组的创建方式
    • 03.元组的遍历
    • 04.集合的概述与创建
    • 05.集合间的关系
    • 06.集合的数据操作
    • 07.集合生成式
  • 9.字符串
    • 01.字符串的驻留机制
    • 02.字符串的常用操作
    • 03.字符串的大小写转换操作
    • 04.字符串内容对齐的操作方法
    • 05.字符串的劈分
    • 06.字符串判断的相关方法
    • 07.替换与合并
    • 08.字符串的比较操作
    • 09.字符串的切片操作
    • 10.格式化字符串
    • 11.字符串的编码与解码
  • 10.函数应用
    • 01.函数的定义与调用
    • 02.函数调用的参数传递
    • 03.函数的参数传递内存分析
    • 04.函数的返回值
    • 05.函数的参数定义
    • 06.变量的作用域
    • 07.递归函数
  • 11.异常
    • 01.bug类型
    • 02.Python的异常处理机制
    • 03.traceback模块
    • 04.PyCharm开发环境的调试
  • 12.类和对象
    • 01.面向过程和面向对象
    • 02.类与对象
    • 03.类的创建
    • 04.对象的创建
    • 05.类属性、类方法、静态方法
    • 06.动态绑定属性和方法
  • 13.封装继承多态
    • 01.封装
    • 02.继承
    • 03.方法重写
    • 04.Object类
    • 05.多态的实现
    • 06.特殊属性
    • 07.类的赋值与浅拷贝
  • 14.模块和包
    • 01.模块
    • 02.模块的导入
    • 03.Python中的包
    • 04.Python中常用的内容模块
    • 05.第三方模块的安装及使用
  • 15.文件读写
    • 01.编码格式介绍
    • 02.文件读写的原理
    • 03.常用的文件打开模式
    • 04.文件对象常用方法
    • 05.with语句(上下文管理器)
    • 06.os模块的常用函数
  • 16.学生信息管理系统
    • 01.项目打包

1.print函数与转义字符

01. 输出函数print()

  • print()函数:可以将你想展示的内容在IDLE或标准的控制台上显示。

  • 输出内容:数字、字符串、含有运算符的表达式

  • 输出的目的地:显示器、文件
    输出到文件中:

fp=open('D:/text.txt','a+')
print('helloworld',file=fp)
  • 输出形式:换行、不换行

02.转义字符与原字符

\n 表示换行
\t :根据制表位来填充,4个字符为一个单位。
\r:后边的将前面的覆盖
\b:退一个格
原子符:不希望转义字符起作用,在原子符之前加上r
注意事项:最后一个字符不能是反斜杠。

2.变量与数据类型

01.二进制与字符编码

ASCII码:表示128种符号,对应128种状态
字符编码:在计算机中都是以二进制存储的。

02.Python中的标识符和保留字

保留字:就是关键字,不能以保留字为文件起名和为变量命名。

03.变量的定义和使用

  • 变量是内存中一个带标签的盒子
    变量组成:标识、类型、值。
    当多次赋值之后,变量名会指向新的空间。

04.python中常见的数据类型

  • 整数类型:int
    二进制:以0b开头,八进制:以0o开头,十六进制:0x开头
  • 浮点数类型:float
  • 布尔类型:bool
    用来表示真或假的值,
  • 字符串类型:str
    字符串又称为不可变的字符序列
    三引号可以进行换行

函数的数据类型转换:
name=‘张三’ str(age) 把int类型转换为字符类型

str(),int(),float()
float转成整数类型时会截取整数部分。

Python中的注释:
单行注释:#
多行注释:三引号之间的都是多行注释
中文文档说明:声明文档的属性
#coding:gbk

3.input()函数与运算符

01.input()函数

  • 使用:
    present=input(‘大圣想要什么礼物顶呢?’)
    使用结果是str类型。

02.运算符

  • 标准算数运算符+、-、*、/

  • 取余运算符:%

  • 幂运算符:**
    赋值运算符:从右到左
    解包赋值,
    a,b,c=20,30,40
    交换
    a,b=b,a

  • 比较运算符
    大于,小于,运算结果为布尔类型。
    a is b 说明a与b的id标识,相等。
    is not

  • 布尔运算符
    and or not in not in

  • 位运算符:将数据转成二进制然后再进行运算。
    与:同为1时结果为1
    或:只要有1结果为1
    左移位运算符<<:高位溢出舍弃,低位补0
    右移位运算符>>:低位溢出舍弃,高位补0 ,向右移动两位相当于除以2

  • 运算符的优先级
    先算乘除,后算加减,有幂运算先算幂运算
    算数运算>位运算>比较运算>布尔运算

    4.选择结构和对象布尔值

    01.顺序结构

01.对象的布尔值

用bool函数来测试对象的bool值。
bool();
空集合空字典空列表等等布尔值都为false。

02.选择结构

  • 程序根据判断条件的布尔值选择性地执行部分代码,明确的让计算机知道在什么条件下,该去做什么。

  • 双分支结构 :if 条件表达式:
    条件执行体1
    else:
    条件执行体2

  • 多分支结构
    if :
    eIif :
    elif :
    else:
    也可以使用90<=score<=100这种语法

  • 嵌套if的使用:
    if :
    if :

  • 条件表达式 x if 判断条件 else y
    运算规则: 如果判断条件的布尔值为true,条件表达式的返回值为x,否则条件表达式的返回值为false

  • pass语句

语句什么都不做,只是占用一个占位符。

5.range()函数与循环结构

01.range函数的使用

  • range()函数
    用于生成一个整数序列:
    创建range对象的三种方式
  1. r=range(10) //默认从0开始
    print(list(r))
  2. range(3,10)//指定了起始值,从3开始。
  3. range(3,50,3)//指定起始值,结束值和步长。
  4. 判断指定的整数在序列中是否存在 in, not in
  • while循环
    while 条件表达式:
    条件执行体(循环体)

  • for in 循环
    for 自定义的变量 in 可迭代对象:
    循环体

for item in 'Python':print(item)
  • 流程控制语句break

  • break语句:用于结束循环结构,通常与分支结构if一起使用

  • 嵌套循环
    循环结构中又嵌套了另外的完整的循环结构,其中内层循环做为外层循环的循环体去执行。

  • 二重循环中的break和continue
    二重循环中的break 和 continue用于控制本层循环。

6.列表

  • 判断指定元素在列表中是否存在
    元素 in 列表名
    元素 not in 列表名

  • 列表元素的遍历
    for 迭代变量 in 列表名

  • 列表元素的增加操作
    增加操作():
    append()在列表的末尾添加一个元素
    extend()在列表的末尾至少添加一个元素
    insert()在列表的任意位置添加一个元素
    切片:在列表的任意位置添加至少一个元素

  • 列表元素的删除操作

  • 列表元素的删除操作:
    remove(30):从列表中移除第一个元素,如果有重复元素只移第一个元素。
    pop():根据索引移除元素。
    切片:一次至少删除一个元素
    new_list=lst[1:3]
    clear():清空列表
    del:删除列表

  • 列表元素的修改操作
    为指定索引的修改一个新值
    lis[2]=100
    修改列表中的多个值
    lst[1:3]=[300,400,500,600]

  • 列表元素的排序操作
    lst=[]
    lst.sort()
    lst.sort(reverse=True)降序排序
    sorted(lst,reverse=True)降序排序,将产生一个新的列表对象。

  • 列表生成式

lst=[ i for i in range(1,10)]
print(lst)

7.字典

字典:
字典是python内置的数据结构之一,与列表一样是一个可变序列,以键值对的方式存储数据

score={'张三':100,‘李四’:20}

字典的实现原理:
字典的实现原理与查字典类似,查字典是先根据部首或拼音查找对应的页码,Python中的字典是根据key查找value所在的位置。

字典的创建:

  • 最常用的方式:使用花括号
  • 使用内置函数dict()
dict(name='jack',age=20)

字典的获取

  • score[‘键’]
  • score.get(‘键’)

字典的常用操作:

  • key的判断
    in
    not in
  • 字典元素的删除
del score['张三']
  • 字典元素的新增/修改
scores['Jack']=90
  • 清空字典的全部元素
scores.clear()
  • 获取字典视图的三个方法
  • keys():获取字典中的所有key
  • values():获取字典中的所有value
  • items()获取字典中的所有key,value对

字典元素的遍历:

for item in socres:print(item)

字典的特点:

  • 键不允许重复,value可以重复
  • 字典中的元素是无序的
  • 字典中的key必须是不可变对象
  • 字典也可以根据需要动态地伸缩
  • 字典会浪费较大地内存,是一种使用空间换时间地数据结构

字典生成式:

  • 内置函数zip():用于将可迭代地对象作为参数,将对象中对应地元素打包成一个元组,然后返回由这些元组组成地列表
d={item:price  for item,price in zip(items,prices)}
print(d)

8 .元组

01.什么是元组

可变序列:列表、字典。当元素发生改变时,地址不发生改变
不可变序列:字符串,元组。

元组: python内置的数据结构之一,是一个不可变序列

t=('Python','hello',90)

02.元组的创建方式

  • 直接小括号
 t=('Python','hello',90)
  • 使用内置函数tuple()
t=tuple(('Python','hello',90))
  • 只包含一个元组的元素需要使用逗号和小括号
t=(10,)

空元组的创建方式:
-t4=() t5=tuple()

为什么要将元组设计成不可变序列:

  • 在多任务环境下,同时操作对象时不需要加锁
  • 因此,在程序中尽量使用不可变序列。

03.元组的遍历

t=tuple(('Python','hello',90))
for item in t :print(item)

04.集合的概述与创建

集合:
集合时Python语言提供的内置数据结构,与列表、字典一样都属于可变类型的序列,集合是没有value的字典

  • 第一种创建方式
s={5,2,3,9,7,1}//不能重复
  • 第二种创建方式
 s1=set(range(6))s2=set([1,2,3,4,5,6])print(s1)

定义一个空集合

s7=set()

05.集合间的关系

  • 判断两个集合间是否相等
s1==s2 ,s1!=s2
  • 一个集合是否是另一个集合的子集
    s.issubset(s1) s是不是s1的子集
  • 一个集合是否是另一个集合的超集
s.issuperset(s1)
  • 两个集合是否有交集
  s.isdisjoint(s1)

06.集合的数据操作

  1. 交集
s1={10,20,30}
s2={20,30,40}
print(s1 & s2)
print(s1.intersection(s2))
  1. 并集操作
print(s1 | s2)
print(s1.union(s2))
  1. 差集操作
print(s1.difference(s2))

07.集合生成式

lst=[i*i for i in range(6)]
print(lst)

9.字符串

01.字符串的驻留机制

  • 字符串:在Python中字符串是基本数据类型,是一个不可变的字符序列
  • 字符串驻留机制:
    仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量。

02.字符串的常用操作

查询方法

  • index():查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出ValueError
  • rindex():查找子串substr最后一次出现的位置,如果查找的子串不存在时,则抛出ValueError
  • find():查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1
  • rfind():查找子串substr最后一次出现的位置,如果查找的子串不存在时,则返回-1

03.字符串的大小写转换操作

大小写转换:

upper():把字符串所有字符都转成大写字母(转成大写之后会产生一个新的字符串对象)
lower():把字符串中所有字符都转成小写字母
swapcase():把字符串中所有大写字母转成小写字母,把所有小写字母都转成大写字母
capitalize():把第一个字符转换为大写,其余字符转换为小写
title():把每个单词的第一个字符转换为大写,把每个单词的剩余字符转换为小写

04.字符串内容对齐的操作方法

  • center():居中对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回源字符串。
  • ljust:左对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回源字符串。
  • rjust():右对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,默认是空格,如果设置宽度小于实际宽度则返回源字符串。
  • zfill():右对齐,左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果指定的宽度小于等于字符串的长度,返回字符串本身。

05.字符串的劈分

  • split():从字符串的左边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表。
    以通过参数sep指定劈分字符串的劈分符
s1.split(sep='|')

通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独作为一部分。

  • rsplit():从字符串的右边开始劈分,默认的劈分字符是空格字符串,返回的值都是一个列表。
    以通过参数sep指定劈分字符串的劈分符
    通过参数maxsplit指定劈分字符串时的最大劈分次数,在经过最大次劈分之后,剩余的子串会单独作为一部分。

06.字符串判断的相关方法

  • isidentifier():判断指定的字符串是不是合法的字符串(字母,数字,下划线)
  • isspace():判断指定的字符串是否全部由空白字符串组成(回车、换行、水平制表符)
  • isalpha():判断指定的字符串是否全部由字母组成
  • isdecimal():判断指定字符串是否全部由十进制的数字组成
  • isnumeric():判断指定的字符串是否全部由数字组成
  • isalnum() :判断指定字符串是否全部由字母和数字组成

07.替换与合并

  • replace():第一个参数指定被替换的子串,第二个参数指定替换子串的字符串,该方法返回替换后得到的字符串,替换前的字符串不发生变化,调用该方法时可以通过第三个参数指定最大替换次数
s.replace('Python','Java')
  • join():将列表或元组中的字符串合并成一个字符串
'|'.join(lst)

08.字符串的比较操作

  • 运算符 >,>=,<,<=,==,!=
    ==与is的区别:
    ==比较的时value
    is比较的是id是否相等

09.字符串的切片操作

  • 字符串是不可变类型,不具备增、删、改等操作,切片将产生新的对象。
s='Hello,world'
s1=s[:5]
s2=s[6:]
s3="!"
newstr=s1+s2+s3
print(newstr)
print(start:end:step)

10.格式化字符串

  • 格式化字符串的两种方式
    %作占位符
print('我叫%s,今年%d岁',%(name,age))

{}作占位符

11.字符串的编码与解码

  • 编码:将字符串转换为二进制数据(bytes)
s='天涯共此时'
print(s.encode(encoding='GBK'))
不同编码方式占用的字节数不同
  • 解码:将bytes类型的数据转换成字符串类型
bytes.decode(encoding='GBK')

10.函数应用

01.函数的定义与调用

函数: 函数就是执行特定任务以完成特定功能的一段代码

为什么需要函数?

  • 复用代码
  • 隐藏实现细节

函数的创建:

def  函数名 ([输入参数]):函数体[return xxx]

例如:

def calc(a,b):c=a+breturn cprint(calc(3,4))

02.函数调用的参数传递

函数定义时的参数:形式参数
函数调用时的参数:实际参数

  • 位置实参
    根据形参对应的位置进行实参传递
def calc(a,b)
calc(10,20)
  • 关键字实参
    根据形参名称进行实参传递
def calc(a,b)
calc(b=10,a=20)

03.函数的参数传递内存分析

在函数调用过程中,进行参数的传递:如果是不可变对象,在函数体的修改不会影响实参的值,如果是可变对象,在函数体的修改会影响到实参的值

04.函数的返回值

  • 函数返回多个值时,结果为元组。
  • 函数的返回值,如果是1个,直接返回类型

05.函数的参数定义

  • 函数定义默认值参数:函数定义时,给形参设置默认值,只有与默认值不符的时候才需要传递实参
def fun(a,b=10):print(a,b)
  • 个数可变的位置参数:
def fun(*args):print(args)fun(10)
fun(10,20,30)
  • 个数可变的关键字形参
def fun(**args):print(args)
fun(a=10)
fun(a=10,b=20,c=30)

函数定义时的形参的顺序问题:
从*之后都是参数可变的

06.变量的作用域

  • 变量的作用域:程序代码能访问该变量的区域
    根据变量的有效范围可分为:

    • 局部变量 :在函数内定义并使用的变量,只在函数内部有效,局部变量使用global声明,这个变量就会成为全局变量
    • 全局变量:函数体外定义的变量,可作用域函数内外

07.递归函数

  • 什么是递归函数:如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数。
  • 递归的组成部分:递归调用与递归终止条件
  • 递归的调用过程:每递归调用一次函数,都会在栈内存分配一个栈帧,每执行完一次函数,都会释放相应的空间。
  • 递归的优缺点:
    缺点:占用内存多,效率低下
    优点:思路和代码简单

11.异常

01.bug类型

  • 语法错误 SyntaxError
  • 知识点不熟练导致的错误
  • 思路不清晰导致的错误
  • ZeroDivisionError:除零
  • IndexError:序列中没有此索引
  • KeyError:映射中没有这个键
  • NameError:未声明/初始化对象
  • SyntaxError:Python语法错误
  • ValueError:传入无效的参数

02.Python的异常处理机制

  • try…except…else结构
    如果try块中没有抛出异常,则执行else块,如果try中抛出异常,则执行except块

  • try…except…else…finally结构:
    finally块无论是否发生异常都会被执行,能常用来释放try块中申请的资源。

03.traceback模块

  • 使用traceback模块打印异常信息
import traceback
try:print('1.------')num=10/0
except:traceback.print_exc()

04.PyCharm开发环境的调试

  • 断点:程序运行到此处,暂时挂起,停止执行。此时可以详细观察程序的运行情况,方便做出进一步判断。
  • 进入调试试图:
  1. 单机工具栏上的按钮
  2. 右键单击编辑区:点击:debug模块名
  3. 快捷键:shift+F9

12.类和对象

01.面向过程和面向对象

  • 面向过程:事务比较简单,可以用线性的思维去解决。
  • 面向对象:事务比较复杂,使用简单的线性思维无法解决。
    两者是相辅相成的,不能单一的使用一种方法。

02.类与对象

  • 类是多个类似事物组成的群体的统称。能够帮助我们快速处理和判断事物的性质。

  • 数据类型:
    不同的数据类型属于不同的类
    使用内置函数type()查看数据类型

  • 对象
    100、99、520都是int类之下包含的相似的不同个例

03.类的创建

  • 创建类的语法
class Student :pass
  • 类的组成:

    • 类属性
    • 实例方法
    • 静态方法
    • 类方法
class Student:native_pace='吉林'  #类属性#实例方法def eat(self):print('学生在吃饭')@classmethod #类方法def cm(cls):print('类方法')#静态方法@staticmethoddef method():print('我使用了statticmethod进行修饰,所以我是静态方法')

04.对象的创建

  • 对象的创建又称为类的实例化
    语法: 实例名=类名()

05.类属性、类方法、静态方法

  • 类属性:类中方法外的变量称为类属性,被该类的所有对象所共享
  • 类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
  • 静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法

06.动态绑定属性和方法

class Student:def __init__(self,name,age):self.name=nameself.age=agedef eat(self):print(self.name+'在吃饭')
print('动态绑定属性-----')
stu2=Student('张三',20)
stu2.gender='女'
print(stu2.name,stu2.age)
print(stu2.gender)
print('动态绑定方法----')def show():print('定义在类之外,称为函数')stu2.show=show()
stu2.show

代码中可以自己指定对象的属性

13.封装继承多态

01.封装

  • 封装:提高程序的安全性,将数据(属性)和行为(方法)包装到类对象中。
  • 继承:提高代码的复用性
  • 多态:提高程序的可扩展性和可维护性
    封装的实现:
class Student:def __init__(self,name,age):self.name=nameself.__age=age  #年龄不希望在类的外部被使用,所以加了两个_def show(self):print(self.name,self.__age)stu=Student('张三',20)
stu.show()
#在类的外面使用name与age
print(dir(stu))
print(stu._Student__age)

02.继承

继承:

  • 如果一个类没有继承任何类,则默认继承object
  • Python支持多继承
  • 定义子类时,必须在其构造函数中调用父类的构造函数
class  子类类名 (父类1,父类2):pass
class Person(object):def __init__(self,name,age):self.name=nameself.age=agedef info(self):print(self.name,self.age)class Student(Person):def __init__(self,name,age,stu_no):super().__init__(name,age)self.stu_no=stu_no
class Teacher(Person):def __init__(self,name,age,teachofyear):super().__init__(name,age)self.teachofyear=teachofyearstu=Student('张三',20,'1001')
teacher=Teacher('李四',34,23)
stu.info()
teacher.info()

03.方法重写

class Teacher(Person):def __init__(self,name,age,teachofyear):super().__init__(name,age)self.teachofyear=teachofyeardef info(self):super().info()print('教龄是'+self.teachofyear)

04.Object类

Object类:

  • object类是所有类的父类,因此所有类都有object类的属性和方法。
  • 内置函数dir()可以查看指定对象所有属性
  • Object有一个_str_()方法,用于返回一个对于"对象的描述",对应于内置函数str()经常用于print()方法,帮我们查看对象的信息,所以我们经常会对__str__()进行重写

05.多态的实现

  • 多态:多态就是‘具有多种形态’,它指的是:即便不知道一个变量所引用的对象到底是什么类型,仍然可以通过这个变量调用方法,在运行过程中根据变量所引用对象的类型,动态决定调用哪个对象中的方法。
class Animal(object):def eat(self):print('动物会吃')
class Dog(Animal):def eat(self):print('狗吃骨头...')
class Cat(Animal):def eat(self):print('猫吃鱼...')
class Person:def eat(self):print('人吃五谷杂粮')#定义一个函数
def fun(obj):obj.eat()#开始调用函数
fun(Cat())
fun(Dog())
fun(Animal())

06.特殊属性

  • dict:获得类对象或实例对象所绑定的所有属性和方法的字典
x.__dict__

特殊方法:

  • len():通过重写_len_()方法,让内置函数len()的参数可以是自定义类型
  • add():通过重写_add_()方法,可使用自定义对象具有"+"功能
  • new():用于创建对象
  • init():对创建的对象进行初始化

07.类的赋值与浅拷贝

#变量的赋值
class CPU:pass
cpu1=CPU()
cpu2=cpu1
  • 变量的赋值操作:只是形成两个变量,实际上还是指向同一个对象
  • 浅拷贝:Python拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,因此,源对象与拷贝对象会引用同一个子对象
#类的浅拷贝disk=Disk()
computer =Computer(cpu1,disk)
#浅拷贝
import copy
computer2=copy.copy(computer)
  • 深拷贝:使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象也不相同
#深拷贝
computer3=copy.deepcopy(computer)

14.模块和包

01.模块

模块:

  • 模块英文为Modules
  • 函数与模块的关系(一个模块中可以包含Nduoge函数)
  • 在Python中一个扩展名为.py的文件就是一个模块
  • 使用模块的好处:方便其它程序和脚本的导入并使用
    避免函数名和变量名冲突
    提高代码的可维护性
    提高代码的可重用性

02.模块的导入

  • 创建模块:新建一个.py文件,名称尽量不要与Python自带的标准模块名称相同
  • 导入模块:import 模块名
    from 模块名称 import 函数/变量/类
import math #关于数学运算
print(math.pi)
from math import pi
print(pi)

03.Python中的包

  • 包是一个分层次的目录结构,它将一组功能相近的模块组织在一个目录下
  • 作用:代码规范、避免模块名称冲突
  • 包与目录的区别:包含__init__.py文件的目录称为包
    目录里通常不包含_init_.py文件
  • 包的导入
    import 包名.模块名

使用from … import可以导入包,模块,变量等等

04.Python中常用的内容模块

  • sys:与Python解释器及其环境操作相关的标准库
  • time:提供与时间相关的各种函数的标准库
  • os:提供了访问操作系统服务功能的标准库
  • calendar:提供与日期相关的各种函数的标准库
  • urllib:用于读取来自网上(服务器)的数据标准库
  • json :用于使用JSON序列化和反序列化对象
  • re :用于在字符串中执行正则表达式匹配和替换
  • math:提供标准算数运算函数的标准库
  • decimal:用于进行精准控制运算精度、有效数位和四舍五入操作的十进制运算
  • logging:提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能

05.第三方模块的安装及使用

pip install 模块名

import 模块名

import timeimport schedule
def job():print('哈哈-----')schedule.every(3).seconds.do(job)while True:schedule.run_pending()time.sleep(1)

15.文件读写

01.编码格式介绍

  • 常见的字符编码格式
    Python的解释器使用的是Unicode(内存)
    .py文件在磁盘上使用UTF-8存储(外存)

02.文件读写的原理

  • 文件的读写俗称"IO操作"
  • 内置函数open()创建文件对象
file=open('a.txt','r')
print(file.readlines())//结果是一个列表
file.close()

03.常用的文件打开模式

  • 文件的类型:
    文本文件:存储的是普通“字符”文本,默认为unicode字符集,可以使用记事本程序打开
    二进制文件:把数据内容用“字节”进行存储,无法用记事本打开,必须使用专用的软件打开,举例:MP3音频文件,jpg图片,doc文档等
  • r:以只读模式打开文件,文件的指针会放在文件的开头
  • w:以只写模式打开文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针放在文件的开头
  • a:以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,如果文件存在,则在文件末尾追加内容,文件指针在原文件末尾
  • b:以二进制方式打开文件,不能单独使用,需要与共它模式一起使用,rb,或者wb
  • +:以读写方式打开文件,不能单独使用,需要与其它模式一起使用,a+

04.文件对象常用方法

  • read([size]):从文件中读取size个字节或字符的内容返回。若省略[size],则读取到文件末尾,即一次读取文件所有内容
  • readline():从文本文件中读取一行内容
  • readlines():把文本文件中每一行都作为独立的字符串对象,并将这些对象放入列表返回
  • write(str):将字符串str内容写入文件
  • writelines(s_list):将字符串列表s_list写入文本文件,不添加换行符
  • seek(offset[,whence]):把文件指针移动到新的位置,offset

05.with语句(上下文管理器)

  • with语句可以自动管理上下文资源,无论什么原因跳出with块,都能保证文件正确的关闭,以此来达到释放资源的目的。
with open('a.txt','r') as file :print(file.read())

文件的复制:

with open('logo.png','rb') as src_file:with open('copy2logo.png','wb') as target_file:target_file.write(src_file.read())

06.os模块的常用函数

  • os模块是Python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行,得到的结果可能不一样。
  • os模块与os.path模块对于目录或文件进行操作
import os
os.system('notepad.exe')
#直接调用可执行文件
os.startfile('C://qq.exe')
  • getcwd():返回当前的工作目录
  • listdir(path):返回指定路径下的文件和目录信息
  • mkdir(path[,mode]):创建目录
  • makedirs(path1/path2…[,mode]):创建多级目录
  • rmdir(path):删除目录
  • removedirs(path1/path2…):删除多级目录
  • chdir(path):将path设置为当前工作目录

os.path模块操作目录相关函数:

  • abspath(path):用于获取文件或目录的绝对路径
  • exists(path):用于判断文件或目录是否存在,如果存在返回True,否则返回False
  • join(path,name):将目录与目录或者文件名拼接起来
  • splitext():分离文件名和扩展名
  • basename(path):从一个目录提取文件名
  • dirname(path):从一个路径中提取文件路径,不包括文件名
  • isdir(path):用于判断是否为路径

16.学生信息管理系统

功能:

  • 添加学生及成绩信息
  • 将学生信息保存到文件中
  • 修改和删除学生信息
  • 查询学生细腻些
  • 根据学生成绩进行排序
  • 统计学生的总分

01.项目打包

  • 安装第三方模块
pip install PyInstaller
  • 执行打包操作
pyinstaller  -F E:\video\studentsys\stusystem.py

Python语法小白入门相关推荐

  1. python入门指南-Python完全小白入门指南

    前几天整理了Linux的入门材料Linux运维完全小白入门指南,趁着这热乎劲,又整理了一下自己学Python时候的资料,今天也一并分享出来. 还是之前的说过的,这里只适合初级或者未入门的小白,想看高阶 ...

  2. 安装python步骤-小白入门:Python安装的10个步骤,极其细致!!

    原标题:小白入门:Python安装的10个步骤,极其细致!! 你有没有发现,在自学的时候去群里问大神python怎么安装,基本都不会有人理你,因为他们认为你这问题就跟踩死一只蚂蚁一样简单,都不屑于回答 ...

  3. python小白从哪来开始-Python爬虫小白入门(一)写在前面

    一.前言 你是不是在为想收集数据而不知道如何收集而着急? 你是不是在为想学习爬虫而找不到一个专门为小白写的教程而烦恼? Bingo! 你没有看错,这就是专门面向小白学习爬虫而写的!我会采用实例的方式, ...

  4. python小白从哪来开始-如何从零开始学习Python【小白入门】

    我应该怎么开始呢? 别着急,我们需要先知道Python是什么.我可不太喜欢没有什么解释的大词. 简单来说,Python就是一种你告诉电脑应该怎么做的方法.你也许会问,电脑怎么听得懂英语呢? Pytho ...

  5. 最好的python爬虫 小白入门教程

    Python爬虫入门教程:超级简单的Python爬虫教程 这是一篇详细介绍 Python 爬虫入门的教程,从实战出发,适合初学者.读者只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会 ...

  6. python笔记小白入门_Python 笔记:全网最详细最小白的Class类和实例详解

    面向对象最重要的概念就是类(class)和实例(instance),类是抽象,而实例(Instance)则是一个个具体的对象 面向对象三大特点:封装.继承和多态 class Animal(object ...

  7. Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐

    一.前言 前文说过我的设计师小伙伴的设计需求,他想做一个披头士乐队历年专辑的瀑布图. 通过搜索,发现网易云音乐上有比较全的历年专辑信息加配图,图片质量还可以,虽然有大有小. 我的例子怎么都是爬取图片? ...

  8. Python爬虫--小白入门---爬取你的第一张图片并且保存本地

    爬取思路: 1.找到目标图片,这里以百度图片为例 2.通过页面解析找出图片实际地址 3.通过requests库爬取图片,保存本地 首先百度找一张图片: 然后使用页面解析找出图片实际地址: 这里需要复制 ...

  9. python redis 小白入门教程

    目录 一.redis简介 二.redis参数配置 三.Redis 字符串(String) 一.redis简介 Redis 是一种开源(BSD 许可).内存中数据结构存储,用作数据库.缓存和消息代理.R ...

最新文章

  1. php程序网站整站301,织梦dede怎么实现整站301
  2. 科学家研究:生女有撇步 多钙少碰香蕉
  3. java集成_Java继承
  4. 2017云栖大会门票转让_「揭秘GP」云栖大会 | Greenplum 6.0 内核优化解读和7.0展望...
  5. excel vba 快速显示及隐藏所选数据行,并获取多重选择区地址的行列号
  6. [Study Notes][001][gstreamer] memory
  7. 索尼申请“Pregius S”商标 或用于CMOS图像传感器
  8. PyCharm将制表符转换为空格并显示的配置方法
  9. linux回收内存的方法,linux释放内存的方法
  10. pytorch tensor 梯度
  11. 吉哥系列故事——完美队形II(hdu4513+Manacher)
  12. php $stomp write byte message,PHP通过Stomp协议与,ActiveMQ,通信所遇到的问题
  13. 基于Key过期失效实现 ‘N分钟内请勿重复提交“ 功能
  14. 数据哪里找?200个源数据网站全给你!
  15. keil5 调试不进主函数一直卡在0x1FFFF3B2 F8D01808 LDR r1,[r0,#0x808]
  16. ins无法发帖_Instagram电脑端直接消息怎么发?
  17. 仓库温控管理系统(一)系统概述
  18. sFlow-RT 3.0使用
  19. 十倍业务增长下,饿了么技术如何应对(中)?
  20. 2022-04-27 openshift集群kubelet中出现unable to fetch pod logs错误问题定位

热门文章

  1. POJ3322Bloxorz I
  2. 公众号二维码怎么生成
  3. php 考试试题id,【模考来啦】2021年3月21日时政试题四大考点
  4. Qt编写自定义控件:带阴影、圆角、可拉伸的弹窗
  5. 2路继电器控制直流电机正反转问题
  6. win10计算机管理看不见蓝牙,Win10设备管理器找不到蓝牙设备的解决方案
  7. model trainning 模型训练
  8. 微信公众号实现带图卡片分享链接
  9. 英文字母间距非常大的问题
  10. linux iio 设备驱动,Linux设备驱动之IIO子系统——IIO框架数据读取