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,看看是否会报错。

原文地址:https://www.cnblogs.com/fuheishi/p/12251324.html

时间: 2024-11-18 10:20:17

2020/2/2-Python学习计划的相关文章

Python 学习计划

时间分为4周,全部自学,仅提供大纲.适用于Web方向: 1.Week1:读完<简明Python教程>,适应Python开发环境 2.Week2:写个爬虫,需要深入了解re.urllib2.sqlite3.threading,Queue等几个模块.需要用上多线程抓取,正则表达式分析,并发资源控制,重新开启程序自动继续抓取和分析 3.Week3:学习一种Web开发框架,推荐Flask.webpy之类的,学个数据库接口如sqlite3,写个简单的web应用如博客 4.Week4:给产品做个小功能并走

python、数据分析师、算法工程师的学习计划

1.前言 最近(2018.4.1)在百忙之中开通了博客,就喜欢能够把自己所学所想沉淀下来,这篇是我开始系统学习python,称为数据分析师和算法工程师之路的计划,望有志于为同样目标奋斗的数据猿一起交流和学习. 2.Python学习计划 2.1 学习计划 (1)找一本浅显易懂,例程比较好的教程,从头到尾看下去.不要看很多本,专注于一本. (2)去找一个实际项目练手.(参照Crossin的编程教室-Python入门,Python的练手项目) 2.2 学习资料 零基础入门书籍:<简明python教程>

Python学习步骤如何安排?

一.清楚学习目标 无论是学习什么知识,都要有一个对学习目标的清楚认识. 只有这样才能朝着目标持续前进,少走弯路,从学习中得到不断的提升,享受python学习计划的过程. 二.基本python 知识学习 1.  了解Python是什么,都能做些什么? 2.  知道什么是变量.算法.解释器 3.  Python基本数据类型 4.  列表和元组的操作方法 5.  字符串操作方法 6.  基本的字典操作方法 以上这些可以略微掌握之后就进行下一步,遇到忘记不会的可以再参考一下书和笔记. 三.掌握Pytho

最全Python学习路线图【2020最新版】

2020年最新的python学习大纲,专为python高薪打造另外很多人在学习Python的过程中,往往因为没有好的教程或者没人指导从而导致自己容易放弃,为此我建了个Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,都会解决哦! 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12114751.html

Python学习路线引导-Python入门基础

一.学习目标和建议学习周期 1.学习目标:完成Python入门基础,为数据分析事或者软件测试工程师知识体系中Python编程的入门知识. 2.学习阶段:2020.1.13-2020.2.23六周,建议每周学习时长15小时,整个学习时长90小时. 二.推荐教程 廖雪峰教程:https://www.liaoxuefeng.com/wiki/1016959663602400 学习笔记:<Python入门学习笔记-精灵>-部分示例代码源自廖雪峰教程,可参照其教程,理解其知识点,在数据分析与软件测试创新

python学习之路Day1

PYTHON学习DAY1 内容总结: 1.python版本 2.7 与2020年中止更新 raw_imput() 3.0主流版本 input() python代码以缩进方式来区分代码块. 2.模块 import os import sys import readline 输入数字强制转换成int类型.否则input()接受默认为字符类型 age = int(input("Please input your age:")) 3.条件判断 if  条件: 执行动作 elif: 执行动作 e

【我拼搏的2016】python学习的新认知和培训期间

2016年12月16日:[我拼搏的2016]python学习的新认知和培训期间 一:自我介绍 我叫陈浩,我于2016年10月报名参加了由alex老师主讲的python培训班,希望能够通过学习后实现python安全和运维的学习计划. 二:对python新的认识 经过2个月的努力之后,我对python领域有了新的认知: 1.从以前不懂编程的小菜鸟到现在能看懂部分代码了,并完美的解释起来不费什么力气了. 2.认识了很多志同道合的python伙伴. 3.目前还在第三模块学习中,alex老师讲课风格比较生

治愈 JavaScript 疲态的学习计划

显然,这篇文章触及了大家的神经:我一而再地在 Hacker News 看到它位居榜首.这也是 Reddit 网站里 javaScript 分类下最为热门的帖子,截至目前,在 Medium 上已有超过一万的喜欢数,很可能比我所有的文章加起来的喜欢数都多.但谁说了算呢? 尽管这并不意外,我很早之前就知道 JavaScript 生态系统会是混乱的.事实上,我进行这个< State Of JavaScript >调查的特殊原因就是要找出哪些库是实实在在受欢迎的,并且从喧闹声中整理出分类. 但是今天,我

6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.)

6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.) 余博伦· 2 个月前 原文链接:A Study Plan To Cure JavaScript Fatigue 作者:Sacha Greif 和大家一样,最近我也看了Jose Aguinaga写的How it feels to learn JavaScript in 2016. 显然这篇文章击中了人们的痛处.它在Hacker News上排了不止一次第一.同样也是/r/javascript上最火的一篇,在Med

global语句(python学习手册422页)

# -*- coding: cp936 -*- #python 27 #xiaodeng #global语句(python学习手册422页) #实际上就是一个名为__builtin__的模块,但是必须要import之后才能使用,因为变量名builtin本身并没有预先内置 #global语句,命名空间的声明,告诉python计划生成一个或多个全局变量. #全局变量名小结: #1.全局变量是位于模块文件内部的顶层的变量名 #2.全局变量如果是在函数内被赋值的话,必须要经过global声明 #3.全局