你觉得自己这辈子都学不会编程?超超超基础Python课程,3小时快速入门 【自学

本笔记建议食用视频后
进行操作时复习参考(更完啦!撒花)
Hello!励志成为科代表的我出现了,本系列课程合集和分P视频里都有我的身影P36视频
https://www.bilibili.com/video/BV13m4y1b7bx/?share_source=copy_web&vd_source=bb63a816d59679e2d0bdba5c89c63061
我个人感觉到后面有点似懂非懂,后来做做一些实际问题题目就搞清楚了,我陆续会分享一些题目,大家练练手会更熟悉的【包括视频内我觉得有意思的题目】链接在这啦https://www.bilibili.com/read/readlist/rl656437?spm_id_from=333.999.0.0
P6-7 打印字符串(print玩法)
一、基础内容
print(“ ”)
打印:表示把指定文字在屏幕中显示
需将内容放置在括号内中的引号内,引号可单可双(成对,不能一单一双 )
引号内的文字连带引号被称为字符串(str)
注:print与()不能有空格,符号必须使用英文,运行代码后若正确则会显示退出代码为0,若不正确则会显示非0数
示例:print(“Dad!!”)→Dad!!
二、进阶玩法
1.字符串连接:可以用+把几个字符串连在起,结果就是一个拼接而成的更长的字符串
示例:print("How"+" are"+" you"+"?")→How are you?(注意这里有空格,无空格则会将字符连在一起)
2.单双引号转义
字符串同时使用2个以上的双/单引号会导致歧义,此时更改为外双内单或外单内双都不会报错
若字符串中既有双引号同时又有单引号,可在引号前加一个\(在enter键上方),表示这个引号属于内容的一部分
\叫做转义符,其与其后面带着的符号一起读产生特殊含义
示例:
(1)print("Said"good"")→报错
修正:print("Said'good'")→Said'good'
或print('Said"good"')→Said"good"
(2)print(''He said "Let's go!"")→报错
修正:print(''He said \"Let\'s go!\"")→He said "Let's go!"
3.换行
python读一行执行一行,随意换行会引起报错,需要换行时可使用\n进行换行或连续使用三个连着的引号,其中间的内容可使用enter键换行
示例:
(1) print(''唧唧复唧唧,\n木兰当户织。\n不闻机杼声,\n唯闻女叹息。'')→
唧唧复唧唧,
木兰当户织。
不闻机杼声,
惟闻女叹息。
(2)
print(''''''唧唧复唧唧,
木兰当户织。
不闻机杼声,
唯闻女叹息。'''''')→
唧唧复唧唧,
木兰当户织。
不闻机杼声,
惟闻女叹息。
P8-9 变量
一、基本操作
1.用途:储存、指代值
2.命名规则:
(1)只能由文字,数字,下划线组成
(2)不得有空格
(3)不得以数字打头
(4)不得使用引号包裹
(5)不能有除了下划线之外的符号
示例:
正确命名:my_love
错误命名:my love
1my_love
''my_love''
my!love
3.赋值操作:变量名 = 变量对应的值
示例:my_love = 13766666666
赋值后,我们就可以通过变量获取这个值
注:先命名变量再使用变量,变量的数据类型属于字符串(见P10数据类型)
示例:
正确操作:
my_love = 13766666666
print(''拨打:'',my_love)
错误操作:
print(''拨打:'',my_love)
my_love = 13766666666
另外,可以使用变量给变量赋值
示例:
my_love = 13766666666
my_ex = my_love(利用my_love变量值直接给my_ex变量赋值)
my_love = 15066666666
在赋值操作中,等号左边的会被视为变量名,等号右边的会先被求值,得到137···这个值,然后把这个值也赋给my_ex变量,最后my_love被赋值为新的手机号,这样你就同时保留了前任和现任的手机号
二、哪些变量算好名字
1.不要用拼音(阅读速度慢,且容易造成歧义)
2.使用英文命名(控制台或日志可能编码不兼容,且数字符号仍使用英文,需频繁切换输入法)
3.命名法:
一般使用下划线命名法(约定俗成)
(1)字母全部小写
(2)不同单词用下划线分隔
同时也有驼峰命名法:单词首字母大写分隔
注:
1.变量名大小写敏感
2.不要占用Python关键字,否则该关键字会失去原本的功能
示例:
用户姓名
(1)下划线命名法:user_age
(2)驼峰命名法:UserAge
P10 数学运算
一、部分数据类型
整数(int):直接的数字,如6
浮点数(float):即小数,如6.6
二、运算符号
1.加法:+,如6+6→6+6
2.减法:-,如6-6→6-6
3.乘法:*,如6×6→6*6
4.除法:/ ,如6÷6→6/6
5.乘方:**(建议复习数学,这里举例基本常用运算,二分之一(0.5)次方即开方,某个数的负数指数幂等于这个数指数幂绝对值次方的倒数)如√6→6**0.5;1/6²→6**-2
6.//:除法运算后向下取整,如3/2=1.5,3//2→1
三、运算顺序
同数学,先括号,后乘方,其次乘除,最后加减
四、更多函数:导入数学函数库(见P25)
五、一些关于变量的简略书写
1.+=:a+=6→a=a+6
2.-=:a-=6→a=a-6
六、其他运用
1.字符串*数字:重复字符串,如"六"*6→六六六六六六
P11 注释
1.用途:帮助自己或他人理解代码意义,或保留一些不想执行的代码
2.用法:
(1)#
用#做开头,每一行开头都需要一个#
快捷加#号方式:选中一段代码,Windows按control和/?键;macOS按command和/?键,这样每一行代码都会被自动加上#号,如果想撤销注释则重复一下上述操作
(2)'''''' ''''''
用三引号包裹住注释内容即可
P12 数据类型
一、类型分类
不可变数据类型:字符串,整数,浮点数(该部分内容见P6.7.10),布尔类型,元组
可变数据类型:列表,字典,集合
其他:空值类型
二、字符串相关内容
1.len函数在字符串中的使用
(1)用途:得到字符串的长度
(2)用法:len(字符串)(返回整数)
注:在字符串中,数字空格符号文字都会占一个长度,完整的转义符占一个长度,最外围引号不占长度
2.索引字符
(1)用途:得到某一位置字符
(2)用法:字符串[数字]
注:字符串字符顺序从0开始
示例:
(1)求''hello''的长度
len(''hello'')→5
(2)得到hello中的e
''hello''[1]→e
三、布尔类型(bool)
分为真(True),假(False)两种,用于逻辑判断
四、空值类型(NoneType)
仅有一种值,None,表示完全没有值
用于当你需要一个变量,但还不知道该变量值的时候,可将值定义为None
五、type函数的使用
1.用途:确定某一对象的类型
2.用法:type(某一对象)→<class '某一类型'>
示例:type(''这是一个字符串'')→<class 'str'>
P14input,int,float,str函数的使用
一、input
用法:input(''给用户的提示信息'')
注:
1.需要使用print来展示结果哦
2.input返回的结果类型为字符串
二、int,float,str函数的使用
1.int函数可将其他类型转化为整数
2.float函数可将其他类型转化为浮点数
3.str函数可将其他类型转化为字符串
4.使用方法:int/float/str(某一类型)
P15-17 条件与逻辑
一、比较变量符
1.类别
等于号==
大于号>=
小于号<=
不等于号!=
大于号>
小于号<
2.进行比较后,符合逻辑的返回布尔值True,不符合逻辑的返回布尔值False
示例:
3==3返回True
3!=3返回False
二、条件语句
1.基本格式:if 条件:
条件为真时候的执行语句(如果你希望条件为假时什么都不做那么到此为止)
else:
条件为假时候的执行语句
2.要求:求出的值为布尔值
注:条件后面有一个冒号哦,执行语句前有缩进,建议缩进四个空格(即按一下Tab键),执行语句可以不止一句,但每行前面都要有缩进
3.一些方法:
(1)定义某个变量为布尔值
(2)结合比较运算符
三、嵌套条件语句
1.基本格式及原理
if跟条件一:
if跟条件二:
条件为真时候的执行语句
else:
条件为假时候的执行语句
(后面的if以及else首先满足条件一然后进入条件二判断,在条件二中为真得到真的执行语句,反之则得到假的)
注:再次注意缩进问题,每进行一个条件判断,则需要在此条件if/else前缩进一次
四、多个条件判断(elif)
1.基本格式:
if跟条件一:
条件为真时候的执行语句
elif跟条件二:
条件为真时候的执行语句
elif跟条件三:
条件为真时候的执行语句
(系统将只会执行第一个真的条件语句)
五、逻辑运算符号
1.类别:
and,or,not
2.and:可以连接两个或两个以上的操作对象,只有所有对象都符合逻辑才会返回True,其他情况则会返回False
3.or:可以连接两个或两个以上的操作对象,只有所有对象都不符合逻辑才会返回False,其他情况则会返回True
4.not:只能对一个操作对象运算,起颠倒布尔类型的作用(原先为True返回False)
5.优先级:not>and>or(可以用括号改变运算顺序)
P18 列表
一、区别联系方法与函数
1.相同处:均用于调用某一特定功能
2.不同处(在使用上):
(1)方法:对象.方法名(···)
(2)函数:函数名(对象)
内置函数:官方设置好的可以直接调用的函数,可以在python官方文档中查询
二、列表(list)
1.用途:整合相关联的数据
2.基本格式:列表名 = [列表内容,列表内容](列表内容可以是不同类型的数据)
3.添加删除列表中的元素:使用append/remove方法
注:删除添加元素时列表中得有该元素
4.len函数,索引在列表中的使用同字符串(见P10数据类型),对列表使用len函数则会返回列表内元素的数量,索引则会按序得到某元素,同字符串字符顺序,列表中元素顺序从0开始
5.修改列表中元素可以使用列表索引赋值更改
6.一些内置函数
(1)列表中的最大值(输出类型为int):max(···)
(2)列表中的最小值(输出类型为int):min(···)
(3)排序号列表(输出类型为list):sorted(···)
注:需要使用print来展示结果哦
示例:
列表:shopping_list = ["键盘","显示器"]
删除列表中的元素:shopping_list.remove("显示器'')
将键盘修改成鼠标:shopping_list[0] = "鼠标"
P19 字典与元组
一、字典(dict)
1.用途:储存键(key)值(value)对,键有对应的值,键用于查找值
2.基本格式:
字典名 = {键:值,
键:值}
3.查询键得到值:字典名[键]
注:键应使用不可变数据类型(见P12数据类型)
4.查询键是否存在:键 in 字典名(返回布尔值)
5.添加键值对/更新值:字典名[键] = 值
6.删除键值对:del 字典名[键]
7.len函数使用同列表(见P18列表)
8.一些内置方法:
(1)返回所有键:字典名.keys()
(2)返回所有值:字典名.values()
(3)返回所有键值对:字典名.items()
二、元组(tuble)
1.基本格式:元组名 = (元组内容,元祖内容)
P20 for循环
一、for循环
1.基本形式:
for 变量名 in 迭代对象
执行语句
执行语句
(这里的变量名会赋值给迭代对象中的每一个元素)
2.常用于有明确循环对象或次数时
二、range
1.用途:表示整数序列
2.用法:range(起始值,结束值,步长)
注:步长默认为1,结束值不会被输出
P21 while循环
一、while循环
1.基本格式:
while 条件:
执行语句
(若条件为真则执行)
2.常用于循环次数未知时
P22 格式化字符串
一、format方法
1.基本格式:在字符串中将需要格式化的位置放入{},字符串结束后添加.format( )
注:format后面括号中可放置多个参数,参数之间使用逗号间隔
2.使用:
(1){}中可以放置数字,数字替换的值便是format中对应序号参数的内容
注:同样的序号从0开始
(2){}中也可以放置关键词,此时format方法括号中的格式为关键词 = 替换的内容
二、f-字符串
1.基本格式:字符串前加f,字符串中需要格式化的位置放入{},{}中的内容会被直接求值
注:请先用变量将{}中的内容赋值
三、 数字格式化
这段有点混乱,没看懂
四、保留小数操作
在format方法,f-字符串中,{}输入目标内容后加上冒号(:)点(.)保留的位数f即可
示例:
{apple:.2f}即保留apple对应值的两位小数
P23-24 定义函数
一、DRY原则
软件开发原则中原则,不要重复代码,为避免违反该原则,可以使用函数
二、定义函数
1.基本格式:
def 函数名(参数,参数):
定义函数的代码
定义函数的代码
注:定义函数的代码不会被执行,只有实际调用时才会被执行
2.使用:函数名(参数,参数)
三、局部变量
我们在定义函数中使用的变量属于局部变量,在函数以外则无法使用
四、return语句
1.基本格式:
def 函数名(参数,参数):
定义函数的代码
定义函数的代码
return 想要返回的东西
2.作用:在函数执行完毕后返回想要的东西
事实上,当没使用return语句时,Python返回的值数据类型默认为None
P25引入模块
一、import语句
1.基本格式:文件开头输入import 加上模块名
2.使用:输入模块名.跟上函数名/变量名
3.优劣:不易产生命名冲突,易分清函数作用
示例:函数数据库
1.用途:提供更复杂的数学运算
2.使用:文件开头输入import math
需要使用时输入math.跟上函数名
注:需要使用print来展示运算结果哦
示例:
求以2为底8的对数:
import math
result = math.log2(8)
print(result)
二、from···import···语句
1.基本格式:from 模块名 import 要使用的函数或变量(多个的话用逗号间隔)
2.使用:函数基本调用(见P18)
3.优劣:易进行多次函数使用,不易产生命名冲突
三、from···import·*语句
1.基本格式:from 模块名 import*
2.使用:函数基本调用(见P18)
3.优劣:可以调动同一模块内的所有函数,但在不同模块内若有同一函数名则会造成命名冲突(适合调动同一模块内多个函数)
四、调用第三方库
先安装第三方库,之后调用同官方库调用
P26-29 面向对象编程
一、面向过程编程
1.过程:指完成某个具体任务的代码,基本为函数
2.核心:实现的事情拆分成步骤依次完成
3.问题:随着逻辑难度提升代码清晰度下降
二、面向对象编程理论部分
1.类是创建对象的模板,类是对象的实例。类定义了对象的属性和方法
2.优点:减少参数,有利简化程序逻辑,清晰逻辑及后续数据流动,可以绑定相关性质特点
3.特性:封装,继承,多态
(1)封装:写类的人将内部实现细节隐藏起来,使用类的人只通过外部接口访问使用,可减少外部使用精力
(2)继承:允许创建有层次的类。类可以有子类和父类来表达从属关系,可减少代码冗余
(3)多态:因为对象具体类的不同而有不同的表现,可统一调用同一名称的方法调用实质不同的方法
三、类定义属性的运用
1.基本格式:class 类名称:
定义类的代码
定义类的代码
2.命名类方法:Pascal命名法
用首字母大写来区分单词(和驼峰差不多)
3.构造函数:
(1)作用:定义实例对象的属性
(2)基本格式:
class 类名称:
def __init__(self,参数):
self.参数 = 参数
(这里self用于绑定属性值到对象自身)
4.创建对象:类名 = 对象(参数)
5.获取对象属性:类名.属性(参数)名
注:三、四中的self参数不需手动传入
四、类定义方法的运用
1.格式要求:
在class关键字后缩进,同__init__,括号内要先跟self表示对象自身,其余同普通方法(见P18)
(这里self用于获取修改和对象绑定的属性)
2.调用方法:对象.方法名(参数)
五、类继承
1.创建方法:
创建一个父类,在创建子类时,在子类名称后面跟上(父类名)
注:在调用子类属性和方法时,会优先看所属类有无该方法,若没有时查找父类中有无该方法
3.super方法
(1)为避免调用子类属性方法时方法属性不完整,使用super方法,其将会返回当前子类的父类
(2)使用:
def __init__(子类参数):
super __init__(父类参数):
4.使用继承的情况:A是B→class A(B)
P30 定位文件路径
一、类Unix操作系统(Linux、macOS等)
1.电脑操作系统目录结构:
像树根,根节点叫做根目录,一般用/表示,一切的文件目录都存放于根目录下

2.文件位置:
(1)绝对路径:从根目录出发的路径;以斜杠开头,路径中的每个目录之间用斜杠进行分隔,最后以目标文件或目标目录结尾

(2)相对路径:从一个参照位置出发,表示从它的位置上看,其他文件处于什么路径;用.来表示参照文件当前所在目录,用..来表示上一层的父目录,再往上就用../..来表示当前文件所属目录父目录的父目录。往下层则以.开头,同样用斜杠分隔开路径中的目录

另外,./是可以省略的,所以在同一目录下的文件相互相用相对路径找到彼此可直接使用文件名

二、Windows操作系统
1.电脑操作系统目录结构:
像树根,根节点叫做根目录,每个磁盘分区都有自己的根目录,用分区名加反斜杠(\)表示

2.文件位置:
(1)绝对路径:从根目录出发的路径;以分区名加反斜杠开头,每个目录之间用反斜杠分隔,同样以目标文件或目标目录结尾

(2)相对路径:见类unit系统,用仅仅将/换成\使用
P31-32 文件操作
一、打开文件
基本操作: open("文件路径","模式" ,("r+"),encoding="编码方式")
模式:"r"读取模式(只读)"w"写入模式(只写)“a”附加内容【模式不填写默认为读取模式,若原文件已有内容,使用w模式则会清空原内容,a模式不会清空重写,w和a模式都无法进行读取】当你想要同时读写时请先选取a/w模式并输入括号内内容
一般编码方式为utf-8【编码知识详见视频BV1xP4y1J7CS】
二、读取文件
- read方法
(会读取全部的文件内容)

返回形式:字符串
read(数字)【该数字为读取的字节数】,下次再调用read会继续从上次结束的位置读取
2.readline方法
(只读取一行【换行符同样属于读取部分】)


3.readlines方法(读取全部文件内容并返回列表元素)


三、关闭文件
1.close方法
读取完文件应关闭文件

2.with关键字
with+open函数的调用+as+文件对象命名
(缩进)操作文件的内容
四、写文件

write方法
不会有换行效果,需使用\n手动换行
若文件名不存在会直接创建一个新的
P33 异常处理
一、捕捉异常(try+expect)
基本格式:【同条件判断一样,只有第一个符合条件的分支会运行,第一个except成功后之后的except不会被运行】
try:
(缩进)你认为有可能报错的代码
except 你认为可能出现的错误类型
(缩进)你想在错误发生后执行的操作
except:【会捕捉所有错误类型】
(缩进)你想在错误发生后执行的操作
else:
(缩进)当try语句中的代码无误时想执行的操作
finally:
(缩进)无论错误与否都会被执行的语句
P34-35Python测试
一、基本用法
assert语句
使用方法:在assert后跟上你认为True的语句
当报错时会直接结束进程
unittest库
一般会独立一个测试文件进行测试

为了调用测试功能,还要在测试文件里调用用于测数的函数

创建一个unittest的子类,每个测试用例都是类下面的一个方法,名字必须以test_开头

该库中assertEqual方法可以使得程序在False时继续运行
写好测试用例后在终端输入python -m unittest就可以开始测试并展示测试结果

·代表测试通过,F代表不通过,终端还会告诉你其他详细信息
二、unittest进阶玩法
常见测试方法

assertTrue方法是万能方法,但建议使用针对性的方法,在测试不通过时终端会给出详细的失败原因
还可以增加额外方法提高测试效率
TestCase类里的setUp方法,在测试用例前写
