首页 > 其他分享 >py基础入门(一篇足够)

py基础入门(一篇足够)

时间:2024-04-02 22:29:05浏览次数:15  
标签:文件 函数 对象 一篇 py 字符串 字典 数据 入门

python笔记

来自b站中,孙兴华 老师的课程笔记!

目录看起来多,只是为了让有基础的兄弟选择查看,内容其实一点都不多!可以翻着看一下,有基础的感觉只用看目录就可以重温python基础,不用浪费太多时间了。

文章目录

安装

具体安装细节,python环境配置很简单,b站有很多教程,因为过于简单,环境配置忽略

python的安装

官网网址下载:https://www.python.org/

pytharm

官方网址下载:https://www.jetbrains.com/pycharm/

简介

什么是python?

python 优雅、简单、明确,具有丰富的、强大的库
被称为胶水语言,能把各种语言的模块,轻松的结合在一起。

python除了不会生孩子,全都会(个人感觉)

了解可以去百度,不说废话,直接开始。

基本语法

注释:

# 注释是不被显示出来的

Tab键

Tab 或者 4个空格

输出

print ( ' 输出 ')


(了解:print中的有两个属性, end="\t"属性是隐藏的,会默认换行,sep=" , "属性也是隐藏的,意思是默认的中间分割键)

