编程与下厨房:如何教女友写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 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Python进阶必读汇总

前言 昨天翻到了一本在github开源的书: Intermediate Python. 就有了此文, 梳理了一下一些之前翻到的对python语言细节点的答案, ...

2795
来自专栏我是攻城师

分布式日志收集之Logstash 笔记(二)

2886
来自专栏LIN_ZONE

php 识别二维码(转载)

最开始找的方法是一个叫 php-zbarcode 的扩展,自己照着网上的安装步骤安装了 ImageMagick 和 zbar ,但编译 php-zbarcode...

893
来自专栏听雨堂

Python学习笔记(2):数据库访问

本来打算继续用Access的,但费了非常大的劲,还是没有搞定。回过头,发现使用sqlite,简单到令人发指。干脆,把C#的CommonCode往这边迁移,先把A...

18610
来自专栏祝威廉

Spark 1.6 内存管理模型( Unified Memory Management)分析

新的内存模型是在这个Jira提出的,JIRA-10000,对应的设计文档在这:unified-memory-management。

1063
来自专栏腾讯IVWEB团队的专栏

在 NodeJS 中玩转 Protocol Buffer

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据序列化,很适合做数据存储或 RPC 数据交换格式。

1K0
来自专栏Spark学习技巧

基石 | Flink Checkpoint-轻量级分布式快照

前面两篇,一篇是spark的driver的Checkpoint细节及使用的时候注意事项。一篇是flink的Checkpoint的一些上层解释。本文主要是将fli...

1081
来自专栏nimomeng的自我进阶

OC优化指南

a) Reusing UITableViewCell:利用cellWithTableView:cellIdentifier:nibName: b)...

711
来自专栏大史住在大前端

webpack4.0各个击破(3)—— Assets篇

Assets,指项目中被引用的资源,通常为各种格式的图片和字体文件,当然也可能包含各式各样其他扩展名的文件(.json,.xml等),常见的图片和文字资源的处理...

682
来自专栏日常学python

爬取《The Hitchhiker’s Guide to Python!》python进阶书并制成pdf

这是日常学python的第15篇原创文章 前几篇文章我们学习了requests库和正则,还有个urllib库,我上篇文章也用了requests库来教大家去爬那些...

38417

扫码关注云+社区