学完C语言,然后在B站系统学Python之旅

python系统学习之路

前言

大一学完C语言后,暑假开始学python。原因之一是因为打CTF需要用一门高效,简洁,强大的语言来写脚本来做题,而python是非常符号这一特点的。其二是因为参与了大二学长的大创,负责爬虫,也需要用到python。因此我在B站上找到了大家都比较推荐的python课【0基础也能学】第6天学到这,有C语言基础学得还是挺快的,下面是我对第二至第六章的笔记与总结以及python和C之间的对比,对视频中一些错误的内容用蓝色标记了,但图片上可能也会有点小错误,没标出来,反正这我写的文章,应该就只有我自己看,懒得改。要是真有人看的话,建议先看补充知识

目录

python系统学习之路

第二章

python常见数据类型

变量

type

print 补充知识

标识符

变量的命名规范

运算符

算术运算符

赋值运算符

字符串拓展

字符串的定义

字符串的引号嵌套

字符串的拼接

字符串格式化

字符串格式化的精度控制

字符串快速格式化

对表达式进行格式化

数据输入

第三章

bool类型和比较运算符

bool类型

比较运算符

if语句

if,else语句

if elif else语句

第四章

while循环

基本语法

for循环

range语句

序列类型

语法

for循环临时变量的作用域

continue和break来控制循环

第五章

函数

函数的定义

函数的调用

函数的传参

函数返回值

什么是返回值

无返回值(也就是返回None)

函数的嵌套调用

函数变量作用域

局部变量

全局变量

两者关系

第六章

数据容器

列表

列表的定义

列表的下标索引

列表的常用操作方法

列表的查询功能【方法】

列表的修改功能【方法】

总结

列表的特点

列表的循环遍历

while循环

for循环

while循环与for循环对比

元组

元组的定义

元组的操作

元组的循环遍历

字符串

字符串的操作

最基础的操作

字符串的替换【字符串特有】

字符串分割【字符串特有】

字符串的规整操作【字符串特有】

总结

字符串的循环遍历

字符串的特点

序列及切片操作

集合

集合的定义

集合的操作方法

集合的修改

添加新元素

移除元素

随机取一个元素

清空集合

取差集【集合特有】

消除差集【集合特有】

合并集合【集合特有】

统计元素个数

循环遍历集合【只能用for循环】

总结

集合的特点

字典

字典的定义

字典数据的获取

字典的嵌套

字典的常用操作

添加新元素或修改元素

删除元素

清空元素

获取全部的key【字典特有】

字典的遍历

统计长度

总结

字典的特点

数据容器的简单分类与对比

数据容器的通用操作

遍历

统计

相互转换

容器排序

总结

补充知识

制表符\t

语法规范

字符串大小的比较

python与c语言的区别

自增

类与方法

编译器用到的操作(pycharm为例)

编程语言不可能完全能记下来


第二章

python常见数据类型

 

变量

 

type

type() : 用于查看数据类型【变量是没有类型的,变量存储的数据是有类型的】

数据类型的转换

 

print 补充知识

同C语言不一样,print()函数默认换行,为了不换行,要加上end=’’

如:print(“Hello World”,end=’’)

 

标识符

python中的标识符

 

变量的命名规范

运算符

算术运算符

 

赋值运算符

字符串拓展

字符串的定义

 

字符串的引号嵌套

 

字符串的拼接

1.如果我们有两个字符串(文本):字面量,可以将其拼接成一个字符串,通过+号即可完成

2.不过,两个字符串单纯拼接,显得很呆,一般是字符串和变量进行拼接

注:字符串不能和数字(int、float)等其他类型拼接

字符串格式化

 

 

同样是占位符,但python同C语言不太一样,C语言中是要求后面的变量要和占位符的数据类型对应,如%s占位,后面必须得用字符串类型的变量;但python中则是将变量内容转换成相应的类型再放入占位位置。

字符串格式化的精度控制

 

精度控制是和C语言基本上一样的,但是,C语言中是没有四舍五入的

字符串快速格式化

 

特点:不限数据类型,不做精度控制

对表达式进行格式化

特点,能够跳过将表达式的值赋值到变量中的过程,直接格式化字符串

C语言中也是可以格式化表达式的

数据输入

 

