2020/2/2-Python学习计划

Posted 符黑石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020/2/2-Python学习计划相关的知识,希望对你有一定的参考价值。

Python基础

上学期的课程中我学习了编译原理,虽然成绩渣渣,但是不影响我对编译过程有了整体的理解;

Python作为一种计算机编程语言,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能有歧义,所以,编译器或者解释器就是负责把符合语法的程序代码转换成CPU能够执行的机器码,然后执行。Python也不例外。

最后要注意的是:Python程序是大小写敏感的,如果写错了大小写,程序会报错。

同时需要注意的是:Python使用缩进来组织代码块,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。

List与Tuple

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。

Python条件

条件判断可以让计算机自己做选择,Python的if...elif...else很灵活。

条件判断从上向下匹配,当满足条件时执行对应的块内语句,后续的elif和else都不再执行

Python循环

for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。

Python提供一个range()函数,可以生成一个整数序列

第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。

在循环中,break语句可以提前退出循环。

在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。

break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

要特别注意,不要滥用breakcontinue语句。breakcontinue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到breakcontinue语句,上面的两个例子,都可以通过改写循环条件或者修改循环逻辑,去掉breakcontinue语句。

Dict与Set

Dict

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。

第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢。

把数据放入dict的方法,除了初始化时指定外,还可以通过key放入

和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

重复元素在set中自动被过滤;

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。

以上是关于2020/2/2-Python学习计划的主要内容,如果未能解决你的问题,请参考以下文章

jmete 学习 --元件详解

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

学习笔记:python3,代码片段(2017)

学习 PyQt5。在我的代码片段中找不到错误 [关闭]