《易学Python》——第1章 为何学习Python 1.1 学习编程

简介:

本节书摘来自异步社区《易学Python》一书中的第1章,第1.1节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第1章 为何学习Python

本章介绍如下内容:

  • 计算机和程序简介以及编写程序的原因;
  • Python简介及其如此杰出的原因;
  • 安装Python。

既然购买了本书,您很可能想学习编程技术。祝贺您!打算学编程的人不是很多,但编程很有趣,自学编程的回报也很高。编程是衡量您是不是文盲的新标准;如果不会编写简单程序(如批处理文件、邮件过滤器、电子表格公式),将在会这样做的人面前处于劣势。编程还是工具,可帮助您将点子付诸实施。

我10岁左右开始涉足编程,当时使用的是Commodore 64。在那个时候,除游戏和简单字处理软件外,现成的软件不多。Commodore等计算机自带了BASIC,编程很容易,无需学很多知识就能很快得到结果。


screenshot

然而,这样的情况一去不复返了。当前,要编写程序必须先安装软件;但学会编程后,就可创建各种神奇的程序,替您完成繁琐的工作,向您提供信息,供您娱乐。最重要的是,编程很有趣,每个人都应尝试。

您将发现,本书有一些卡通人物点缀其中。这旨在以有趣的方式提供一些背景知识,让您知道接下来要讲的内容,或指出一些常见问题。这些卡通人物都来自User Friendly,但内容都是我编写的,如果您不喜欢,就责怪我吧。

下面开始介绍有关编程的基本知识。

1.1 学习编程

这是一本编程书,在详细探讨编程之前,有必要介绍一些基本知识:什么是编程?如何编程?编程的定义很简单:

编程就是告诉计算机做什么。

但与大多数定义一样,这种定义太过简单。与国际象棋一样,学习编程的基本规则很容易,但要精通这些规则并结合使用它们要难得多。编程与人类活动的很多方面相关:从某种意义上说,如果不进行编程,就很难让计算机从事有意义的工作;编程不仅关乎数字和计算,还关乎设计、创意和个人表达。


screenshot

1.1.1 告诉计算机做什么

下面将前面的编程定义分解为几部分,并分别审视它们。要明白前面的编程定义,需要知道计算机是什么以及“告诉”和“做什么”的准确含义。

1.计算机

计算机是速度很快的计算器,可按您的指令做简单决策。计算机指令很简单,通常包含计算机要完成的任务,如相加和比较。然而,结合使用一系列指令可创建大型程序,让您能够完成复杂的工作,如撰写文档、玩游戏、计算账户余额以及控制核反应堆。

计算机看似很聪明,实际上很傻,一根筋且缺乏基本常识。计算机毕竟只是机器,您让它做什么,它就做什么,根本不考虑后果。就拿删除整个硬盘的命令来说吧,大多数人明白其后果很严重,可能在遵命行事前向您核实,但计算机什么都不问,直接将硬盘上所有的数据都删除。

注意:

您让它做什么它就做什么,这既是计算机的优点,也是计算机的缺点。
AI 代码解读

如果使用(或编写)的程序行为怪异或无缘无故地崩溃,这不是它的错——它只是按指令行事。

2.告诉

使用Python时,您通常这样向它发出命令:在文本文件中输入程序代码,再让程序Python运行该文件,这将在本章后面介绍。您输入的指令可复杂可简单,执行的任务各种各样:将数字相加、打开其他文件、在屏幕上显示内容等。简单的Python程序类似于下面这样:


screenshot

如果您不明白这个程序的含义,不用太担心;这个示例旨在提供一些背景知识。

3.做什么

