一、准备出发
安装 Python
安装 Python 非常容易。从官网直接下载安装包,按照提示一路下一步完成安装。本课程采用最新版的python3教学。
启动 Python
启动 Python 有两种方法。一种方法是从 IDLE
启动:
在 Start(开始)菜单中,可以看到“Python 3.x”下面的“IDLE (Python GUI)”。点击这个选项,会看到 IDLE 窗口打开。
另一种方式是从终端启动:
Ctrl + R 打开快速启动,键入 cmd 命令,然后点击回车键,就会看到终端窗口打开。
在终端界面键入 python,看到 >>> 提示符,python就启动了。
>>>
是 Python 提示符(prompt)。提示符是程序等待你键入信息时显示的符号。这个 >>>
提示符就是在告诉你,Python 已经准备好了,在等着你键入 Python 指令。
执行指令
不管是 IDLE 启动,还是从终端启动 python,在 >>>
提示符的末尾光标后键入:
print("Hello World!")
我们给 python 的第一个指令就完成了,它会响应你的指令并输出:
Hello World!
学习编程时总有这样一个传统:刚开始都是让计算机显示“Hello World!”。我们也会沿袭这个传统,欢迎来到编程世界!
计算器
计算机很擅长算术运算。利用计算机,超大数的数学计算也能完成。
>>> print(2345 * 6789)
15920205
>>>
>>> print(1234567898765432123456789 * 9876543212345678987654321)
12193263200731596000609652202408166072245112635269
>>>
除了数学计算,计算机擅长的另一件事就是反复地做事情。
编写自己的第一个程序
程序是多个指令集合在一起。所以下面就来创建我们的第一个 Python 程序吧。在编辑器中键入代码,给文件命名为 pizza.py 后保存到你的电脑磁盘中
print("I love pizza!")
print("pizza " * 20)
print("yum " * 40)
print("I'm full.")
运行你的程序
用 IDLE 打开刚刚创建的 pizza.py
文件,在菜单中找到运行,就可以执行你的程序了。
这个程序确实没太大用处。不过起码你能让计算机听从你的号令了。随着学习的深入,我们的程序会越来越有意思。
调试错误
如果程序中出现错误无法运行,怎么办呢?可能会发生两种不同类型的错误。
语法错误
IDLE
在尝试运行程序前会对程序做一些检查。如果 IDLE
发现一个错误,这往往是一个语法错误(syntax error)。语法就是一种编程语言的拼写和文法规则,所以出现语法错误意味着你键人的某个内容不是正确的 Python 代码。
IDLE
的编辑器会(用红色)突出显示它认为出错的位置。也许问题不会恰好出现在红色显示的位置,不过应该很接近。
运行时错误
可能发生的第二种错误是运行程序之前 Python
(或IDLE)无法检测出来的错误。这种错误只是在程序运行时才会发生,所以被称为运行时错误(runtime error)。
Traceback
开头的代码行表示错误消息开始。下一行指出哪里发生了错误,这里会给出文件名和行号。然后显示出错的代码行,这可以帮助你找到代码中哪里出了问题。错误消息的最后一部分会告诉你 Python 认为存在什么问题。对编程和 Python 有了更多了解之后,就更容易理解这个消息是什么意思了。
猜数字游戏
下面来试一个更有意思的程序。这个程序的基本过程是:
- 由程序随机选取秘密数。
- 用户输入他猜的数。
- 程序根据秘密数检查用户猜的结果:太大还是太小?
- 用户不断尝试,直到猜出这个数,或者用完所有机会。
- 猜到的数与秘密数一致时,玩家获胜。
```python
!/usr/local/bin/env python3
encoding: utf-8
import random
secret = random.randint(1, 99) guess = 0 tried = 0
print(“AHOY! I’m the Dread Pirate Roberts, and I have a secret!”) print(“It is a number from 1 to 99. I’ll give you 6 tries. “)
while guess != secret and tried < 6: guess = int(input(“What’s your guess? “)) if guess < secret: print(“Too low, you lazy dog!”) elif guess > secret: print (“Too high, landlubber!”) tried = tried + 1
if guess == secret: print(“Yeah! You got it! Found my secret, you did it!”) else: print(“No more guesses! Better luck next time, boy!”) print(“The secret number was”, secret)
运行结果示例:<br /><br />后面我们会学习有关 `while、if、else、elif` 和 `input` 指令的所有内容。先大致了解了这个程序的基本过程,现阶段手动把整个程序键入到文件并运行起来,是最好的学习方式。
<a name="Revision"></a>
## Revision
- 安装了 Python;
- 学习了如何启动IDLE;
- 了解了交互模式;
- 交给 Python 一些指令来执行;
- 看到了 Python 知道如何完成算术运算(包括非常大的数) ;
- 启动 IDLE 文本编辑器键人你的第一个程序;
- 运行你的第一个 Python 程序;
- 了解错误消息;
- 运行你的第二 个Python 程序:猜数游戏。
<a name="ffa597b0"></a>
## 测试题
1. 如何启动IDLE ?
2. `print` 的作用是什么?
3. Python 中表示乘法的符号是什么?
4. 启动运行一个程序时 IDLE 会显示什么?
4. 运行程序又叫做什么?
<a name="2d60f2d2"></a>
## 动手试一试
1. 在交互模式中,使用 `Python` 计算一周有多少分钟。
1. 编写一个简短的小程序,打印3行:你的名字、出生日期,还有你最喜欢的颜色。打印结果应该类似这样:
```shell
My name is Pitt.
I was born July 7,1986.
My favorite color is red.
保存这个程序,然后运行。如果程序没有像你期望的那样运行,或者给出了错误消息,试着改正错误,让它能够正确运行。
二、基本运算
操作符
数学运算:使用加号(+
)完成加法,使用星号(*
)完成乘法,使用减号(-
)来做减法,使用前斜杠(/
)表示除法。
>>> print(3/2)
1.5
>>>
>>> print(3//2)
1
操作符(operator)就是会对它两边的东西有影响或者有“操作”的符号。这种影响可能是赋值、检查或者改变一个或多个这样的东西。
myNumber + yourNumber
↑
操作数 操作符 操作数
完成算术运算的 + - * / // % **
都是操作符。所操作的东西称为操作数(operand)。
指数 - 幂
如果把 3 自乘 5 次,就叫“3 的指数为 5”,也就是“3 的 5 次幂”。Python 用一个双星号表示指数或者将一个数自乘为一个幂。
>>> print(3 * 3 * 3 * 3 * 3)
243
>>> print(3 ** 5)
243
取余 - 求余数
如果两个数不能整除,最后会得到一个余数(remainder)。7 / 2 的答案中有一个商(quotient),在这里就是 3,还有一个余数(remainder),这里的余数是 1。
7 / 2 = 3 #余数是1
如果在 Python 中将两个整数相除,它会给你商。不过余数呢?Python 有一个特殊的操作符来计算整数相除的余数。这称为取余(modulus)操作符,这个符号是百分号(%
)。
>>> print(7 % 2)
1
>>> print(7 / 2)
3.5
>>> print(7 // 2)
3
注:程序中需要的 99% 的操作符,就是这两个操作符再加上前面刚讲的 4 个基本操作符。
运算顺序
Python 使用的顺序与你在数学课上学到的(或者将要学到的)规则完全相同:指数运算最优先,然后是乘除,再后面是加减运算。
如果希望改变运算顺序,先完成某个运算,只需要在它两边加上括号(圆括号)。
>>> print(2 + 3 * 4)
14
>>> print((2 + 3) * 4)
20
非常大 / 非常小
Python 会用一种稍微不同的方式显示非常大的数。
>>> print(9938712345656.34 * 4823459023067.456)
4.793897174132799e+25
这个 e
是计算机中显示非常大或非常小的数时采用的一种方法。这叫做E记法(E-notation)。处理非常大(或非常小)的数时,要把所有数字以及小数位都显示出来可能很费劲。
这种数在数学和科学领域经常出现。例如,如果一个天文程序要显示从地球到 AlphaCentaur 星的公里数,可能会显示为 300000000000000
或者 38 000 000 000 000 000
(38后面有15个0)。不论哪种方式,数完所有这些0都会让你累得够呛。
在E记法中,这个数要写作 3.8E16 或者 3.8e16。读作“3.8乘以10的16次幂”或者简读作“3.8e16”。这里假设指数是10的幂。这就等同于写成3.8 x 10。
对于非常小的数,如 .000000000001752
,可以使用一个负指数。科学计数法会写作 1.752X10,E记法会写作1.752e-13。负指数表示要把小数点向左移而不是向右移。
思考:指数与E记法
>>> print(3**5) //以3为底
243
>>> print(3e5) //以10为底
300000.0
Revision
- 用 Python 如何完成基本数学运算。
- 整数和浮点数。
- 求幂(自乘得到一个幂)。
- 如何计算取余(余数)。
- E 记法的有关内容。
测试题
- Python 中乘法使用哪个符号?
- Python 计算
8 // 3
的答案是什么? - 怎么得到
8 / 3
的余数? - Python 中计算
6 * 6 * 6 * 6
的另一种做法是什么? - 采用 E 记法,
17 000 000
要写作什么? 4.56e–5
如果按常规的写法是什么(不是 E 记法)?
动手试一试
使用交互模式或者编写一个小程序解决下面的问题。
- 3 个人在餐厅吃饭,想分摊饭费。总共花费 35.27 美元,他们还想留 15% 的小费。每个人该怎么付钱?
- 计算一个 12.5m × 16.7m 的矩形房间的面积和周长。
- 写一个程序,把温度从华氏度转换为摄氏度。转换公式是 C = 5 / 9 * (F - 32)。 (提示:当心整除问题!)
- 你知道怎么计算坐车去某个地方需要花多长时间吗?相应的公式(用文字表述)是“旅行时间等于距离除以速度”。编写一个程序,计算以 80 km/h 的速度行驶 200 km 需要花多长时间,并显示答案。