无需编程基础,Python从入门到进阶大法

本文试图概述Python编程语言的所有关键点,并专注于绝对需要理解的最重要的主题。完全零基础,你不需要具备任何先前的编程知识,并且可以非常快速地掌握所有必需的概念。

好,接下来我们开始。

1. Python简介

Python是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言

Python是交互式语言:你可以在一个Python提示符 >>> 后直接执行代码

Python是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术

Python是初学者的语言:Python对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏

2. 变量、数据类型及作用域

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的。而在Python中,变量等同于names。

声明变量和赋值(Python中也称作binding,相比赋值,绑定这个词可能更形象)操作:

myFirstVariable=1mySecondVariable=2myFirstVariable="Hello You"

Python支持数据类型包括数字、字符串、集合、列表、元组、字典。数字支持整数、小数、浮点。长整型会有一个L的后缀,比如9999999999999L。字符串是被引号(单双均可)包围由数字、字母、下划线组成的一串字符。如果你在学习Python的过程当中有遇见任何问题,可以加入我的python交流学习qq群:250933691,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。学习python有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我,如果你准备学习大数据,也欢迎加入大数据学习交流qq群458345782,每天与大家分享学习资源哦

程序创建、访问、改变一个变量时,都是在一个保存该变量的空间内进行,这个空间为命名空间,即作用域。Python作用域是静态的,变量被赋值、创建的位置决定了其被访问的范围,即变量作用域由其所在位置决定。Python的作用域一共有4种,分别是:

L (Local) 局部作用域

E (Enclosing) 闭包函数外的函数中

G (Global) 全局作用域

B (Built-in) 内建作用域

以L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。

3. 运算符

Python语言支持以下类型的运算符:

算术运算符:+;-;*;/;%(取模 - 返回除法的余数);**(幂 - 返回x的y次幂);//(取整除 - 返回商的整数部分,向下取整)

比较(关系)运算符:==(等于 - 比较对象是否相等);!=(不等于 - 比较两个对象是否不相等);<>(不等于 - 比较两个对象是否不相等);>(大于 - 返回x是否大于y);<(小于 - 返回x是否小于y);>=( 大于等于 - 返回x是否大于等于y);<=(小于等于 - 返回x是否小于等于y)

赋值运算符:=(简单的赋值运算符);+=(加法赋值运算符);-=(减法赋值运算符);*= (乘法赋值运算符);/=(除法赋值运算符);%=(取模赋值运算符);**=(幂赋值运算符);//=(取整除赋值运算符)

位运算符:&(按位与运算符);|(按位或运算符);^(按位异或运算符);~(按位取反运算符);<<(左移动运算符);>>(右移动运算符)

逻辑运算符:and(布尔"与");or(布尔"或");not(布尔"非") 

成员运算符:in(如果在指定的序列中找到值返回 True,否则返回 False);not in(如果在指定的序列中没有找到值返回 True,否则返回 False)

身份运算符:is(判断两个标识符是不是引用自一个对象);is not(判断两个标识符是不是引用自不同对象)

4. 注释

单行注释:

#thisisa single line comment

多行注释:

```this is a multilinecomment```

5. Pickling

将对象转换为字符串并将字符串转储到文件中称为酸洗。 反过来被称为unpickling。

6. 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。

定义新函数:

def my_new_function():print('thisis mynewfunction')


函数调用

my_new_function()

查看字符串长度

len('hello')prints5

7. 参数

定义函数的时候,把参数的名字和位置确定下来,函数的接口定义就完成了。函数的调用者只需知道如何传递正确的参数,以及函数将返回什么样的值即可。

Python参数包括:位置参数;默认参数;可变参数;命名关键字参数;参数组合。

8. 模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。

导入模块:

importmodule1[, module2[,... moduleN]]

调用模块中的函数:

module1.function1

从某个模块中导入一个指定的部分到当前命名空间中:

frommodnameimportname1[, name2[, ... nameN]]

把一个模块的所有内容全都导入到当前的命名空间:

frommodnameimport*

9. 包

模块与包是任何大型程序的核心,就连Python安装程序本身也是一个包。包是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的python应用程序执行环境,包含__init__.py文件和其它模块或子包。

从包里调用模块:

frompackageroot.packagefolder.modimportmy_object

PIP是Python的包管理器,未来你将会频繁的用到他:

pipinstall package_name

10. 条件语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块,也就是连吃瓜群众都知道的if/else语句:

ifa = b:print'a is b'elifa < b:print'a is less than b'elifa > b:print'a  is greater than b'else:print'a is different'


条件语句是可以嵌套的:

else:ifa =2:print'withinifofelse'else:print'withinelseofelse'


11. 循环语句

循环语句允许我们执行一个语句或语句组多次,一般包含两种类型:While循环和For循环。

While循环,一直循环知道满足某个条件终止:

while (input < 0): do_something(input)input=input-1

While循环嵌套:

whileexpression:whileexpression:      statement(s)  statement(s)

For循环,一直循环知道次数用尽:

foriinrange(0,10)printi

For循环嵌套语法:

foriterating_varinsequence:foriterating_varinsequence:      statements(s)  statements(s)


循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:

break:在语句块执行过程中终止循环,并且跳出整个循环

