编程与下厨房:如何教女友写Python(二:不从Hello World开始

01 不从“Hello World”开始

但凡是介绍编程语言的入门书籍,都会把“hello world”这个句子的输出作为第一个程序的示例,这种约定俗成的做法就像是新居进火的仪式一般具有非凡的意义。

但是在这里,我们并不打算将Python的第一个程序用在输出“hello world”上,那多俗气。咱们的第一个Python程序用来输出一个充满温度的句子。

打开我们在上一篇中安装好的PyCharm这个IDE,在左侧文件夹上单击右键,可以新建一个Python文件:

文件名可以是数字,也可以是英文,但是最好不要用汉字。嗯,为什么呢?大概就像电磁炉不建议在潮湿环境下使用一样,可能会导致机器出现故障:

创建好了一个Python文件之后,我们就可以开始使用Python编写我们的程序了。想象你拥有了一个全新的厨房,然后就可以在厨房里尽情发挥你的厨艺:

一个新建的Python程序文件:

一个全新的厨房:

有没有联想到两者的相似性?

嗯,知道你很兴奋,想要大干一场,但是先别着急,可能你对这个新厨房还不是很熟悉,所以,让咱们先去厨房里接一壶水出来吧。

在新建的1.py文件中,输入以下代码:

print("小妞很棒哟")

只有这一句代码,不用怀疑,这就是我们的第一个Python程序。厨房能够做出满桌大餐来,自然也能从水龙头里放出些自来水来。代码写好之后,我们就可以运行这个Python程序了。

那么问题可能又出现了——我们写的Python程序如何运行?在理解程序如何运行之前,咱们先来理解一下什么是程序。

02 程序是如何被运行的

请将计算机电脑想象成一位厨师,咱们写的Python程序就是我们交给厨师的一份菜谱(嗯,这个厨师水平如何暂且不论,反正就是只有给他一个菜谱才会照着菜谱做菜),程序的运行就是厨师照着我们写的菜谱,一个步骤一个步骤地进行。

在这里,我们只写了一个简单的不能称之为菜谱的菜谱(指令)。那么计算也就只仅仅是执行这个简单的指令。

如何让计算机这位大厨按照我们写的Python菜谱来做菜呢,在这里介绍两个常用的方法:

  • 在控制台运行Python程序 打开CMD命令行界面,在命令行界面输入python 后接程序的路径,就可以让计算机运行我们的Python程序,比如下面这样:
  • 在IDE上直接运行Python程序 因为我们使用了方便快捷的IDE工具,那么就可以使用IDE提供的代码运行功能直接运行Python程序。在PyCharm中我们可以在代码界面上使用鼠标点击右键,弹出菜单栏,然后选择“run XXX”选项就可以直接在IDE中运行Python代码,比如下面这样:

面对我们编写的第一个Python程序:

print("小妞很棒哟")

计算机大厨在命令行界面下和IDE的界面下都执行显示出了:

小妞很棒哟

这五个汉字。

想来也应该也猜到了上面那句代码所代表的意思——将print()中的用英文双引号包裹着的汉字输出在界面上。

print,即是英文打印的意思,后面接上(),表明这是一个函数或方法(Python的定义,关于什么是函数、什么又是方法,咱们后面会有介绍);在括号中输入英文引号包裹着的汉字,表示将这几个汉字交给print()这个函数。最后print()将收到的汉字打印(print)到界面上。

程序执行的结果,就是“小妞很棒哟”这5个汉字打印输出在了页面中。

到这里,想比也了解了所谓的程序或者代码是怎么一回事:

  • 1、我们(菜谱研究大师)写了一个菜谱(代码),交给大厨(计算机);
  • 2、计算机大厨按照我们给的菜谱代码,在厨房实际地做一道菜(运行程序)出来。

那么为什么有的程序那么复杂、功能那么多呢?那就是菜谱内的流程和步骤(判断和循环)写得更加复杂、菜谱内所需的食材和厨具(数据类型)更加丰富而已。就像做满汉全席肯定要比做一个凉拌西红柿要复杂得多。

(这两份菜所需的厨具、食材和步骤、时间能一样吗?)

03

下一篇

上面我们提到了复杂的程序会有更加丰富的数据类型的使用,那么数据类型是什么呢?我们下一篇继续:)

原文发布于微信公众号 - 州的先生(zmister2016)

原文发表时间:2018-03-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

nodejs php go语言了解

1、Nodejs 1) 简单的说 Node.js 就是运行在服务端的 JavaScript。 2) Node.js 是一个基于Chrome JavaScript...

33811
来自专栏吉浦迅科技

DAY25: 阅读硬件的多线程

1044
来自专栏牛客网

C++后台腾讯WXG实习面经(已拿offer)

时间:2018年4月16日 岗位:C/C++后台开发(Linux) BG:WXG 关于我:本科大三 预计2019年毕业 一面(普通技术面) 过程:递交简历 ->...

55910
来自专栏java一日一条

Java Fork/Join 框架

响应式编程(Reactive Programming / RP)作为一种范式在整个业界正在逐步受到认可和落地,是对过往系统的业务需求理解梳理之后对系统技术设计/...

1071
来自专栏PPV课数据科学社区

使用cProfile等工具来提高python的执行速度

摘要: 众所周知,python相较于其它语言速度较慢,但是我们可以通过优化的方法来提升效率。 本文假定你已经十分熟悉Python。 众所周知,Python是一种...

2777
来自专栏Ryan Miao

如何优化coding

如何优化coding 前言 最近一直在做修改bug工作,修改bug花费时间最多的不是如何解决问题而是怎样快速读懂代码。如果代码写的好的,不用debug就可以一眼...

3427
来自专栏小樱的经验随笔

BugkuCTF web基础$_GET

前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文...

30810
来自专栏Android群英传

实现 APK 保护时常见的坑和解决方案

923
来自专栏牛客网

C++后台腾讯WXG实习面经(已拿offer)

1675
来自专栏陈树义

JVM技术周报第2期

JVM技术周报分享JVM技术交流群的讨论内容,由群内成员整理归纳而成。如果你有兴趣入群讨论,请关注「Java技术精选」公众号,通过右下角菜单「入群交流」加我好友...

672

扫码关注云+社区