编程初学者完整指南
这篇文章放在程序员网站上可能不太合适,但我想从零开始写点东西。编程到底是什么?编程的基石又是什么?
这篇文章将首先从概念层面讨论计算机是什么,然后讨论编程基础知识。我们将在本文中使用 Python,但其中许多基本模块可以跨编程语言运行,因此即使您最初想学习其他语言,本文仍然会对您有所帮助。
什么是编程?
你可能每天都会和计算机打交道,但让我们具体定义一下,当我们谈论与编程相关的计算机时,我们指的是什么。计算机是一种处理和存储信息的机器。
编程就是告诉计算机如何获取、处理并存储数据。当有人编写程序时,该人实际上是在向计算机提供一组必须遵循的命令。
当我们编写程序时,我们编写的是计算机需要遵循的指令。计算机非常注重文字——它们会接受我们的指令并严格执行,但我们必须以非常详细的方式阐述这些指令,以便它们能够理解我们的意思。
编程的核心是将一个大问题分解成越来越小的问题,直到它们小到我们可以告诉计算机解决该问题。
在哪里可以看到正在使用的程序?
无处不在!从电脑上的操作系统到复杂的网站,一切都是用代码编写的!老款(以及新款!)手机、高端咖啡机、自动驾驶汽车、Facebook、亚马逊、ATM、Lyft App、地铁卡充值机、超市扫描仪,以及大多数电视,除了台式机或笔记本电脑外,都使用代码运行。
什么是编程语言?
计算机默认无法理解自然语言,但它们正在越来越接近实现这一目标!
计算机的运行源于一系列微小的开关,我们编写代码时,实际上是在控制这些开关的开关——就像电灯开关一样!计算机使用一种称为二进制的数字系统来控制这些开关。二进制是由 1 和 0 组成的数字系统,与十进制(使用 0-9)不同。
值得庆幸的是,在我们之前,许多真正聪明的人已经想到了一种无需使用“0”和“1”就能与计算机对话的方法。取而代之的是,我们使用计算机可以解释的编程语言,就像语言解释器可以将西班牙语翻译成英语,甚至将英语翻译成手语一样。这些编程语言看起来更像英语而不是二进制,但它们仍然比自然语言包含更多的符号,表达方式也更少。
编程语言种类繁多,就像世界上有很多种语言一样。有些语言,比如汇编语言或 C 语言,非常底层,与我们的说话方式不太相似。而另一些语言,比如 Python 和 Ruby,则与人类语言非常相似。这些语言用于不同的任务,例如 HTML、CSS 和 JavaScript 用于编写网站,而 C 语言则用于编写操作系统。随着时间的推移,这些语言已经发生了巨大的变化——以前的程序员不得不使用穿孔卡片并将其输入计算机,而不是在计算机上输入代码!性能和易用性之间存在权衡,但当你学习编程时,我强烈推荐一种更接近普通语言的编程语言!
编程的关键基础
有些基本概念会随着编程语言的演变而变化。我们将使用 Python,但几乎所有已知的编程语言都包含这些基本概念,尽管它们的写法可能有所不同(除了 HTML 和 CSS,它们的区别很大)。
简单来说,您可以使用Repl.it在 Web 浏览器中运行 Python 。您可以通过按下按钮并选择“Python”来创建一个 Python 项目
new repl
。然后,在下方的区域中输入内容main.py
。之后,您可以使用绿色按钮运行代码run
。您也可以通过下载Python 并将其安装到计算机上,然后使用文本编辑器(我最喜欢的是VS Code) 。然后,您可以通过命令行运行代码。您需要创建一个带有扩展名的文件
.py
,然后在编辑器中编写代码,最后,通过运行 来运行该文件python your_file_name.py
。
你好世界
学习一门新的编程语言时,编写一个 Hello World 程序是惯例。那就用 Python 写一个吧!
Python 中有一个功能function
,允许我们在运行代码的任何地方写入文本——因此,如果您使用命令行,它将在那里打印出来;如果您使用Repl.it,它将在屏幕的右侧打印出来。
我们稍后会讨论一下有哪些功能!
print("Hello, World!")
所有代码示例也可在 repl.its 中找到,但采用链接形式,而非嵌入形式
变量
变量是编程中非常重要的一部分。变量存储着一些可以反复使用的信息。如果你还记得代数课上学到的变量,那么它们在概念上是相同的!
在 Python 中,为了设置一个变量,我们将写一个变量名(在本例中name
为 和age
),然后使用等号将该变量设置为一个值——在本例中为“Ali”和 24。
如果使用字母,则需要将其放在引号中。如果使用数字,则无需使用引号。
name = "Ali"
age = 24
print(name)
print(age)
现在,我们可以在代码中的任何地方使用name
或!age
记住,编程语言是为人类服务的,而不仅仅是为计算机服务的。如果我们只是在和计算机对话,那么我们只会使用 0 和 1,并编写二进制代码!所以,记住要使用对未来的你——或者将来阅读你代码的其他程序员——有意义的变量名。
变量的经验法则:如果您要反复使用一个值,请为其创建一个变量!
数据类型
编程时我们可以使用不同类型的数据。常见的有整数、浮点数、布尔值和字符串。
整数
整数是数学课上的另一个术语——它们本质上是没有小数的数字。例如 1、0、-100、200 等等。
我们只需输入数字即可在 Python 中使用整数!
5
10
-20
30
我们可以将它们存储在变量中,就像我们上面看到的那样,以便我们可以反复使用它们。
my_favorite_number = 22
我们还可以用它们做数学!四个基本符号分别是*
乘法、+
加法、-
减法和/
除法。
print(22 + 10)
pieces_of_candy = 20 - 5
print(pieces_of_candy)
浮点数
浮点数是带有小数的数字——例如 4.0、4.5、-19.6 等等。除此之外,它们的作用与数字一样!
布尔值
在 Python 中,布尔值是True
“和False
”——它们主要用于表示“是”或“否”——还记得计算机就像一堆开关吗?布尔值也类似!
我们可以将变量设置为布尔值,但通常比较值并以布尔值形式查看结果更有用。一个常见的用途是检查相等性。某个变量是否等于某个值?我们使用双等号来检查相等性,因为我们使用一个等号来设置变量。
age = 22
print(age == 22) # True
我们还可以检查大于或小于——或者所有这些数学检查。我们用>
“大于”、<
“小于”、>=
“大于等于”和<=
“小于等于”来表示!
print(5 > 10) # False
print(10 >= 10) # True
我们还可以将布尔值存储到变量中!
is_greater = 5 > 10
print(is_greater) # False
Python 中标签后面的内容是注释——它们会被计算机忽略,并作为您自己或其他开发人员的注释!
字符串
字符串在 Python 中是文本。我们用引号将它们括起来!
my_string = "This is a string!"
print(my_string)
列表
有时,我们希望在一个变量中存储多个值——比如一组数字、房间里的人的名字、推特上最新的推文,或者我们商店里商品的价格。
我们可以将这些值存储在 Python 中的列表中!
items_in_store = [5, 10, 15, 8]
dev_employees = ["Ali", "Jess", "Ben", "Peter", "Andy", "Mac", "Liana", "Michael", "Anna", "Mario"]
列表的经验法则:如果你有一组类似的东西,就把它们放在一个列表中
条件语句
编程的另一个关键部分是条件语句。条件语句允许我们有时运行一段代码,有时运行另一段代码。
因此,如果某个条件成立True
,则运行一个代码块。如果其他条件成立,则运行另一个代码块。最后,如果所有其他条件都不成立True
,则运行另一个代码块。
在 Python 中,代码块是缩进的,因此“如果这个是 True,则运行其后的缩进代码”
name = "Ali"
if name == "Ali":
print("Hi, Ali!")
现在让我们添加一个条件,当第一个条件为 时,该条件将运行False
。我们将使用else
关键字 !
password = "hello!"
correct_password = "hi"
if password == correct_password:
print("Welcome to the website!")
else:
print("Permission denied")
我们还可以使用以下方法检查多个条件elif
:
age = 50
if age > 100:
print("you are old")
elif age < 20 and age >= 13:
print("You are a teenager")
elif age < 13:
print("You are a child")
else:
print("You are an adult")
输入不同的值age
并查看有什么变化!
你可以用它
and
来同时检查多个条件!或者or
检查一个条件是否为真,或者另一个条件是否为真。
条件的经验法则:如果您希望某些代码有时运行,而其他代码在其他时间运行:请使用条件!
循环
循环允许我们针对不同的值反复运行相同的代码块。最常见的情况是循环遍历列表。
列表主要有两种类型——第一种是for
循环。它们遵循公式For item in list: do something
。列表项可以是任何内容——它是一个变量名,每次循环都会改变。
例如:
dev_employees = ["Ali", "Jess", "Ben", "Peter", "Andy", "Mac", "Liana", "Michael", "Anna", "Mario"]
for employee in dev_employees:
print("Hi" + employee + "!") # We can join multiple strings together with `+` signs!
首先employee
是阿里,然后是杰西,然后是本,等等。
虽然循环也存在,但它们比较少见并且有一些技巧,所以我们现在就跳过它们!
循环的经验法则:如果您希望相同的代码一遍又一遍地运行,请使用循环!
功能
在我开始解释功能之前,先快速分析一下术语:
参数——每次调用(又称调用)函数时传递到函数中。
参数——函数定义中的变量。
在 中def myFunction(x, y)
,x 和 y 是参数。当我们通过 运行该函数时myFunction(1, 3)
,1 和 3 是实参。
当我教授函数时,我尝试用两种方式来解释,以便让两种不同类型的思考者理解。第一种是一段可重用的代码,你可以将值插入其中,从而使代码更加灵活,并减少重复代码。在这种情况下,参数是插入到代码段中的“动态”信息。因此,当你调用函数时,该值可能会发生变化。实际上,每次运行函数时,该值都会发生变化。
我还喜欢把函数解释成一系列的输入和输出——有点像一台小机器。你把一些东西放进机器里,机器就会根据输入输出一些东西。参数是你输入给机器的东西,返回值是输出的结果。这更符合函数的代数定义——如果你还记得f(x) = 2x + 1
学校数学课上讲的,那些函数只是写在纸上,而不是用程序写成的。
在 Python 中,传递给函数的参数顺序与函数声明中形参的顺序相对应。因此,如果我的函数声明如下所示,def add(x, y)
然后我使用 调用该函数add(1, 2)
,则函数中的 1 将是x
, 2 将是y
。如果我改为运行add(100, 50)
,x
将是 100 ,y
将是 50。由于x
是第一个形参,因此我传递给函数的第一个参数将是x
,由于y
是第二个形参,因此我传递的第二个值将是y
。有时,用图表来说明这一点会很有帮助。
关键字之后的任何内容return
都是函数的输出。
def subtract(x, y):
return x - y
print(subtract(5, 2)) # 3, 5 is x, 2 is y
print(subtract(200, 50)) # 150, 200 is x, 50 is y
print(subtract(20, 70)) # -50, 20 is x, 70 is y
five = subtract(10, 5)
print(five)
x | y | 减法(x,y) |
---|---|---|
5 | 2 | 3 |
200 | 50 | 150 |
20 | 70 | -50 |
另一个例子:
def say_hi(person):
print("Hi " + person)
return person
ali = say_hi("Ali")
print(ali)
此函数输出 person
(与输入相同),但它还执行另一个操作——使用 打印出该人的名字hi
。第一个操作不会影响输出——或者说return
函数的输出。如果打印出来,ali
结果就是“Ali”!
函数的经验法则:如果您想重用一段代码(可能包含不同的数据),请使用函数!
学习编程的后续步骤
这些是编程中一些非常重要的基本概念,但还有很多!其中两个重要的概念是调试和问题解决。
当你编写代码时,计算机非常智能,它会完全按照你的指令执行。但是,如果你输入了拼写错误或任何错误的代码,你的代码就会抛出错误!学会处理这些错误,并喜欢它们告诉你发生了什么,而不是害怕它们!它们真的很有用!
当我们尝试将各个部分拼凑在一起,编写不同的程序时,问题就迎刃而解了。我现在正在写一个关于这个问题的系列!
此外,如果您想要更多免费资源来学习编程,这里有一些很棒的资源!
文章来源:https://dev.to/aspittel/a-complete-beginner-s-guide-to-programming-2ni4