python编程:入门到实践的知识整理

目录

字符串

修改字符串大小写

合并字符串

删除字符串空白

整数类型int变字符串str

 制表符,换行符

列表

创建列表

访问列表

修改,添加,删除列表元素

修改元素

添加元素

插入元素

删除元素

 组织列表 

确定列表长度

创建列表for循环

创建数字列表

列表一部分(切片)

复制列表

元组

定义元组

遍历元组中的所有值

修改元组变量

检查变量是否相等

if语句

字典

访问字典中的值

添加键-值对

修改字典中的值

删除键-值对

遍历字典

在字典中存储列表

在列表中存储字典

用户输入

函数input()

函数int()

while循环

使用while循环来处理列表和字典

函数

定义函数

实参和形参

返回值

让实参变成可选

返回字典

传递列表


好辛苦,在读《Python编程,从入门到实际》,这是读的时候做的笔记

我要保持日更!!

我记笔记直接写的,没有用MD编辑器,好后悔!!搞个二级标题好麻烦

看不懂的可以评论或私信

现在的编排可能不那么完善,我每天都会改改,添加添加内容

字符串

修改字符串大小写

首字母大写:title()

字母全大写:upper()

字母全小写:lower()

合并字符串

直接加号连接即可-->可以拼接创建信息

sql语句是concat函数

删除字符串空白

字符串俩端空白都删strip()

只删除右端rstrip()

只删除左端lstrip()

整数类型int变字符串str

str()-->避免类型错误,语句无法输出

报错,提示你第二句错误,应该用函数str转换字符串

正确输入:

 制表符,换行符

制表符\t

换行符\n

列表

创建列表

方括号[]表示列表,逗号分隔其中的元素

bicycles=['trek', 'cannondale','redline','specialized']

访问列表

要有索引,第一个元素索引为0,其后1,2,,,(!!索引从0开始)

索引顺序

综合运用一下前面知识

应该看得懂把!

修改,添加,删除列表元素

修改元素

什么!直接改!就是这么简单

添加元素

append()

推广-->创建空列表,然后通过存储用户输入的值,变成一个满满当当的列表

添加只能添加末尾,不干扰其他元素,我想添中间怎么办?

插入元素

插入啊,当然是运用insert()

插入索引2位置,它就是索引2代表元素了!!

删除元素

del语句

这不是函数,这是del语句!!

如果我删除了,但是后续还想用怎么办,还想要这个信息怎么办???

当当当:pop()函数,将元素从列表中删除,并接着使用它的值

如果不输入索引,默认删除末尾元素

注意:使用pop()时,删除的元素不在列表哦

如果你不知道你要删除的值在哪,索引是什么怎么办??

我问你怎么办?

remove()函数闪亮登场

你猜删除后还可不可以接着使用它的值

可以用!惊不惊喜!考察:\n什么意思

注意:remove()只删除第一个指定的值,如有要删除的值在列表中多次出现,要进行循环语句删除了,后续会学,想知道怎么循环吗?

 组织列表

就是按你想要的顺序排排序啦

sort()函数,默认按字母顺序排序

如果要按字母顺序相反排序

sort函数还有其他顺序,我这基础班就不介绍了

注意:sort()对列表元素排列顺序的修改是永久性的

如果是临时排序,那就是sorted()函数

看看看,没有变原式排列顺序

反转元素的排列顺序,用我们的reverse()函数

确定列表长度

函数len()

创建列表for循环

for循环,使用range()函数

看出来没,range里面是左闭右开的,1是可以取到的,6是取不到的 

创建数字列表

range还可以指定步长(一个步子跨多大)

结合for循环和range()函数来生成1-10的平方

还记得append函数含义吗?在前面讲了哦

列表一部分(切片)

看看依旧是左闭右开

这个代表从-2这个索引开始往后取,到结束

所以想输出最后几个元素就很简单了

复制列表

提示:创建一个包含整个列表的切片(思考思考,举一反三)

答案是:[:]

验证一下

如果简单的将my_bicycles=bicycles,就不能得到俩个列表

看看不能就这样,要创建包含整个切片

元组

列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素, 元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

定义元组

元组看起来犹如列表,但使用圆括号而不是方括号来标识

哦吼,不能修改

遍历元组中的所有值

修改元组变量

虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺 寸,可重新定义整个元组

想不到吧!!

检查变量是否相等

将变量car的值设置为'audi'

两个等号是 发问,第二句可解读为“变量car的值是'bmw'

糟糕,大小写不同会被视为不相等

哒哒哒,这样可以了!

而且函数lower()不改变存储在变量car的值

if语句

!=的含义是不等于

可以多个elif

还可以省略else

字典

观察,观察格式,是不是大括号括起来

color被称为键,green变称为值

访问字典中的值

添加键-值对

看看看,添加了俩对键-值

修改字典中的值

综合运用:

对一个能够以不同速度移动的外星人的位置进行跟踪。为此,我们 将存储该外星人的当前速度,并据此确定该外星人将向右移动多远

