(1)Python是什么?
Python的标志。Python的徽标是Python软件基金会的商标。
Python是以英国喜剧团体Monty Python的名字命名的,是一种解释性的、交互式的、面向对象的编程语言。它的灵活性让它可以做很多事情,无论大小。Python可以用来编写简单的程序,但它也拥有创建复杂的大型企业解决方案所需的全部能力。Python的一些使用方式包括:
桌面图形应用程序开发,包括游戏;
数据的数学和科学分析;而且,
网络和互联网的发展。
Python在计算机编程领域的存在随处可见。例如,Python在一些世界上最大的互联网站点中被使用,比如Reddit、Dropbox和Youtube。流行的Python web框架Django支持Instagram和Pinterest。卢卡斯电影公司的获奖视觉特效公司,工业光与魔术,使用Python帮助使他们的魔术成真。
人们很容易忘记Python有多么强大,因为它很容易学习。
Python的属性
Python是……
强类型。例如,它强制数据类型,这样您就不能将字符串和整数连接起来。
动态,隐式类型。因此,您不必显式声明变量数据类型。数据类型是在运行时强制执行的。
大小写敏感的。例如,令牌和令牌是两个不同的变量。
面向对象的。一切都是对象。
(2) Python -预科
Python是免费的开源软件,可以在Linux、Mac、Windows和其他各种平台上运行(总共21个)。它预装在Mac和大多数Linux发行版上;但是,您可能需要下载最新的版本(见下文)。
要检查您的版本,请打开终端并运行以下命令:
SHELL
python -V
选择Python版本
对于新手和经验丰富的程序员来说,在Python 2或3之间做出决定可能会令人困惑。幸运的是,两者之间的语法差异很小,你可以在你的计算机上运行这两个版本。
目前,Python有两个主要版本 - 2.x和3.x.
在获得新特性和功能方面,只有3.5.x版正在积极开发中,而Python 2.7.x以及3.2.x到3.4.x仍在积极维护。
哪个版本适合您?嗯,这取决于你。老实说,在这个早期阶段,两者之间几乎没有什么区别,所以要么选择就足够了。另外,一旦你学会了一个,学习另一个并不困难。
一般来说,如果你刚刚开始学习Python,请使用3.4.x,因为它是一个更好的版本,因为它增加了一些功能以及大量的bug修复和改进。但是,2.7x对第三方库的支持更多。如果您知道您需要使用尚未移植到3.4.x版本的库,那么最好从2.7x开始。
本系列中的示例将在3.4.2版本中显示,该版本是撰写时的当前版本。也就是说,大多数示例都适用于任何一个版本,因为添加到3.4.x的许多功能和更新也添加到2.7.x.我们将讨论您出现时应该注意的任何差异。
(3)如何获得Python?
无论您的操作系统是什么,您都可以从Python软件基金会(Python Software Foundation, PSF)下载Python。获取特定于您的操作系统和处理器的版本(32位或64位)。
使用说明:
Mac:我强烈建议使用自制程序来安装和管理不同版本的Python。看看这里的说明。您还可以从PSF下载Python。
Linux:同样,Python也包含在各种Linux版本中。如果需要,请确保使用包管理器升级到最新版本。
Windows:直接从PSF下载Python。
Windows用户:确保在安装过程中选择将Python添加到系统路径的选项:
(从下拉列表中选择“将安装在本地硬盘上”选项。)
(From the drop-down select the option, “Will be installed on local hard drive”.)
(4)确认Python安装
让我们快速进行健全性检查,以确保正确安装Python。
Python Shell
打开Python Interactive Shell:
Mac:打开终端并运行:python或python3,具体取决于您的安装。
Linux:打开终端并运行:python
Windows:如果只安装了一个版本的Python,只需运行python。 如果您同时安装了Python 2.7和Python 3,请运行python for Python 2.7和/或py -3 for Python 3。
Windows用户:确保您的帐户具有管理权限:右键单击命令提示符图标,然后选择“以管理员身份运行”,在提升级别运行命令提示符。
交互式Python Shell应该打开,您的命令提示符或终端窗口应该类似于:
python
Python 3.4.1 (v3.4.1:c0e311e010fc, May 18 2014, 00:54:21)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
当你在这里的时候,你不妨运行你的第一行代码……
Python 2:
>>> print "Python is fun!"
Python 3:
>>> print("Python is fun!")
如果你运行的是python2版。在Python 3.x中,print命令是一个语句而不是函数。
您应该看到:
Python is fun!
就是这样:你刚刚编写了你的第一个Python程序!每次输入一行,Python就立即执行语句,在引号之间显示值。
完成之后,可以使用exit()离开Python Shell。或者:
Mac和Linux用户:Ctrl+D,然后按回车键
Windows用户:Ctrl+D,然后按回车键
保持终端或命令提示符打开。我们还有很多事情要做!让我们在运行Python原语时继续使用Shell。
(5)语言原语
在本节中,我们将研究Python编码原语——变量、内置数据类型、注释、语法和语义。
变量
变量是数据的容器。声明它们的语法是:variable_name = variable_value。虽然您可以为变量命名任何东西(除了一些保留的关键字),但是您应该使用直观的命名方案。变量名应该提供一些指示,说明赋给它的值是什么。
例如,许多新编程人员使用简单的变量名,如x和y。相反,如果你有两个数字——比如1和52——使用变量名num1和num2,而不是x和y。这样,当其他人阅读你的程序时,他们可以有根据地猜测num1和num2可能是某种数字。当你写程序的时候,想想别人,还有你未来的自己。你未来的自己会感谢你的。
内置的数据类型
Python有许多内置的数据类型,比如数字(整数、浮点数、复数)、字符串、列表、元组和字典。
每一个都可以使用:
运营商
功能
数据类型的方法
一定要把每个例子都和我一起打出来。
数字
数字可以是整数、浮点数、布尔值或复数。前三种是最重要的:
整数是整数- 1 2 22 476 -99999
浮点数有小数点- 1.0、2.22、22.098、476.1、-99999.9
布尔值表示真或假(或1或0),它们表示的数据只能是一种或另一种。
操纵数字
运营商
你见过运营商。它们就像加法(或连接)和减法,就像你在小学学到的。
python
>>> 2 + 3 # Addition
5
>>> num1 = 10
>>> num2 = 9.99
>>> num3 = num1 + num2
>>> num3
19.990000000000002
>>> 8 - 5 # Subtraction
3
>>> 2 * 6 # Multiplication
12
>>> 12 / 3 # Division
4.0
>>> 7 % 3 # Modulus (returns the remainder from division)
1
>>> 3 ** 2 # Raise to the power
9
让我们来测试一下您的预代数技能,看看比较,它计算布尔值——例如,真或假(或1或0)。
>>> 2
True
>>> 4 > 10
False
>>> 3 >= 3
True
>>> 5 == 6
False
>>> 6 != 9
True
功能
Python为您提供了许多用于操作整数的内置函数。这些对你来说总是可行的。请注意:这些函数可以用于任何数据类型。Python标准库中也有一些模块可用,比如math。要使用与这些模块相关的函数,首先必须导入模块。不仅仅是这样。现在,让我们来看几个内置函数的例子。
浮点()——给定一个整数,这个函数返回一个浮点数。
python
>>> float(9)
9.0
>>> float(-99999)
-99999.0
int()——给定一个浮点数,这个函数返回一个整数。这个函数不会将输入(上限)四舍五入到最接近的整数——它只会在小数点(地板)后抛出任何东西并返回数字。10。6的输入返回10,而不是11。同样,3.25返回3。
python
>>> int(10.6)
10
>>> int(3.25)
3
数据类型的方法
除了函数之外,还有许多数据类型方法与每种类型的数字相关联。
is_integer() -测试一个浮点数是否有限。
python
>>> (10.0).is_integer()
True
>>> (10.1).is_integer()
False
字符串
字符串是用单引号或双引号声明的文本行:
>>> simple_string = "hey!"
>>> simple_string
'hey!'
>>> "hello world!"
'hello world!'
>>> escaped = 'can\'t'
>>> escaped
"can't"
>>> not_escaped = "can't"
>>> not_escaped
"can't"
操作字符串
运营商
像数字一样,你可以连接字符串(字符串连接):
>>> "happy" + " " + "birthday"
'happy birthday'
>>> "my name is " + "john"
'my name is john'
功能
让我们来看看几个适合用于字符串操作的函数:
len()——给定一个字符串,这个函数返回它的长度。
>>> len(name_string)
15
slice()——给定一个开始和结束值,就可以访问一组或单个字符。
>>> print("Hello"[2])
l
>>> print("Hello"[3])
l
>>> print("Hello"[0])
H
>>> print("Hello"[0:2])
He
数据类型的方法
虽然我们将只讨论一些数据类型方法,但请务必检查完整的Python文档,因为您应该了解许多重要的函数。
string. capital() -返回首字母大写的字符串。
>>> lower_case_string = "michael"
>>> lower_case_string.capitalize()
'Michael'
>>> ("empire").capitalize()
'Empire'
format()——可以很容易地将值格式化为字符串。
>>> name = "John Doe"
>>> greeting = "My name is {}".format(name)
>>> greeting
'My name is John Doe'
string.strip() -返回去掉前、后空白的字符串。
>>> are_you_happy = " Yes "
>>> are_you_happy.strip()
'Yes'
列表
列表(在几乎所有其他编程语言中都称为数组)将各种类型的数据组合在一起。
create_a_list =[]
numbers_list = [1,2,3]
strings_list = ["spam", "eggs", "cheese"]
mixed_list = ["Hello", [1,2,3], False]
如上所示,列表可能包含任何数据类型(您也可以混合和匹配),包括其他列表或什么都不包含。您可以访问列表的某些部分,就像带索引的字符串一样。语法是一样的:
列表
列表(在几乎所有其他编程语言中都称为数组)将各种类型的数据组合在一起。
create_a_list =[]
numbers_list = [1,2,3]
strings_list = ["spam", "eggs", "cheese"]
mixed_list = ["Hello", [1,2,3], False]
如上所示,列表可能包含任何数据类型(您也可以混合和匹配),包括其他列表或什么都不包含。您可以访问列表的某些部分,就像带索引的字符串一样。语法是一样的:
您可以从列表的开头或结尾访问元素:
> > > numbers_list[0]
1
> > > numbers_list(0:1)
[1]
> > > numbers_list[0:2]
[1,2]
看看你是如何通过访问元素来创建一个新列表的:
>>> numbers_list = [1, 2, 3, 200]
>>> new_list = numbers_list[0:3]
>>> new_list
[1, 2, 3]
倒数最后一项的负索引:
>>> strings_list = ["batman", "superman", "iron man"]
>>> strings_list[-1]
'iron man'
如果将一个列表嵌套在另一个列表中,可以使用多个索引访问内部列表:
>>> mixed_list = ["Hello World", [4, 5, 6], False]
>>> mixed_list[1][2]
6
操作列表
运营商
列表可以连接:
>>> fruits = ["apples", "grapes", "oranges"]
>>> veggies = ["corn", "kale", "mushrooms"]
>>> grocery_list = fruits + veggies
>>> grocery_list
['apples', 'grapes', 'oranges', 'corn', 'kale', 'mushrooms']
功能
通常,您可以将列表看作字符串—只有每一块数据是一个元素。这在实践中意味着什么?你在字符串上使用的函数也可以用于列表。
len()——给定一个列表,这个函数返回它的长度。
>>> numbers_list = [1,2,3,200]
> > > len(numbers_list)
4
slice()——给定一个开始和停止值,就可以访问一组元素。
>>> hello = ["H", "e", "l", "l", "o"]
>>> hello[2]
'l'
>>> hello[3]
'l'
>>> hello[0]
'H'
>>> hello[0:2]
['H', 'e']
数据类型的方法
再次检查Python文档以查看所有可用的列表方法。
list.append()——用于将项添加到列表的末尾
>>> fruits = ["apples", "grapes", "oranges"]
>>> fruits.append("blueberries")
>>> fruits
['apples', 'grapes', 'oranges', 'blueberries']
list.sort() -对这个列表进行排序
>>> fruits.sort()
>>> fruits
['apples', 'blueberries', 'grapes', 'oranges']
pop()——给定一个索引值,从列表中删除一个元素
>>> numbers_list = [1, 2, 3, 200]
>>> numbers_list.pop(2)
3
>>> numbers_list
[1, 2, 200]
元组
元组类似于列表,但它们是不可变的——这意味着它们在创建之后不能更改。
my_tuple = ("Michael", "Herman", 31, "Software Developer")
就像一个列表,你也可以使用索引来访问不同的元素:
>>> my_tuple = ("Michael", "Herman", 31, "Software Developer")
>>> my_tuple[1]
'Herman'
元组通常用于字典键,因为它们应该(呃,必须)是不可变的。
操纵元组
运营商
是的,您可以添加两个元组:
>>> first_tuple = (1, 2)
>>> second_tuple = (3, 4)
>>> third_tuple = first_tuple + second_tuple
>>> third_tuple
(1, 2, 3, 4)
功能
list()——用于将元组转换为列表
>>> first_tuple = (1, 2)
>>> list(first_tuple)
[1, 2]
如何将列表转换为元组?有函数吗?你会去哪里找?
数据类型的方法
由于元组是不可变的,许多列表方法在元组上不起作用。
>>> first_tuple = (1, 2)
>>> first_tuple.append(3)
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'tuple' object has no attribute 'append'
>>> first_tuple.pop(1)
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'tuple' object has no attribute 'pop'
>>> first_tuple.sort()
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'tuple' object has no attribute 'sort'
>>> first_tuple.reverse()
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'tuple' object has no attribute 'reverse'
字典
字典是一种使用包含键/值对的哈希表实现的关联数组(对象)。他们是无序的。
my_dict = {"Key 1": "Value 1", "name": "michael herman", "pi": 3.14}
可以使用以下语法返回键值:
>>> my_dict = {"Key 1": "Value 1", "name": "michael herman", "pi": 3.14}
>>> my_dict["name"]
'michael herman'
>>> my_dict["Key 1"]
'Value 1'
操纵字典
使用Python文档自己研究一下。需要帮忙吗?下面的评论。
演讲的评论……
评论
注释用于描述您的代码,以便其他开发人员能够快速了解发生了什么(以及您未来的自我)。
# This a comment on it's own line
# You create them with the hash symbol
var = "Hello" # They can also be on the same line as code
需要帮忙吗?
像一个好朋友一样,如果遇到问题,Python总是可用的。也许您想知道特定的对象是如何工作的,只需打开Python shell,然后调用help()来获得帮助或dir(),以查看该特定对象有哪些方法可用。
(6)编码在Python中
用Python编写代码有三种基本方法。我们已经使用了其中之一——交互式Python Shell。
Shell(终极版)
这是三者中最弱的一个。虽然您可以在Shell中创建函数,但是它通常是为简单的一行语句保留的,以获得对代码的快速反馈。
例如,让我们来看一个简单的表达式。打开外壳,运行:
>>> 24 + 10
34
Python Shell仅仅计算了24 + 10,添加了两个数字,并输出了总和34。
试着多一个:
>>> import this
花一分钟阅读输出。这些是Python中的一些重要概念,将帮助您编写惯用的Python代码。
关闭Python交互式Shell。一旦关闭,我们的代码就消失了。换句话说,输入到Python Shell中的代码不是持久的,并且不能重用。作为编码人员,我们需要能够重用的代码来保存宝贵的击键。不幸的是,Python Shell在这方面失败了。
闲置
Python附带了一个名为IDLE的程序(以Monty Python的Eric IDLE命名)。IDLE是交互式的,可以像Python Shell一样使用。它还可以用于代码重用,因为我们可以创建和保存Python代码。也就是说,IDLE仍然没有最后一个方法强大,所以我们暂时跳过它。
如果你对使用IDLE感兴趣,请查看一天IDLE的指导。
代码编辑器
最好的方法是使用一个实际的编码编辑器。有些人喜欢集成开发环境(IDE),但是更简单的代码编辑器更适合学习。
为什么?当你学习新东西的时候,你想要尽可能多地剥离复杂的层次。简化事情。通过在混合中添加一个复杂的IDE(您将不得不学习如何操作),您只是添加了越来越多的层,使得学习Python的任务变得更加困难。
(7)选择一个编码编辑器
Python程序,在其基本形式中,就是用.py文件扩展名保存在文件中的几行文本(代码)。Python代码可以用像记事本这样基本的东西来编写——但是没有理由让自己经历这样的磨难,因为有更好的选择。在其核心部分,代码编辑器应该提供许多特性来帮助程序员创建程序(在我们的示例中是Python脚本和模块)。在大多数情况下,代码编辑器允许用户自定义程序本身,以适应您的需求和风格。
在代码编辑器中应该寻找什么?
易用性
语法高亮显示
Auto-indentation
选项卡视图
行编号
自定义编辑器外观的能力
获得附加组件
看看下面的例子:
因此,不仅代码更容易在顶部的编辑器(Sublime Text)中阅读(由于语法高亮显示和行号),而且它还识别了三个简单的错误,其中一个是显示障碍。(你能猜出是哪一个吗?)与此同时,底部的编辑器(记事本)没有显示错误,而且由于它是黑色的,而且是黑色的,所以在眼睛上很难看到。
我应该使用哪个编辑器?
最流行的代码编辑器之一是Sublime Text 3(如上所示)。它功能强大,跨平台,并且可以免费试用。
如果您继续使用该项目,请确保通过购买许可证来支持该项目。
如果您想要更简单的东西,请查看gedit,它也是跨平台的。Notepad++也是一个很棒的编辑器,但它只适用于Windows。这两种编辑器都是免费的,尽管它们都不具有崇高文本的力量,但它们仍然是有用的。
第三种选择是Vim,它是免费的,可用于Mac、Linux和Windows。Vim有一个陡峭的学习曲线,但它有一个忠实的用户基础。Steve Francia的Vim发行版是我所见过的Vim最好的编程设置。
我个人更喜欢Sublime Text 3。查看为完整堆栈Python开发设置Sublime Text 3的博客文章,了解如何为编写Python代码专门定制它。
记住:当涉及到代码编辑器时,有很多不同的选择,包括免费的和商业的。做你的研究,不要害怕实验!只要记住:编辑器应该帮助您遵守Python编码标准、实践和习惯用法……
(8) Python习语=快乐编码
Python代码的PEP 8风格指南是Python代码编程的风格指南。研究这个。
许多新的Python开发人员都会遇到的一个习惯用法是缩进。Python使用缩进(4个空格)逻辑地将代码组织成称为[代码块](http://en.wikipedia.org/wiki/Block_(编程)的部分。代码块以缩进开始,以缩进结束(非缩进?)不正确的缩进会在Python中产生错误,阻止代码执行。这正是使用适当的设置代码编辑器的好处,因为它将捕获缩进错误并为您突出显示它们。在缩进时也应该使用空格而不是制表符。大多数编辑器将允许您将制表符转换为空格,这样当您制表时,它实际上应用了4个空格。
让我们从上面的图片中重新查看错误……
第2行——
第4行——这里有两个错误,包括显示停止符。如上所述,Python使用缩进来定义代码块。count = count + 1,是从第2行开始的代码块的一部分,因此它必须缩进4个空格,以便Python将其包含在代码块中。
(9)数到10
准备好开始一个基本的例子了吗?
如果您是一个全新的编程新手,您可能不完全理解代码,但重要的是概念。Python被设计成非常容易阅读,这个例子演示了这个原则。我们将修复上面的坏代码,并添加一个代码块来强调代码块和缩进的概念。
许多程序员在开始处理问题时都会不知所措。一个有效的方法来帮助解决问题,无论大小,是逻辑地把问题分成几个部分。
例如,让我们编写一个从1到10的基本程序。每次count增量时,我们都希望显示一个新数字,为了帮助理解代码块的概念,我们将展示达到10之后会发生什么。帮助开发工作流的一种方法是使用伪代码。
让我们制定一个计划(伪代码!)
我喜欢在我的电脑上整理东西,所以首先创建一个文件夹,把它放在你的“文档”文件夹或类似的地方。我创建了一个名为python_code的文件夹。学习代码很容易,所以打开您的代码编辑器,输入以下代码。无论多么诱人,都不要复制粘贴。这样做会妨碍学习。
Python 2.7:
# Python 2.7
count = 1
# Code block 1
while count
print count
count = count + 1
# Code block 2
if count == 11:
print 'Counting complete.'
Python 3:
# Python 3
count = 1
# Code block 1
while count
print(count)
count = count + 1
# Code block 2
if count == 11:
print('Counting complete.')
注意,每个示例的第一行都有#(哈希字符),后面是空格,然后是解释。这是内联注释。这样的注释有许多用途,但在大多数情况下,它们用于解释代码或总结开发人员采用的特定方法。你觉得上面例子中的评论有意义吗?如果不是,改变他们。
最后,您很快就会发现,在执行代码时,Python会忽略注释。
您是否注意到示例同时使用了单=和双==?这可以让人困惑。
表达式count = 1, =将1的值赋给名为count的变量。
在条件if count == 11:中,==比较count与11的值,返回一个布尔值True或False。您能说出在每次迭代之后,上面示例中的语句的计算结果是什么吗?
将文件保存为count_to_ten。py在您创建的文件夹中,然后退出编辑器。打开终端或命令提示符并导航到创建的文件夹。
现在运行代码:python count_ten.py
根据您的设置,可能需要用python3或py -3替换python。有关更多信息,请参阅步骤4。
输出应该是这样的:
恭喜!你刚刚写了你的第一个程序。
(10)错误和异常
错误是在每个层次上都让程序员感到恼火和沮丧的东西。
在Python中,有两种基于代码的错误:语法错误和异常。
语法错误
我们已经看到这个错误——不正确的缩进。语法错误将阻止程序的执行。在本例中,if语句缺少一个冒号来结束语句。正如您所看到的,Python非常有助于指出错误:
>>> if x
File "", line 1
if x
^
SyntaxError: invalid syntax
异常
程序执行时发生异常错误。Python有许多内置的异常。例如:
>>> 12/0
Traceback (most recent call last):
File "", line 1, in
ZeroDivisionError: integer division or modulo by zero
语义错误
语义错误是由于逻辑中的一个或多个问题而发生的错误。
这些错误可能更复杂,因为不会生成错误。代码运行,但会生成意外和/或不正确的输出,或没有输出。一个典型的例子是一个无限循环,大多数新程序员至少会经历一次。
(11) Python的Power - package / module
Python的一大优点是大量可用的模块,它们都内置在Python核心和第三方包/库中,用于扩展语言。这些模块非常有用。一些更常用的内置Python模块包括:
数学:C标准库中的数学函数(你已经见过这个了)
随机:一个伪随机数生成器
datetime:用于操作日期和时间
用于处理正则表达式
例如,这里我们导入数学来使用pi, sqrt(平方根)和pow(幂次):
警告:不要将Python文件命名为类似于模块的数学。py或random.py。这会导致冲突,导致代码中出现意外行为。因此,如果您正在使用math模块,请不要将您的文件math.py命名为name。有意义吗?
皮普
管理Python的第三方包/模块的最佳方法是使用pip。新的编码人员在执行一些示例代码时经常遇到瓶颈,当他们试图运行代码时,会看到以下错误:ImportError:没有名为MODULE_XXXX的模块。
这些模块需要使用Pip手动安装。在python3中,pip(称为pip3)被包括在内。如果您使用自制程序安装Python, pip也包括在内。从Python 2.7.9开始,也包括pip。如果您在2.7.9之前使用的是Python版本,请按照以下说明安装pip:
下载get-pip。py,确认文件是用.py扩展名保存的。
导航到终端或命令提示符中下载文件的位置。
运行:python get-pip.py
有关更多信息,请阅读官方pip文档。
(12)的下一个步骤
有许多在线教程、书籍和视频可以免费获得。
我的第一站是最受欢迎的免费选择之一,《艰难学习Python》。泽德·肖的教程以循序渐进和逻辑的练习形式展开。我发现它对学习语法很有用,但我需要更多。
学习如何编写代码的最好方法之一是构建项目驱动的学习方法。我就是这样遇到真正的Python的。有三种真正的Python,它们的成本不高,经常更新(通常是双月更新)以跟上变化(免费)。
另一个真正帮助我的地方是MIT的计算机科学和编程入门课程,它涵盖了各种计算机科学概念以及Python。这个课程可以在两个地方找到。
哈佛大学和麻省理工学院的非盈利在线项目(Edx.org)分两部分提供这门课程。它们具有挑战性,并为解决问题提供了极好的方法。两个部分是分级。
另一个途径是从麻省理工学院开放课件,计算机科学导论和编程MIT 6.00x。这门课没有评分,但它有一个非常活跃的在线社区,非常有用。
当然还有其他的在线课程。同样,这是个人的选择,你自己的研究也是如此。
免费学习材料的另一个来源来自PSF:
Python 2.7
Python 3.4
最重要的是,不要沉迷于寻找“最好的”书籍或视频搜索而迷失方向。做一些研究。问问周围的人。但是选择一些东西并坚持下去!打开您的代码编辑器并开始编码!对自己承诺去完成它。
领取专属 10元无门槛券
私享最新 技术干货