当然,同C语言的scanf类似,可以将提示语句写入到input()中,如input(“hello”)

注:输入的数据都会变成字符串类型,若需要修改,要自己去数据类型转换

第三章

bool类型和比较运算符

bool类型

True,表示真,数字上代表1,False,表示假,数字上代表0

bool类型可以通过定义得到,也可以通过比较得到(同C语言一样)

比较运算符

(同C语言类似)

 

if语句

注:python中通过空格缩进来对应层次关系。

 

if,else语句

 

if elif else语句

 

同C语言稍微不太一样,C语言是if,else if,else,python有elif,来顶替else。

第四章

while循环

基本语法

 

for循环

注:for循环和C语言大不一样。

C语言中,for循环和while循环是可以相互转换的,两者可以说没什么差别,但python中差别很大,for循环没有while的循环条件限制,而是用数据集(序列)的范围来做限制

字符串可以直接当做序列,但数字类型不行。【当然,从字符串中取得的字符赋值给变量也是str类型】

range语句

序列类型

是指内容可以一一取出的一种类型,包括字符串、列表、元组等。

for循环的本质是遍历序列类型(遍历列表时还会提到)

语法

注意:range同random略有不同,random(a,b)是可以取到b的,而range(a,b)得到的序列中没有b【对于random(b),是默认将a视为0了,对于random(a,b,step),步长step不写,视为1】

for循环临时变量的作用域

 

在循环外定义,for循环可以看做将变量又重新覆盖了几遍。

continue和break来控制循环

continue和break在C语言和python中功能类似

第五章

函数

 

函数的定义

参数,函数体,返回值,这些概念以及相关操作同C语言高度一致。

 

函数的调用

 

函数的传参

python函数的参数也是同C语言高度相似的

函数返回值

什么是返回值

 

 

无返回值(也就是返回None)

函数的嵌套调用

同C语言一样,没啥好说的

 

函数变量作用域

同C语言一样,也没啥好说的

局部变量

 

全局变量

 

两者关系

 

C语言中没有global这种效用的东西

第六章

数据容器

 

列表

列表的定义

支持嵌套,也就是说元素可以是列表

列表的下标索引

列表索引同C语言中的数组索引有类似之处,比如都是从0开始,但也有不同,python是有从后往前递减的索引。而取列表的嵌套列表中的元素,则类似于C语言中的多维数组

 

列表的常用操作方法
列表的查询功能【方法】

 

列表的修改功能【方法】

上图显然有点问题,结果中应该是2,3

 (每次只能追加一个任意元素)

 相较于append,extend虽然能够追加到多个元素到列表后,实际上可以将追加的元素看做追加了一个数据容器

del是一个删除元素的关键字,而pop是list中的一个方法【这个方法的实际功能是将列表中指定的元素取出来,然后返回出去,因此还可以用一个变量来接收返回值】

注意:传入的参数不是下标,而是元素,如果列表中没有此元素则会报错

len是一个内置函数,不是列表中的方法,可以直接用就行

总结

 

列表的特点

 

列表的循环遍历
while循环

【同C语言中数组的遍历思想一样】

for循环

由之前接触for循环的时候,我们就了解到for循环的本质。for循环更合适遍历列表

 

while循环与for循环对比

 虽然for循环会受限,但for循环将会是之后写代码用得更多

此外值得注意的是:while循环是下标在变化,而for循环是将对应的元素拿了出来

元组

 但元组中可以嵌套列表,然后列表可以修改数据

元组的定义

也就是将列表的中括号换成了小括号而已

 但要注意:如果单个元素不加逗号,整体就会是元素的数据类型,而非tuple

元组也是可以嵌套的,嵌套元组中的数据和列表一样,注意是用[],而不是()

元组的操作

元组的操作同列表类似,但由于其不可修改的特性,使其操作比较少。

元组的循环遍历

元组的while循环和for循环同列表是一样的,只是不能修改而已,如果进行修改就会报错

字符串

 字符串的定义不必多说,当然作为数据容器,字符串同列表、元组一样也支持索引下标

 字符串的操作

最基础的操作

index、count、len这些功能都是能用的

字符串的替换【字符串特有】

 可以认为.replace得到一个返回值

字符串分割【字符串特有】

 分隔符字符串起到分隔的作用