自己做做:

删除键-值对

彻底删除还是del语句,不记得了回头看看!

遍历字典

遍历所有的键-值对

函数items()

遍历字典中所有的键

函数keys()

按顺序遍历字典中的所有键

字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的。 这不是问题,因为通常你想要的只是获取与键相关联的正确的值。

但是但是!!

要以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序。为此,可使用函 数sorted()来获得按特定顺序排列的键列表的副本

介个函数之前学过哦!!

遍历字典中所有的值

函数values()

这种做法提取字典中所有的值,而没有考虑是否重复。

集合(set) 集合类似于列表,但每个元素都必须是独一无二的

哒哒哒

在字典中存储列表

所有一个键可以对应好多个值!!还可以存储多个键关联的值都是列表!

在列表中存储字典

看清楚不同了没

混合就类似这样:

同类用列表,不同类用字典键-值

在字典中存储字典

那为什么还要列表存储字典啊,列表存储字典怎么访问里面的元素,字典存储字典不更加好吗?

选择列表存储字典or字典存储字典

列表是一种有序的数据结构,可以存储任意类型的元素,包括字典。当你需要保持元素的顺序或者需要通过索引来访问元素时,列表是一个很好的选择。例如,如果你有一个班级的学生信息,每个学生的信息可以用一个字典表示,那么所有学生的信息就可以存储在一个列表中。

访问列表中字典的元素,可以通过索引来实现:

字典是一种无序的数据结构,其中的元素是键值对。当你需要通过一个唯一的键来快速访问数据时,字典是更好的选择。例如,如果你要存储一个班级的学生信息,并且每个学生都有一个唯一的学号,那么使用字典存储学生信息会更方便。

访问字典中字典的元素,可以通过键来实现:

  • 如果你需要保持数据的顺序,或者经常通过索引来访问数据,那么列表可能更适合。
  • 如果你需要通过一个唯一的标识符(如学号、用户名等)来快速访问数据,那么字典可能更合适。

用户输入

函数input()

就是将用户输入存储在变量里,再打印输出了

有时候,提示可能超过一行,怎么办,怎么办?

我们可将信息存储在一个变量中,再将该变量传递给函数input()。这样,即便提示超过一行,input() 语句也非常清晰

input函数将用户输入解读为字符串,我输入数字怎么办

函数int()

出场

while循环

使用break退出循环

在循环中使用continue

打印1-10的奇数

我们首先将current_number设置成了0,由于它小于10,Python进入while循环。进入循环后, 我们以步长1的方式往上数,因此current_number为1。接下来,if语句检查current_number 与2的求模运算结果。如果结果为0(意味着current_number可被2整除),就执行continue语句, 让Python忽略余下的代码,并返回到循环的开头。如果当前的数字不能被2整除,就执行循环中 余下的代码,Python将这个数字打印出来

使用while循环来处理列表和字典

在列表之间移动元素

代码含义:我们首先创建了一个未验证用户列表,其中包含用户Alice、Brian和Candace,还创 建了一个空列表,用于存储已验证的用户。while循环将不断地运行,直到列表 unconfirmed_users变成空的。在这个循环中,函数pop()以每次一个的方式从列表 unconfirmed_users末尾删除未验证的用户。由于Candace位于列表unconfirmed_users末尾,因此 其名字将首先被删除、存储到变量current_user中并加入到列表confirmed_users中。接 下来是Brian,然后是Alice。 为模拟用户验证过程,我们打印一条验证消息并将用户加入到已验证用户列表中。未验证用 户列表越来越短,而已验证用户列表越来越长。未验证用户列表为空后结束循环,再打印已验证 用户列表

删除包含特定值的所有列表元素

题目:假设你有一个宠物列表,其中包含多个值为'cat'的元素。要删除所有这些元素,可不断运行一个while循环,直到列表中不再包含值'cat'

提示:remove函数,我们学过哦

这里前面遗留过的问题哦,循环删除重复值

使用用户输入来填充字典

函数

啊啊啊函数,我来了

定义函数

是不是很简单,定义再运用

括号里面可以填!!

实参和形参

在函数greet_user()的定义中,变量username是一个形参——函数完成其工作所需的一项信息。在代码greet_user('jesse')中,值'aimi'是一个实参

来俩个形参

还可以这样

前面形参的定义,代表你调用时不用定义,默认是那个对象,但是你如果自己定义也可以

返回值

函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行

让实参变成可选

如果那个人没有中间这个名字,怎么办

指定一个默认值----空字符串就好了

注意:要将该实参移到形参列表的末尾

返回字典

轻松扩展字典储存

传递列表

在函数中修改列表

将列表传递给函数后,函数就可对其进行修改。在函数中对这个列表所做的任何修改都是永 久性的

题目:来看一家为用户提交的设计制作3D打印模型的公司。需要打印的设计存储在一个列表中, 打印后移到另一个列表中。下面是在不使用函数的情况下模拟这个过程的代码:

这个之前写过类似的哦!!