现在事情开始变得有趣起来了。大多数现代计算机都是“图灵完备(Turing complete)”的,即什么都能做——您想得到的任何事情计算机都能做。至少从理论上说如此:所需的时间或复杂程度可能超乎预期,或者需要特殊硬件(如果您希望以特定方式交互),但只要编写的程序没有问题,并提供了足够的数据,计算机就什么都能做。下面是计算机用于完成的一些任务。

  • 控制有人或无人航天器和探测器,引导机器人进入其他星球,包括火星探索流浪者Spirit和Opportunity。
  • 通过计算机网络(互联网和万维网)将数据传输到世界各地。通过网络可向世界各地传输信息,还可接收来自世界各地的信息,且在一秒钟内就可搞定。
  • 打造机器人,从工业机械手到Roomba真空吸尘器,再到像人类一样能爬楼并具备基本感情的机器人。
  • 模拟现实世界的现象,如重力、光和天气。这包括科学模型及大多数游戏。


screenshot

您可能没有将机器人探测器送到其他星球所需的硬件,但至少从理论上说,您依然能够运行这些程序。例如,就拿用于控制Spirit和Opportunity的计算机来说吧,其计算能力根本无法与您的台式机、笔记本电脑和手机相媲美,真是难以置信。

1.1.2 编程是创意

大家很容易将重点放在计算机编程的具体方面,如指令、加法、网络、硬件等,但编程的核心是创意:具体地说就是在程序中实现创意,供他人使用。自人类使用长矛以来,工具被人们用来探索新事物的情况层出不穷,编程也不例外。计算机自面世以来帮助人们想出了很多新点子,其中包括互联网、电子表格、交互式游戏以及桌面出版。


screenshot

尽管我无法帮您想出新的创意,但我可以告诉您一些来自别人的创意,您可以用来激发自己的创意灵感。

1.1.3 编程是设计

本书涉及的大多数编程方面都与设计相关。设计通常指的是特定问题的常用解决方案。例如,建筑图描绘了建筑物及其占据的空间,解决了一些常见的建筑问题:如何进出建筑物以及如何在建筑物内移动;如何使用建筑物;建筑物如何巧妙利用材质让人感到愉悦等。

是否有效地解决了问题决定了设计的好坏,也决定了它是否优于其他设计。这意味着设计不可能面面俱到,总是存在其他更佳的问题解决方案。对于您的设计方案,别忘了提出如下问题:这种解决方案是否正确无误?它是否只解决了问题的一部分?将设计付诸实施有多容易?如果它只是好10%,但付诸实施的难度增加了一倍,就应选择更简单的设计方案。

既然编程是实现创意的方案,它解决了哪些问题呢?下面是您可能遇到的一些问题。

  • 创意不完整,还有一些细节有待解决。
  • 大多数创意都很复杂,一旦您着手将其记录下来,就将涉及大量的细节。
  • 创意必须清晰、易于理解,这样别人才能使用、理解和利用它们。

编程需要完成的重要工作是,以尽可能简单、清晰的方式将创意表达出来。开发计算机语言时,面临的一个常见主题是管理复杂性。即便编写的程序简单明了,一不小心就会只见树木不见森林。修改程序时,您可能错误地理解程序最初的意图,进而引入错误或不一致。优秀的编程语言提供了帮助处理细节的功能,让您在必要时能够深入或避开细节。

另一个重要因素是,使用特定语言编写的程序有多灵活。在实现创意方面,探索式编程是个很有用的工具,本书将大量采用这种方式;但如果编程语言没有管理复杂性和隐藏细节的强大工具,就很难修改程序,导致探索式编程的很多优点无法显现出来。

对编程有了基本认识后,该说说本书介绍的语言Python了。

目录
打赏
0
0
0
0
1811
分享
相关文章
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
112 80
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。
|
19天前
|
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
37 14
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
78 2
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
Python学习的自我理解和想法(5)
这是我在B站千锋教育学习Python的第五天笔记,主要内容包括列表的操作,如排序(`sort()`、``sorted()``)、翻转(`reverse()`)、获取长度(`len()`)、最大最小值(`max()`、``min()``)、索引(`index()`)、嵌套列表和列表生成(`range`、列表生成式)。通过这些操作,可以更高效地处理数据。希望对大家有所帮助!
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等