continue:在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环

pass:pass是空语句,是为了保持程序结构的完整性

break语法:

foriinrange(0,10):if(i==5):break

whileTrue:  x = get_value()if(x==1):break

12. 递归

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数factorial(n)表示,可以看出:

factorial(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = factorial(n-1) x n

所以,factorial(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理。

于是,factorial(n)用递归的方式写出来就是:

deffactorial(n):ifn==0:return1else:returnn * factorial(n-1)

13. 框架与栈调用

Python代码载入框架,框架位于栈中。

函数与参数和变量一起载入框架

框架会按照正确的执行顺序依次载入栈中

栈中列出函数的执行步骤,在函数外声明的变量存储在main中

最后入栈的框架将最先执行

如果发生错误,可以使用回溯来获取函数表

14、列表和库

列表


列表是可以保存任何数据类型的值序列的数据结构。它们是可变的(可更新的)。

列表由整数索引。


字典


字典是编程世界中最重要的数据结构之一。它的功能是存储键/值对对象,可以优化数据检索功能。

15.编译和链接

这些特征可用于使用以另一种语言编写的文件,例如C或C ++等


将代码写入文件后,可以将文件放在Modules目录中。

在Setup.local文件中添加一行非常重要,以确保可以加载新创建的文件。


16. 迭代器

迭代器可以遍历集合,所有迭代器都包含__iter __()和__next __()函数

只需在列表,字典,字符串或集合上执行iter(x)即可。


如果我们在集合中有大量项目,而且不打算一次加载内存中的所有文件,那么迭代器就是很有用的。一些通用迭代器让开发人员能够实现函数式编程语言实例。

17.面向对象的设计:类

Python允许创建自定义类型。由用户定义的类型称为类。这些类可以具有自定义属性和函数。


面向对象的设计允许程序员将其业务模型定义为具有所需属性和功能的对象。

属性也可以引用另一个对象。

Python类可以引用其他类。

Python支持封装,即实例函数和变量。

Python支持继承。

18.面向对象的设计:继承

Python支持对象的继承。因此,对象可以继承其父级对象的函数和属性。


继承的类可以在其函数中包含不同的逻辑。


如果一个类ParentClass有两个子类:SubClass1,SubClass2


因此,两个子类都将包含函数my_function()。


继承可以鼓励代码重用和维护。

一些常见问题指引

我为什么要使用Python?


简单的编码和学习

面向对象编程语言

伟大的分析和ML包

更快地开发并将我的解决方案推向市场

提供内置内存管理功能

提供巨大的社区支持和应用程序

无需编译,因为它是一种解释性语言

动态输入 - 无需声明变量


如何让Python快速运行?


Python是一种高级语言,不适合访问系统级程序或硬件。


此外,Python不适用于跨平台应用程序。事实上,Python是一种动态类型的解释语言,与低级语言相比,它的优化和运行速度较慢。


实现基于C语言的扩展。


使用Spark或Hadoop创建多进程


利用Cython,Numba和PyPy来加速Python代码,或用C语言编写代码,再像在NumPy中那样在Python中公开


现在有哪些常用的IDE?


Spyder,PyCharm。另外,使用各种笔记本电脑, Jupyter


有哪些顶级Python框架和包?


Python有大量必备的包:


PyUnit(单元测试),PyDoc(文档),SciPy(algebera和数字),Pandas(数据管理),Sci-Kit学习(ML和数据科学),Tensorflow(AI),Numpy(数组和数字),BeautifulSoap(web)页面报废),Flask(微框架),Pyramid(企业应用程序),Django(UI MVVM),urllib(网页抓取),Tkinter(GUI),mock(模拟库),PyChecker(bug检测器),Pylint(模块代码分析))


Python和R可以合并吗?


R中编写了大量丰富的统计库

可以使用Rpy2 python包或在Juputer中使用beaker笔记本或IR内核在Python中执行R代码。


有没有办法在运行Python之前捕获错误?

在运行代码之前,我们可以使用PyChecker和PyLink来捕获错误。

如果你在学习Python的过程当中有遇见任何问题,可以加入我的python交流学习qq群:250933691,多多交流问题,互帮互助,群里有不错的学习教程和开发工具。学习python有任何问题(学习方法,学习效率,如何就业),可以随时来咨询我,如果你准备学习大数据,也欢迎加入大数据学习交流qq群458345782,每天与大家分享学习资源哦

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,744评论 0 10
  • Python标识符 在 Python 里,标识符有字母、数字、下划线组成。在 Python 中,所有标识符可以包括...
    tianyi6677阅读 1,090评论 0 3
  • 早安分享 小时候练书法,我特别喜欢写“光明正大”,因为从小就在心里说:做人,光明磊落;做事,光明正大。 从小到大...
    小玉空间阅读 150评论 0 0
  • 我 行为:孩子写作业慢,写着写着睡着了。 姿态:指责 感受:生气、愤怒、无助 观点:1.应该听取别人的建议。2.应...
    雨中梧桐_3f52阅读 226评论 0 0
  • 《街道的美学》 《街道的美学》是一本关于街道、广场空间构成的书。作者卢原义信是日本建筑协会的主席。他对于外部空间的...
    慢慢x聊聊阅读 115评论 0 0