(例如:`print ( ’ 输出 ’ , end= " \t " , sep = " … "))
在这里插入图片描述
在这里插入图片描述

我们可以看到,修改了属性之后,程序则不会按照默认的指示走。

"+"号

对于两个字符串或者有一个甚至多个字符串来说,是拼接的意思。但是对于两个或多个数字来说,是运算的含义

单引号和双引号和三个引号

单引号和双引号字符串的含义
三个引号多行文本字符串的含义(支持换行)
在这里插入图片描述

转义

"\"在程序中,是转义的含义
或者
在整个字符串前面加入 “r” (推荐)
在这里插入图片描述

变量

变量是可以随时变化的

在这里插入图片描述

前两个我们都比较好理解,

第三个我们可以清楚的看到,变量实现了交换,也称为交换变量

第四个案例中, " f " + 字符串 的意思是带入变量,我们可以看到图中最后一个实例的结果,可以将变量内容带入进字符串中

输入 input

接受用户输入的结果,默认都是字符串类型,并不是数值类型

在这里插入图片描述

类型转换(int()、float()、str() )

int: 整数型 顾名思义
float:小数、浮点型 顾名思义
str:字符串 类型 顾名思义

检查数据类型( type() )

顾名思义,不过多解释

查询 地址

查询字符串的地址:id(xxx)

运算(+、-、*、/、//、%、**、小括号)(+=、-=、*=、/= 等等)

意思分别是:
+加、- 减、* 乘、/ 除、// 取整、% 取余、** 指数、
小括号是用来提高优先值

+= 实例: a = a + 1(等下同理)

比较运算符( == , != , > , >= , < , <= ,and、or、not)

等于、不等于、大于、大于等于、小于、小于等于,和、或、不等于

rfind ()

rfind ( ) 显示文件最后出现的位置

列表

增 ( append()、extend()、insert() )

列表末尾增加单个数据:变量名 . append (数据)
列表末尾增加多个数据:变量名 . extend( [ ' 数据1 ',' 数据2 ' ])
在指定位置增加数据: 变量名 . insert ( '索引' ,'数据' )

删( del()、pop()、remove()、clear())

删除数据: del()、del[ 下标 ]、pop(下标,默认最后一个,并且返回该数据)
移除某个数据:变量名 . remove( 数据 )
清空列表:clear()

修改:利用 = 来进行修改

查( reverse()、sort() )

reverse( ): 把这个列表倒序排列
sort():排序 ⇒ sort ( reverse = True ) 按照倒序进行排序、反之则正序

for i in 循环体
	print(临时变量)
索引

下标:从0开始,标点、汉字也算一位,例如 name[2],是name这个结果第二个索引值

切片:序列 [ 开始位置下标:结束位置下标(不包含结束所包含的数据):步长(默认为1) ]

查找⇒ 字符串( find()、index()、count() )

查询某个字符串是否包含在其中,如果在返回下标,如果不在,返回 -1。

语法:变量名 . find \ index \count ( 子串,开始下标,结束下标 )

两种方法查找的结果基本都一样,唯一不一样的是,find()在找不到的时候,返回-1,而index返回的是报错信息

count() :查询出来的是结果数量信息

替换( replace() )

替换:replace(旧字符串,新字符串,替换次数)

分割(split ( ))

分割:split(分割字符、分割次数)

合并( join() )

合并:“合并的符号”.join( 子串 )

返回列表长度( len() )

返回列表长度

检查字符串的开头和结尾 ( startswith \ endswith )

字符串.startswith \ endswith(子串,开始下标,结束下标)
返回的结果为:TrueFalse

复制(copy())

复制:变量名.copy ( )

元祖

简介:列表中的数据是可以修改的,但是元祖里面的数据是不能够被修改的。
实例: 变量名称 ( ' 数据1 ',' 数据2 ' )
如果里面是单个数据,则需要 变量名称(1 , ),后面不能忘记 逗号!

序列中的转换( list() 、tuple() )

list(序列名) # 将序列转换为列表
tuple(序列名) # 将序列转换为元祖

条件语句(if、else、elif)

if 条件:
	条件成立1
	条件成立2
if 条件:
	条件成立1
else:
	条件成立2
if 条件:
	条件 1
elif 条件:
	条件 2
else:
	条件 3

字典与集合

字典

字典:不支持下标,按照 出现。键是唯一的,值是可以重复的。

例如:字典名 = { '华为' : 520, '小米':'黑色' }

创建空字典

例如: 名字 = { } 名字 = dict()

修改值(如果存在则修改,不存在则创建)

字典 [ 键 ] = 值

删除数据

del字典名[键]
del字典名 ⇒ 删除整个字典、
clear() ⇒ 清空

查询数据
get ( )( “查询的键”,“返回的值(不写返回的是None)”)语法

如果键存在返回值,键不存在,返回第二个参数、

values( )语法

返回的是里面所有的值

items( )语法

以元祖的方式进行返回

字典的循环遍历
for i in 字典名.keys():
	print(键)
for i in 字典名.values():
	print(值)
for i in 字典名.items():
	print(键 和 值)
for i,j in 字典名.items():
	print(f ' { 键 } = { 值 } ')

集合

set( ) 创建集合

集合的特点:

自动去重、不支持下标,是随机的。

增加数据

集合 . add ( 数据 )

追加数据

集合.update(数据序列)

删除数据

集合.remove ( 数据 ) :发现错误不存在。报错
集合.discard( 数据 ):发现错误不存在。不报错
集合.pop ( 数据 ):删除集合中某个数据,并且返回某个数据

查找数据

in:判断数据在集合中
not in: 判断数据不在集合中

for循环、公共操作和推导式

for 临时变量 in 序列:

break ⇒ 终止循环
continue ⇒ 退出本次循环

for 临时变量 in 序列:
	执行的代码
		else:
	循环正常结束时,要执行的代码。

公共操作

len() :计算容器中的个数
del() :删除
max ( )、min ( ) :最大最小值
range ( start、end、step):生成从start开始到end结尾,中的步数为step,供for循环使用
enumerate(可遍历对象,start=0(默认下标为0)):函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合成一个索引序列,同时列出数据和数据下标,一般用于for循环当中。
实例:
```
for    i,j   in enumerate(列表名):
	print ( i,j )
```

while循环

直到条件不成立为止,结束循环。
结束循环:break ;结束本次循环:continue

while条件:
	条件成立重复代码
	……
while条件:
	条件成立重复代码
	……
else:
	结束循环之后要执行的代码

九九乘法表案例

在这里插入图片描述
在这里插入图片描述

函数

函数需要先定义,再实现

def 函数名 (形参)
	代码1
	代码2

=== 调用函数 ===

函数名(实参)

=== `return` 退出当前函数 ===

实例:
在这里插入图片描述

定义函数

def 函数名(形参):
	""" 说明文档位置 """
	代码
	……

查看函数说明文档

help(函数名)

添加默认参数

在这里插入图片描述

位置可变参数

返回的是元祖
一个 “ * ” 号
实例:
在这里插入图片描述

关键字可变参数

返回的是字典
两个 “ * ” 号
实例:
在这里插入图片描述

局部变量和全局变量

顾名思义,只能在范围内使用。

在函数内部修改为全局变量

切记!不到万不得已,不能使用(global)
案例展示:
在这里插入图片描述

递归(套娃)

必须留有接口。return。
lambda表达式

当函数只有一个返回值,且代码只有一句话的时候,可以用lambda简写
.
简写:

lambda函数能接收任何数量的参数且只能返回一个表达式的值

实例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

filter(函数名,可迭代对象)

我们可以看到,直接输出 是 list 的地址值。我们需要把结果用 List 的形式,输出出来。

在这里插入图片描述

map(函数名,可迭代对象)

将可迭代的每一个对象,拿出来运算加工。直到加工完毕。

在这里插入图片描述

迭代相加:reduce(函数名(x,y),可迭代对象)

① 导入 functools
② reduce (函数名,迭代对象)

在这里插入图片描述

文件和文件夹

文件夹的三种方式

打开文件

文件对象 = open(’ 文件名 ’ ,’ 访问方式 ')

1)访问模式(三个主访问模式
‘r’ 只读 :如果文件不存在报错,不支持写
‘w’ 写入 :如果文件不存在新建文件,写的时候会覆盖原有的内容
‘a’ 追加:如果文件不存在新建文件,写的时候在原有的基础上追加
访问模式可以省略,默认为“r”
2)访问模式特点(
‘b’二进制、“+”可读可写

r \ rb \ r+ \rb+ : 只要文件不存在就报错。文件指针(光标的位置)放在文件开头
w \ wb \ w+ \ wb+ : 只要文件不存在就新建文件。光标在开头。用新内容覆盖
a \ ab \ a+ \ ab+ : 只要文件不存在就新建文件。文件指针在结尾。

读写文件

文件对象.write(内容)
文件对象.read(num)
.
表示要从文件中读取数据的长度(单位是字节)【换行 /n 占一个字节】,忽略就表示读取所有的数据
.
文件对象.readlines() # 需要赋值一个变量
将整个文件一次性读取,并返回一个列表,源文件中每一行的数据为一个元素。只有最后一行不带 \n
文件对象.readline() # 需要赋值一个变量
每一次调用读取一行,不带 \n

关闭文件

文件对象.close()

偏移指针

文件对象.seek(偏移量,起始位置)
起始位置:0 开头,1 当前位置,2 文件结尾
偏移量: 假设起始位置为开头,偏移量为 5 。那文件指针就在第 6 个字节上
偏移量和起始位置都为0时,只能写一个 0 。

文件

导入 os 模块

重命名文件名称

os.rname ( '新文件名','旧文件名')

删除文件(不能是文件夹)

os.remove(目标文件)

创建一个文件夹(重复文件夹会报错)

os.mkdir (文件夹名称)

获取当前目录

os.getcwd()

改变默认目录

os.chdir(目录)

获取某个目录 / 当前文件夹下所有的目录

os.listdir(目录)

闭包 、 装饰器 和 语法糖

闭包:内部函数引用了外部函数的局部变量。称之为“闭包”。

实例展示:
在这里插入图片描述

装饰器:Python装饰器(Decorators)是一个高级Python功能,允许你修改或增强函数、方法或类的行为,而不需要改变其源代码。装饰器本质上是一个接受函数作为参数的高阶函数,并返回一个新的函数。这使得你可以在不修改原始函数的情况下,添加额外的功能或修改其行为。

装饰器的基本语法是使用@符号,后面跟着装饰器的名称,然后是一个函数定义。

实例展示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

插一句嘴

我们可以看到上一个案例中,Debug 了 很多行,是因为我在想为什么参数需要加 “**”,而等我输出的时候却不需要加了呢?

人工智能是这样回答的:

print函数接收了不同数量和类型的位置参数,并将它们打印出来。这是print函数内部实现的一部分,它允许这种灵活性而不需要你在调用时添加任何特殊的语法。
.
总结一下,print函数不需要加两个星号(**)来调用,是因为它本身是设计为可以接受可变数量参数的内置函数,而不是通过 *args 或 **kwargs 语法来定义的。

面向对象

封装代码,定义 类

注意:

类一定要用 大驼峰 命名,而函数需要利用 小驼峰 命名,这样便于区分

介绍:先有类再有对象,然后用类实例化一个对象

在这里插入图片描述

构造方法(魔法方法)

魔法方法:指的是有特殊功能的函数

__init__:初始化对象

在这里插入图片描述
self = 调用该函数的对象,而不是具体的某一个对象!!

实例:
在这里插入图片描述

__str__:输出对象状态

简介:在Python中,str 是一个特殊方法(也称为魔法方法或双下划线方法),它定义了一个对象转换为字符串时的行为。当你尝试打印一个对象或者将对象转换为字符串时,Python会自动调用这个对象的 str 方法。

在这里插入图片描述
在这里插入图片描述

继承

(单继承)

类的参数中,object ⇒ 最高类,叫基类,其他的叫做派生类

简介: 如果两个类存在父子继承关系,子类即便没有任何的属性和方法,那么用子类继承了某个父类,并且子类创建了一个对象,那么这个对象就拥有父类当中,所有的属性和方法。就像生活中,子女继承父母财产一样。

在这里插入图片描述

注意事项:如果类中没有内容,一定要记得写一个“pass”来站位哦 ~~
(多继承): 会默认继承第一个

在这里插入图片描述

__mro__:

__mro__:手动查找继承的顺序

在这里插入图片描述

子类拥有与父类相同的属性和方法(会默认使用第一个子类的属性和方法)

实例展示:
在这里插入图片描述

如果想子类使用所有的父类,就需要用到调用父类的属性和方法,例如:

在这里插入图片描述

多层继承(能不用尽量别用,容易出错有bug)

请看详解,很简单,不过多的解释

在这里插入图片描述

拓展知识(组合)

可以看视频进行分析哦~~

在这里插入图片描述

私有权限

作用:如果发生继承关系的时候,某一些属性或者方法不想被子类所继承,就可以用到私有权限

设置私有权限的方法:在属性名和方法名称前面加上两个下划线_

注意:私有属性和方法只能在类里面访问和修改!

在Python中,一般定义函数名称为“get__xx”用来获取私有的属性,定义“set__xx”用来修改属性。用get和set是工作习惯,可以改名,但是要知道是获取和修改,切记!先获取再修改

在这里插入图片描述
在这里插入图片描述

super方法

在这里插入图片描述

面向对象的三大特征
封装
  1. 将属性和方法写到一个类里面,叫做封装。
  2. 封装可以为属性和方法添加私有权限
继承
  1. 子类默认继承父类的所有属性和方法
  2. 子类可以重写父类的方法和属性
多态

传入不同的对象,产生不同的结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

给大家展示一下 加上 @classmethod 和不加 @classmethod 的使用效果

在这里插入图片描述
在这里插入图片描述

我们可以看到,第一个没有加语法糖,只是给当前创建的类对象进行了修改,而加上语法糖,是给类对象彻底的进行了更改。

通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变量和类变量的方法,其实相当于跟类本身已经没什么关系了,它与类唯一的关联就是需要通过类名来调用这个方法

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

异常处理和存储数据

报错的抛出和提示。

在这里插入图片描述
在这里插入图片描述

以下的as:相当于重命名。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

导入import

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

恭喜大家,完结撒花~~

如果在看的时候,有什么问题,记得反馈给本人,将第一时间修正!感谢!

标签:文件,函数,对象,一篇,py,字符串,字典,数据,入门
From: https://blog.csdn.net/quokka56/article/details/136233877

相关文章

  • Python控制安卓模拟器——uiautomator2模块
    Python控制安卓模拟器——uiautomator2模块目录Python控制安卓模拟器——uiautomator2模块介绍【1】安装python【2】安装adb1]下载[adb:[2]配置环境变量【3】安装uiautomator2【4】连接设备(安卓模拟器)【5】u2指令控制设备常用指令【6】安装weditor【7】元素操作元......
  • 就业班 第二阶段(python) 2401--4.2 day1 python初识
    一、Python语言介绍1、Python发展历史2、Python简介3、Python特点4、Python的能力二、Linux编译安装Python31、源码安装1、安装依赖软件包2、下载3、解压安装4、配置共享库文件5、测试python36、测试pip32、配置使用国内源安装第三方模块1、创建配置文件补充内容四、......
  • MIT 6.S081入门lab10 mmap
    MIT6.S081入门lab10mmap一、参考资料阅读与总结1.JournalingtheLinuxext2fsFilesystem文件系统可靠性:磁盘崩溃前数据的稳定性;故障模式的可预测性;操作的原子性-论文核心:将日志事务系统加入Linux的文件系统中;事务系统的要求:元数据的更新;事务系统的顺序性;数据块写入磁......
  • python变量和简单的数据类型[第 2 章(上)]
    2.1运行解释文件扩展名:结尾的.py用于指出文件内容是Python代码Python解释器:读取整个文件,确定其中每一行的含义并执行例如,当解释器看到print,就会将括号中的内容打印到屏幕上。语法高亮:用不同的颜色,区分出程序代码中的不同部分 2.2变量修改我们在上一章中写的代......
  • pymc,一个灵活的的 Python 概率编程库!
    目录前言安装与配置概率模型贝叶斯推断概率分布蒙特卡罗采样贝叶斯网络实例分析PyMC库的应用场景 1.概率建模 2.时间序列分析 3.模式识别总结前言大家好,今天为大家分享一个超强的Python库-pymcGithub地址:https://github.com/pymc-devs/pymcPyth......
  • django-haystack,具有全文搜索功能的 Python 库!
    目录前言安装与配置全文搜索基础搜索引擎配置索引配置搜索视图与模板过滤器与排序自定义搜索逻辑应用场景 1.电子商务网站的商品搜索 2.新闻网站的文章搜索 3.社交网站的用户搜索 4.企业内部系统的文档搜索总结前言大家好,今天为大家分享一个非常实用......
  • python - 图片灰度化、二值化
    1.灰度化fromPILimportImageimg=Image.open("test.jpg")img=img.convert("L")img.save("output.jpg")2.二值化fromPILimportImageimg=Image.open("test.jpg")img=img.convert("1")img.save("out......
  • Python笔记----列表(List)【附代码】
    1.列表介绍   列表既是Python中最基本的数据结构又是最常用的数据类型   创造列表很简单,只要把数据用中括号括起来,数据之间用逗号隔开就可以了。2.列表的创建   列表的数据项不需要具有相同的类型,不同数据类型都可以装,可以存储的信息非常丰富3.列表......
  • python面向对象(一)
    什么是面向对象面向对象是一种编程思维。我们常说python是一种面向对象的编程语言,指的是python有很多可以支持我们实现面向对象编程的语法,例如其中最重要的“类”的概念。与面向对象相对应的是面向过程的编程。面向过程是面向对象的基础,指的是按照事务处理的过程进行编程,把每一......
  • Container容器:未来的最终解:Docker(入门导览)
    容器容器:可以无视机器、系统限制的时刻使用任何的软件或程序的虚拟机-容器解释:[什么是容器?|IBM备注:Docker本身并不是容器,它是创建容器的工具,是应用容器引擎优势:docker虚拟机内存轻量占用大设备几乎支持所有电子设备主要PC主机镜像复用可以打包到官方仓库,云端下载需要点......