第一章-用公式计算(Computing with Formulas)
通过和数学公式有关的例子,介绍变量(variable)、对象(object)、模块(module)和文本格式化(text formatting)相关的概念。
1.1-与编程的初遇:一个公式
用Python表达垂直自由落体公式。
较为完美的表达方式:
v0 = 5
g = 9.81
t = 0.6
y = v0*t - 0.5*g*t**2
print y
- 加减乘除运算符分别为 + - * / ,幂次为**,比如,t的平方表示为t**2
- 用程序的语言编写程序,比如,输出命令是print,不要写成write
- 运用变量,比如,v0、g、t和y,既容易修改参数,又简洁美观,便于查错
- 变量名区分大小写,可由英文字母、下划线和阿拉伯数字组成,但变量名不能用数字开头
- 变量名简明扼要,不要过于冗长,也不要过于随意,尽量运用待解决问题中自带的名称
- 变量名不能用Python的保留名称(Reserved Words),这些名称具有特殊意义,比如:
and, as,assert, break, class, continue, def, del, elif, else, except,
False, finally, for, from, global, if, import, in, is, lambda, None,
nonlocal, not, or, pass, raise, return, True, try, with, while
initial_velocity = 5 acceleration_of_gravity = 9.81 TIME = 0.6 VerticalPositionOfBall = initial_velocity*TIME - \ 0.5*acceleration_of_gravity*TIME**2 print VerticalPositionOfBall
- 在这段代码中,变量名过于冗长了,显得很乱
- \ 表示程序换行,注意, \ 后没有空白符
- 注释可以对程序进行补充说明,以 # 开头,例如:
v0 = 5 # initial velocity
- 若程序出现了非英文字符,需在程序第一行加入以下代码,否则会报错:
# -*- coding: utf-8 -*-
虽然这段代码是 # 开头,但是程序会执行
格式化输出的两种表示形式:
print ’At t=%g s, the height of the ball is %.2f m.’ % (t, y)
print ’At t={t:g} s, the height of the ball is {y:.2f} m.’.format(t=t, y=y)
- 输出结果的形式为:
At t=0.6 s, the height of the ball is 1.23 m.
- 第一种表达中, ' ' 内表示要输出的内容,其间的%是参数标记,会按照顺序将最后括号内的变量值依次填入
- 第二种表达中, ' ' 内表示要输出的内容,期间由{x:y}替代%开头的参数标记、
- ' ' 单引号可由 " " 双引号替代
- %开头的参数标记意义如下:
格式 意义 %s 一个字符串 %d 一个整数 %0xd 一个整数,如果长度小于x,则在开头补0,补足为止 %f 带6个小数的十进制数 %e 科学计数法,用e表示10的幂次,如,200表示为2e+2 %E 科学计数法,用E表示10的幂次,如,200表示为2E+2 %g 长度较长时,则用科学计数法,用e表10的幂次;较短则不用 %G 长度较长时,则用科学计数法,用E表10的幂次;较短则不用 %xz 若z的长度小于x,则在开头补空格,补足为止 %-xz 若z的长度小于x,则在末尾补空格,补足为止 %.yz 使z小数点后有y个数 %x.yz 使z小数点后有y个数,若长度不超过x,则在开头补空格,不足为止 %% 表示%本身
- 若在输出中需要换行,有两种表达方式:
print """y(t) is the position of our ball."""
print ’y(t) is\nthe position of\nour ball.’
- 其结果均为
y(t) is the position of our ball.
1.2-计算机科学术语
待续