字符串的规整操作【字符串特有】

 strip方法只能去除字符串前后的指定字符【不需要考虑指定字符的顺序】,如果不传参,则默认指定空格和回车符

总结

 字符串的循环遍历

 字符串的特点

注意:与列表和元组不同的是,字符串只能存储str数据类型

 

序列及切片操作

但要注意:序列是不能修改的,会得到一个新的序列,参考元组和字符串可以知道

步长不写(留空)默认是1【步长留空,可以将前面的:也省略,但第一个:是无论如何都不能省略的】【起始和结束留空,表示从头到尾,且可以取到最后一位】

而 [::-1]相当于将序列反转

集合

特点:不支持元素重复,且无序

集合的定义

 

定义空集合得用set()【()是空元组,{}是空字典】赋值时会自动去重,且是无序的【每次运行的结果都可能不一样】

集合的操作方法
集合的修改

 

添加新元素

 移除元素

 同列表的remove略有不同,由于列表是可重复的,remove只会移除第一个匹配到的元素,而集合是不重复的,因此两者有所不同。

随机取一个元素

同列表中的pop略有不同,由于列表是有序的,有下标,因此在列表中pop中带上了下标,可以取对应的元素,而集合无序,因此没参数,随机取一个元素 

清空集合

同列表中的方法效果一样。用clear方法

取差集【集合特有】

 注:这是集合特有的方法,产生了一个新集合,想想可以知道,只能是产生一个新集合

消除差集【集合特有】

 想想可以知道,只能是在某个集合中消除【谁用的方法就消谁】

合并集合【集合特有】

 (想想也只能得到新集合)

统计元素个数

同之前的一样用len函数

循环遍历集合【只能用for循环】

由于无序,没有索引,只能用for循环

总结

 集合的特点

 不能while循环,因为不支持索引

字典

字典的定义

 注:字典同集合一样,不允许重复,新的key会覆盖掉老的key中的value

字典数据的获取

【是中括号[]】

 

字典的嵌套

 亲测发现:key不可以为列表(list)、集合(set)、字典(dict)【键是不能修改的数据类型】

这一点黑马的视频是没讲清楚的

字典的常用操作

添加新元素或修改元素

删除元素

 

用pop传入的参数是key【可将key当做列表的索引】返回的是字典中的value

清空元素

仍然是用clear方法,都一样

获取全部的key【字典特有】

 注:返回值的类型是dict_keys ,但并不重要,这个方法常和for循环结合起来,操作value

for循环可以依次取出key值。

字典的遍历

方式1:通过获取全部的key后,进行for循环,依次得到key

方式2:直接对字典for循环得到的就是key【更快】

不能用while循环来遍历字典

统计长度

用len函数

总结

 

字典的特点

数据容器的简单分类与对比

字典中的key除了可修改的类型,其他都能用

数据容器的通用操作

遍历

 统计

 注意:不同的数据类型是不能比较大小的,编译器会报错

注:字典最大最小元素比较的是key而不是value

相互转换

 字典转列表、元组、集合后,只剩下key

其他数据容器转字符串后,输出结果与原来一样,但实际上转换后就是在这些数据容器上加了一对双引号,如:列表转字符串后:”[1, 2, 3, 4]”

不能将其他容器转字符串,因为没有value

容器排序

 

反向排序,如:sorted(my_list, reverse = True)

sorted排序会将排序后的结果存放到列表中,且对列表排序后会仍然会丢失value

总结

 

补充知识

制表符\t

 但有时会由于第二行第一个单词太抽象了而不能够对齐

语法规范

逗号后面来个空格

字符串大小的比较

python中字符串大小的比较和C语言原理一样,都是逐一比较每个字符的ASCII值,直到有一组比较出来,作为结果

python与c语言的区别

自增

C语言可以用i++,python中只能用i += 1

类与方法

 有点像自己创建了一个库(不需要import引入,先用一个变量名,接收这个库,然后这个变量名便有了这个库的功能(可以调用这个类中的函数【方法】))

编译器用到的操作(pycharm为例)

ctrl + D 向下填充【复制本行到下一行】

ctrl + Z 撤销

Shift + Alt +鼠标左键 纵向选择

编程语言不可能完全能记下来

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

j3ff_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值