本文转载自公众号“读芯术”(ID:AI_Discovery)
我们如今的生活离不开手机、电脑和其他一些智能设备了,但你知道它们离不开什么吗?如果没有程序的存在,这些将什么都不是。
计算机编程是一种教计算机执行任务的神奇艺术,这是现代社会最值得学习的技能之一。编程的概念半个世纪前才出现,但它所带来的发展是非常迅速的。这一神奇的工具彻底改变了世界的方方面面。
本文中,笔者将带领你使用本人最喜爱的Python语言来学习编程的概念。
一、先回答这个问题
为什么想学编程语言? 在进一步阅读之前,请仔细思考,并把原因写在纸上。有一天我也问了我的学生同样的问题。他们给了我这些回答:
- “我想在著名的软件公司找一份好工作,所以我需要学习一门编程语言。”
- “学习一门编程语言能让我学习一些先进的技术,如人工智能和机器学习。”
大多数答案都与上述相似,学习一门编程语言的主要原因是为了找一份工作或者将其运用到先进技术中去。这个世界一直用错误的方式教育你,学什么就会获得什么。你所阅读、观看的任何有关编程语言的教程都会从现实生活中的语言开始。
如果现实世界中已有解决方案,那么学习它又有什么用呢?
现在你要记住一件事——不应为了任何目的而学习编程。实际上,谁都无法教你编程。因为“编程不是一门学科,而是人类大脑的基本能力。”
所以,在继续阅读之前,忘记所有学习这门语言的理由,全心全意地投入。我不确定你最终是否会成为一名软件开发人员。但是,我相信你会认识到编程是一门自然的语言。
二、Python编程语言
世界上有700多种编程语言可供选择,人们只注意到了其中一部分。我从2015年开始学习编程,一开始接触的是C语言,我现在也对C语言心怀敬畏。
但是,在2019年学习Python时,我第一眼就喜欢上了它,现在依旧如此。我也不知道为什么,可能是因为它的语法简洁,也可能是其代码可读性很高。总之某些东西吸引着我让我保持着对它的热情。我保证你也一定会喜欢这门语言,喜欢它应对问题的机制。
Python的创造者Guido van Rossum说:编写Python代码的乐趣在于精炼且可读性高的类,仅通过少量清晰的代码就能代表达大量的执行操作,而不是琐碎的代码泛滥成灾。
想要挑选一种语言开启编程生涯,你可以考虑python,因为它的代码非常简洁可读。我们会用语言给别人传达一些信息,而编程也正是一种与计算机交流的语言。如果你需要与人类语言近乎相同的编程语言,那么python适合你。
当你和你的朋友说话时,你不需要在结尾加一个分号,也不需要提及你所谈论的数据类型,这就是人类语言。即使作为一种编程语言,Python也有同样的特性。
看完下面的内容,你就相当于已经入门Python了,开始吧!
三、如何在Python中打印信息
一个程序应该能够在编译后传递一些内容。通常,程序就是赋予计算机的一组指令。收到指令后,计算机理解指令,然后通过输出(Output)值给我们回应。而输出值将打印在控制台(console)的窗口上,你可以使用解释器或IDE进行编程。
为了便于理解,前五部分会通过想象的概念来解释。想象你一个人坐在公园里。我来解释下这第一个场景,当你坐在公园的长椅上时,你看到一个老朋友坐在旁边,现在你正跟那个人说:“嗨,我是Felix,还记得我吗?”。第一个镜头在这里结束。
图源:unsplash
在上述场景中,你所说的话就相当于输出内容。我们可以尝试在python的帮助下打印相同的内容。在python中,如果希望在控制台中打印语句,就必须使用print()命令。
这是要打印的代码也就是你问那个人的话:
- print (“Hi. I am Felix. Do youremember me?”)
现在可以将其视为Python的一条指令。它将在控制台中打印以下输出。
- Hi. I am Felix. Do you rememberme?
通过以下四种不同的方式均可得到同一输出:
- print (“Hi. I am Felix. Do youremember me?”)
- or
- print ('Hi. I am Felix. Do you remember me?')
- or
- print ('''Hi. I am Felix. Do you remember me?''')
- or
- print ("""Hi. I am Felix. Do you remember me?""")
四、获取用户输入
现在回到公园来。不幸的是,你的老朋友听不懂你说的话。所以他说:“对不起,你叫什么名字?”。现在,看看这种情况下的两个表述。第一个只是声明。但是,第二个是向你询问以获得信息。可以在控制台中使用input()命令打此语句。print()和input()之间的区别在于,输入需要在语句执行后键入某些内容。对话如下:
- print (“Hi. I am Felix. Do youremember me?”)
- input (“Sorry. What is your Name?”)
输出……
- Hi. I am Felix. Do you rememberme?
- Sorry. What is your Name?
在这个输出的最后,你可以在控制台中输入你的名字。
五、使用变量名称的概念
告诉他你的名字后,他几秒钟就认出了你。然后他说:“嗨!菲利克斯,最近过得好吗?”。
现在请清楚地理解这句话。在这个表述中,他正确地使用了你的名字。这是怎么做到的?因为,在得到你的名字后,他的大脑把你的名字和某些标签,比如你的名字菲利克斯,一起储存起来。有了这样的记忆,他可以在任何地方使用你的名字。
如上所述,编程是一种自然语言,它只是人类本能的另一种表现形式。电脑也有一个存储大量信息的存储器。现在,(每当使用输入语句时)你对控制台说出你的名字,控制台中给定的输入就会将其存储在内存位置中。之后,名字必须从内存中检索。
为此,我们通过赋值为输入提供唯一的名称。用于引用输入的名字称为变量。简单来说,内存位置的名字就是Variable。
- print (“Hi. I am Felix. Do youremember me?”)
- name = input (“Sorry. What is your Name?”)
查看修改后的代码,其执行与前面的代码相同。但是,当你在控制台中键入你的名字时,名字将存储在name的变量位置中。如果语句存储在变量名中,则不需要双引号。
- print (“Hi. I am Felix. Do youremember me?”)
- name = input (“Sorry. What is your Name?”)
- print(“Hey!”,name,“,How are You?”)
输入:
- Hi. I am Felix. Do you rememberme?
- Sorry. What is your Name? Felix
- Hey! Felix,How are You?
现在当你在第二行输入你的名字时,你的名字就会被存储在变量名' name'中。如此它可以通过print语句传递。
在python中,创建变量名时需要遵循一组规则:
- 变量名可以有字母(A - z),数字(0 - 9)和下划线(_)。
- 变量名不应该以任何数字开始。
- 变量名不能有特殊字符。
- 在Python中,变量名不能是一个关键字。
六、Python中的数据类型介绍
问你三个问题:你叫什么名字?你多大了?你对学习Python感兴趣吗?每个答案都是不同的。第一个是基于文本的数据类型,第二个是数字数据,第三个是分类数据。
数据类型的基本分类是文本、数字和是或否类型。对数据进行分类的原因是每种类型的表现方式不同。从你的年龄我可以计算出你两年后的年龄,但我不能对基于文本的数据执行相同的操作。
在编程中,基于文本的数据称为字符串(string)。数值数据可分为两类:一个是int,另一个是float。int是一个整数,而float类型用于小数点后的数字。第三种类型称为boolean数据类型,它只包含两个值“True”和“False”。
我们已经了解了如何从用户获取字符串,以及如何将其打印到控制台。获取一个数值也是这样,但是输入值总是以字符串的形式出现。
图源:unsplash
让我们继续公园的场景。过了一会儿,那个公园的老朋友问到你的年龄。年龄是一个数字数据,要询问数字数据,输入命令应该通过int()传递。这时本性又会出来作祟。如果有人问到你的年龄,你会说25或30岁。
答案与其他问题的答案相同。但在听到这个答案后,你的大脑会识别出它是一个数字数据。这就是我们大脑的运作方式,int()在编程中也是做同样的事情。
- age = int(input(what is yourage?))
- print("Your age is",age)
输出……
- what is your age? 26
- Your age is 26
在float()的帮助下,对float值尝试相同的操作。
1. type()关键字
type()用于查找变量的数据类型,如以下代码:
- name = "Felix"
- age = 23
- print(type(name))
- print(type(age))
输出
- 'str'
- 'int'
2. 使用注释进行练习
注释是一些不被认为是计算机指令的语句。这些注释可用于编写开发人员信息、代码用法或任何与实际代码无关的内容。
注释有两种类型:单行注释和多行注释。使用#创建单行注释;使用'''Your Command Here '''创建多行注释。
- #Single Line command
- '''This is
- a multi line
- command'''
七、运算符及其功能
在编程中,仅仅存储和检索数据是不够的。让我们看一个例子,你要去商店买一些巧克力,现在一块巧克力的价格是4.99美元,你总共需要10块巧克力,收完巧克力后,你得付帐。现在,你该怎么计算金额。
在这种情况下,我们可以将巧克力的价格存储在一个float变量中。但是我们必须把成本乘以巧克力总数来得出总价格。这是一个简单的初等数学。
但是计算机是如何做到这一点的呢?这时需要运算符的介入。数学中有很多像乘法这样的运算。为了在编程中执行计算,我们使用了一些被称为运算符的符号,它通常操作两个不同的操作数。
- PRICE = 4.99
- COUNT = 10
- TOTAL = PRICE * COUNT
操作符是*。python中操作符的主要包括算术运算符、赋值操作符、比较运算符、逻辑运算符和位运算符。
1. 算术运算符
算术运算符用于基本的数学运算,如加减乘除。设a=30, b=4。
使用上述计算的Python程序。
- a = 30
- b = 4
- print(a + b)
- print(a - b)
- print(a * b)
- print(a / b)
- floor = a // b
- print(floor)
- mod = a % b
- power = a ** b
- print(mod)
- print(power)
输出:
- 34
- 26
- 120
- 7.5
- 7
- 2
- 810000
2. 赋值操作符
赋值运算符用于为变量赋值。主要的赋值操作符是=。
在price = 50中,将值50赋给price变量。
- a = 50
- b = 40
- a = 60
- print(a)
- print(b)
输出:
- 60
- 40
变量将始终获得最后的赋值。在上面的程序中,变量“a”的最后一次赋值是60。
除了操作符=之外,还有一些赋值操作符,即简写操作符。这些操作符用于将某个特定变量上操作返回的值存储到变量本身。
+=就是一个简短操作符。如果我们在编程中使用它,语法将是a+=b。这个表达式的现行语法是a = a + b。在对' a '和' b '赋值后,结果存储在' a '本身。
- a = 40
- b = 60
- a += b
- print(a)
输出:
- 100
可以使用其他短操作符(如-=、*=、/=、**= //=、%=)来执行这种类型的程序。几乎所有的算术运算符都支持短操作。
3. 比较运算符
比较运算符用于比较两个变量。所有的比较运算符都会返回“True”或“False”。句法:Operand1操作符Operand2
(1) == 为等式运算符。如果两个值相等,则返回True,否则返回False。
- a = 10
- b = 10
- c = 20
- print(a==b)
- print(a==c)
输出:
- True
- False
(2) !=不等式运算符。它的作用与等式运算符相反,只有当两个值都不同时,才会返回True。
- a = 10
- b = 10
- c = 20
- print(a!=b)
- print(a!=c)
输出:
- False
- True
(3) >为大于运算符。如果operand1大于operand2,则返回True,否则返回0。
- a = 10
- b = 10
- c = 20
- print(a > b)
- print(c > a)
- print(a > c)
输出:
- False
- True
- False
(4) < 为小于运算符。如果operand1小于operand2,则返回True,否则返回0。
- a = 10
- b = 10
- c = 20
- print(a < b)
- print(c < a)
- print(a < c)
输出:
- False
- False
- True
(5) >=和<=分别为大于等于和小于等于运算符。这些操作符结合了对>与=的运算。如果值1大于或等于第二个值,则第一个返回True。
- a = 10
- b = 10
- c = 20
- print(a >= b)
- print(c >= a)
- print(a >= c)
输出:
- True
- True
- False
再如
- a = 10
- b = 10
- c = 20
- print(a <= b)
- print(c <= a)
- print(a <= c)
输出:
- True
- False
- True
4. 逻辑运算符
逻辑运算符常与条件语句一起使用。python中有三个逻辑运算符。它们是and,or以及not。它在两个布尔值之间使用。
(1) 当条件相同,返回到True。真真归真、真假归假、假真归假、假假归真。
- a = 10
- b = 10
- c = 20
- print(a==b and c>a) #(真,真)
输出:
- True
(2) 任意值为真,则归真。真真归真、真假归真、假真归假、假假归假。
- a = 10
- b = 10
- c = 20
- print(a==b or a>b) #(真,假)
- print(a>bor c<b) #(假,假)
输出:
- True
- False
(3) 若为相反数,则不返回(句法:不是表达式)。非真归假、非假归真。
八、决策和重复
做决定是每个人生活中的一项重要技能。在这一部分,我们将教计算机做决定。
想象一种情形:你正在开车,突然你注意到信号灯里的红灯亮了。现在,你要做什么?你要踩刹车。
你正在开车,在这个操作过程中,只有看到红灯时才会停车。这就是决策制定。在Python中,决策控制语句可以实现精准目标。决策控制语句如下所示:
- if
- if……else
- if……elif……else
(1) if条件语句
条件语句会检查条件。如果条件返回True,则执行语句中的内容,否则什么也不做。
句法:if条件:
规定:设真或假。这是if条件下的两种状态。我们学习了各种运算符和表达式。在传递表达式之后,if条件将返回到True或False。如果返回的值为真,则执行该条件下的语句。
例:设a =10, b= 20。if a
- a = 10
- b = 5
- if a>b:
- print("if conditionsatisfied")
- print("Hello")
输出:
- if condition satisfied
- Hello
(2) if……else
在上一个例子中,如果表达式变为if False:则不执行任何操作。else关键字使之成为可能。如果If中的条件为False,则else部分中的语句将被执行。
- a = 10
- b = 5
- if a>b:
- print("If is executed")
- else:
(3) if……elif……else
如果你的程序中有多个条件,则使用此类的嵌套条件。
- a = 10
- b = 5
- if a>b:
- print("If is executed")
- else:
在使用:in if、elif和else表达式之后,语句必须在下一行的4个空格之后给出。这叫做缩进。
九、循环语句
循环或重复相同类型的操作在编程中非常重要。这种方法称为循环操作。
python中有两种关键字类型。一个是while,另一个是for。
(2) while:
句法:while表达式
while块中的语句将一直执行,直到每次表达式返回True为止。
- a = 5
- while a>0:
- print(a)
- aa = a-1
- print("while loop executed")
输出:
- 5
- 4
- 3
- 2
- 1
- while loop executed
从表达式返回的值每时每刻都在变化,在某一时刻a会变成0。设现在a>o是错误的,当while循环变为False时,执行将停止。
(2) for循环
语句:for 变量 in 序列
python中有许多可用的序列类型。但是现在让我们用range()关键字创建一个序列。
对于范围(5)内的x:在这个表达式中,range(5)将创建一个从0到4的序列。每次将连续的数字分配给变量x。
- a = 5
- for x in range(a):
- print(a)
- print("for loop executed")
输出:
- 0
- 1
- 2
- 3
- 4
- for loop executed
十、函数式编程
我们已经领会了Python中print()和input()等函数。这些函数是Python内置的。在本节中,我们将看到如何创建自己的函数。函数在很多情况下都很有帮助。
同样地,让我们以现实世界为例,如果你需要一个蛋糕来庆祝你朋友的生日,而现在只有一天的时间了。你需要一个蛋糕,但你不需要学习如何做蛋糕,因为有蛋糕师。所以当我们想要某样东西的时候,我们就会找能为我们做这件事的人。
函数以相同的方式工作,如果你创建了一个函数,那么它将在程序中的任何地方被多次调用。例如,如果另一个人需要蛋糕,他也可以打电话给同一个面包师。这样,函数简化了代码的可读性,并易于调试。
在Python中,函数可以用四种不同的方式创建。如下所示:
- 没有参数和返回值
- 带参数且无返回值
- 带参数和返回值
- 不带参数和返回值
我讲一个小故事来让大家了解这四种功能。约翰是个住在城里的年轻人,他的朋友打电话给他,请他来看戏,因为他有多余的票,所以他去了剧院。从剧院回来时,他看到了一台称重机,他走到那台机器前检查了体重。然后他去了一家餐馆,点了吃的,最后他回家了。当他回到家,他注意到邮箱里有一封邮件。
当然,我知道这不是一个有趣的故事。但是把这个故事中的所有事物想象成一个参数或返回值,将来它会有用的。
十一、如何创建函数?
在python中,可以使用def关键字创建函数:def function_name:用于创建函数。
- def add():
- a=5
- b=7
- print(a+b)
上面的代码片段是一个函数定义。这可以在程序中的任何地方调用。
记住一件事,没有返回值的函数将表示为,函数名();具有返回值的函数将表示为,变量=函数名();返回值将存储在变量中。
类型1:不带参数和返回值
故事中的剧场就是这个功能的一个例子。在这种情况下,任何意见都由他提出,他只是看到了一个影像,那不取决于他的存在,所以没有参数也没有返回值。
- def hello():
- print("Hello")
- hello()
hello()函数不传递任何内容,也不返回任何内容。
输出:
- Hello
类型2:有参数,没有返回值
在称重机里,他看到了自己的体重。只有他站在机器上,机器才会显示他的重量。这就是在传递一个参数。
- def add(c,d):
- print(c+d)
- add(4,5)
输出:
- 9
类型3:具有返回值的参数
以餐馆为例,在这件事上,他把自己的钱和需要吃的东西的信息作为参数。作为回报,他得到了食物。
- def add(c,d):
- return c+d
- ans = add(4,5)
- print(ans)
输出
- 9
类型4:不带返回值的参数
最后,邮箱中的邮件是一个没有参数但有返回值的例子。
- def add():
- a=6
- b=4
- return a+b
- ans=add()
- print(ans)
这只是关于Python的一些基础知识,你要学的还有很多。最重要的是,永远记住一开始教给你的一件事:不要出于任何目的学任何东西。