为重新组织这些代码,我们可编写两个函数,每个都做一件具体的工作。大部分代码都与、原来相同,只是效率更高。第一个函数将负责处理打印设计的工作,而第二个将概述打印了哪 些设计

禁止函数修改列表

假设像前一个示例那样,你有一个未打印的设计列 表,并编写了一个将这些设计移到打印好的模型列表中的函数。你可能会做出这样的决定:即便 打印所有设计后,也要保留原来的未打印的设计列表,以供备案。但由于你将所有的设计都移出 了unprinted_designs,这个列表变成了空的,原来的列表没有了

为解决这个问题,可向函数传 递列表的副本而不是原件;这样函数所做的任何修改都只影响副本,而丝毫不影响原件

创建列表副本:[:] 熟不熟悉

前面学过

传递任意数量的参数

用咱们的通配符*

*toppings中*让Python创建一个名为toppings的空元组

结合使用位置实参和任意数量实参

如果要让函数接受不同类型的实参,必须在函数定义中将接纳任意数量实参的形参放在最 后。Python先匹配位置实参和关键字实参,再将余下的实参都收集到最后一个形参中

size该形参放在形参*toppings前面

使用任意数量的关键字实参

题目:你知道你将收到有关用户的信息,但不确定会是什么样的信息。 在下面的示例中,函数build_profile()接受名和姓,同时还接受任意数量的关键字实参

提示:可将函数编写成能够接受任意数量的键—值对——调用语句提供了多少就接受多少

将函数存储在模块中

将函数存储在被称为模块的独立文件中,再将模块导 入到主程序中。import语句允许在当前运行的程序文件中使用模块中的代码

导入整个模块

先创建一个包含函数make_pizza()模块

接下来,我们在pizza.py所在的目录中创建另一个名为making_pizzas.py的文件,这个文件导 入刚创建的模块,再调用make_pizza()两次

导入特定的函数

导入方法语句:

from module_name import fuction_0, function_1, function_2

使用as给函数指定别名

当然,也可以使用as给模块指定别名

导入模块中所有的函数

创建和使用类

来创建一个Dog类吧

注意:是__init__,不是_init_,要输入俩个_

首先,在Python中,首字母大写的名称指类,这个类定义中的括号是空的,因为我们要从空白创建这个类。

其次,类中的函数称为方法,你前面学到的有关函数的一切都适用于方法,就目前而言,唯一重要 的差别是调用方法的方式。方法__init__()是一个特殊的方法,每当你根据Dog类创建新实 例时,Python都会自动运行它。在这个方法的名称中,开头和末尾各有两个下划线,这是一种约 定,旨在避免Python默认方法与普通方法发生名称冲突

而且,我们将方法__init__()定义成了包含三个形参:self、name和age。在这个方法的定义中,形 参self必不可少,还必须位于其他形参的前面。为何必须在方法定义中包含形参self呢?因为 Python调用这个__init__()方法来创建Dog实例时,将自动传入实参self。每个与类相关联的方法 调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。 我们创建Dog实例时,Python将调用Dog类的方法__init__()。我们将通过实参向Dog()传递名字和 年龄;self会自动传递,因此我们不需要传递它。每当我们根据Dog类创建实例时,都只需给最 后两个形参(name和age)提供值。

接下来,定义的两个变量都有前缀self。以self为前缀的变量都可供类中的所有方法使用,我们 还可以通过类的任何实例来访问这些变量。self.name = name获取存储在形参name中的值,并将 其存储到变量name中,然后该变量被关联到当前创建的实例。self.age = age的作用与此类似。像这样可通过实例访问的变量称为属性

根据类创建实例

调用方法

创建多个实例

给属性指定默认值

新创建了一个Car类

添加了一个名为odometer_reading的属性,其初始值总是为0。我们还添加了一个名为 read_odometer()的方法,用于读取汽车的里程表

修改属性的值

直接改!

通过方法修改属性的值

我们扩充一下这个方法

通过方法对属性的值进行递增

新添加了这个方法,从334+100=434了

继承

一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类, 而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法

创建子类时,父类必须包含在当前文件中,且位于子类前面

定义子类时,必须在括号内指定父类的名称

super()是一个特殊函数,帮助Python将父类和子类关联起来。这行代码让Python调用 ElectricCar的父类的方法__init__(),让ElectricCar实例包含父类的所有属性

给子类定义属性和方法

重写父类的方法

可在子类中定义一个这样的方法,即它与要重写的父类方法同名。这样,Python将不会考虑这个父类方法,而只关注你在子类中定义的相应方法。

将实例用作属性

不断给ElectricCar类添加细节时,我们可能会发现其中包含很多专门针对汽车电瓶的属性和方法。在这种情况下,我们可将这些属性和方法提取出来,放到另一个名为Battery的 类中,并将一个Battery实例用作ElectricCar类的一个属性

定义一个新的类,在子类调用这个类

这看似做了很多额外的工作,但现在我们想多详细地描述电瓶都可以,且不会导致ElectricCar 类混乱不堪

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值