赞
踩
另一个你可能熟悉的概念是变量(variable)。如果代数对你来说不过是遥远的记忆,也不用 担心,因为Python中的变量理解起来很容易。变量是表示(或指向)特定值的名称。例如,你可 能想使用名称x来表示3,为此执行如下代码: >>> x = 3 这称为赋值(assignment),我们将值3赋给了变量x。换而言之,就是将变量x与值(或对象) 3关联起来。给变量赋值后,就可在表达式中使用它。 >>> x * 2 6 不同于其他一些语言,使用Python变量前必须给它赋值,因为Python变量没有默认值。
注意 在Python中,名称(标识符)只能由字母、数字和下划线(_)构成,且不能以数字打头。 因此Plan9是合法的变量名,而9Plan不是
函数input
input("1+1=?")
乘方运算符:**
使用函数:pow
print(2**3) #8
print(pow(2,3))#8
有多个内置函数可用于编写数值表达式。例如,abs计算绝对值,round将浮点数圆整为与之接近的整数。
可将模块视为扩展,通过将其导入可以扩展Python功能。要导入模块,可使用特殊命令import。前一节提及的函数floor包含在模块math中。
import math
print(math.floor(32.9))#32
请注意其中的工作原理:我们使用import导入模块,再以module.function的方式使用模块 中的函数。就这里执行的操作而言,也可像前面处理input的返回值那样,将这个数字转换为整数。
print(int(32.9))#32
注意:还有一些类似的函数,可用于转换类型,如str和float。实际上,它们并不是函数,而 是类。类将在本书后面更详细地介绍。
如果确定不会从不同模块导入多个同名函数,你可能不想每次调用函数时都指定模块名。在这种情况下,可使用命令import的如下变种:
from math import sqrt
print(sqrt(9)) #3.0
通过使用命令import的变种from module import function,可在调用函数时不指定模块前缀。
事实上,可使用变量来引用函数(以及其他大部分Python元素)。执行赋值语句foo = math.sqrt后,就可使用foo来计算平方根。例如,foo(4)的结果为2.0。
import cmath
print(cmath.sqrt(-1)) #1j
注意到这里没有使用from … import …。如果使用了这种import命令,将无法使用常规函 数sqrt。类似这样的名称冲突很隐蔽,因此除非必须使用from版的import命令,否则应坚持使用常规版import命令。
1j是个虚数,虚数都以j(或J)结尾。复数算术运算都基于如下定义:-1的平方根为1j。
print((1 + 3j) * (9 + 4j)) #(-3+31j)
Python本身提供了对复数的支持。
注意 Python没有专门表示虚数的类型,而将虚数视为实部为零的复数。
编写简单示例时,print语句很有用,因为几乎在任何地方都可使用它。如果你要尝试提供更有趣的输出,应考虑使用模块turtle,它实现了海龟绘图法:from turtle import *
海龟绘图法的理念源自形如海龟的机器人。这种机器人可前进和后退,还可向左和向右 旋转一定的角度。另外,这种机器人还携带一只铅笔,可通过抬起或放下来控制铅笔在什么 时候接触到脚下的纸张。模块turtle让你能够模拟这样的机器人。
绘制一个三角形:
from turtle import *
forward(100)
left(120)
forward(100)
left(120)
forward(100)
绘制五角星:
from turtle import *
color('red','red')
begin_fill()
for i in range(5):
fd(200)
rt(144)
end_fill()
done()
实际上,运行程序的方式有多种。首先,假定你打开了DOS窗口或UNIX shell,并切换到了 Python可执行文件(在Windows中为python.exe,在UNIX中为python)或将该可执行文件所在的目录加入到了环境变量PATH中(仅适用于Windows)。另外,假定脚本(hello.py)存储在当前目录下。满足上述条件后,就可在Windows中使用如下命令来执行这个脚本: C:\>python hello.py
在UNIX系统中,可使用如下命令: $ python hello.py
命令是一样的,只是系统提示符不同。
在有些情况下,你希望能够像执行其他程序(如Web浏览器或文本编辑器)一样执行Python 脚本,而无需显式地使用Python解释器。UNIX提供了实现这种目标的标准方式:让脚本的第一 行以字符序列#!
(称为pound bang或shebang)开始,并在它后面指定用于对脚本进行解释的程序 (这里是Python)的绝对路径。只需将下面的代码作为脚本的第一行, 就可在UNIX中轻松运行脚本: #!/usr/bin/env python
不管Python库位于什么地方,这都将让你能够像运行普通程序一样运行脚本。如果你安装了 多个版本的Python,可用更具体的可执行文件名(如python3)替换python。 要像普通程序一样运行脚本,还必须将其变成可执行的: $ chmod a+x hello.py
现在,可以像下面这样来运行它(假定当前目录包含在执行路径中): $ hello.py
如果这不管用,请尝试使用./hello.py
,这在当前目录(.)未包含在执行路径中时也管用(负责的系统管理员会告诉你执行路径是什么。
注释:程序员在代码中加入的说明信息,不被计算机执行
注释的两种方法:
#Here are the comments
’’’ This is a multiline comment used in Python ’’’
print("Hello, world!" )
print('Hello, world!' )
Python在打印字符串时,用单引号将其括起,使用的是双引号没有任何差别。
这里使用的是单引号,结果却完全相同。既然如此,为何同时支持单引号和双引号呢?因为 在有些情况下,这可能会有用。
print("Let's go!")
print('"Hello, world!" she said')
下面这种情况编译不通过,可以用""进行转义
print( 'Let\'s go!' )
print(repr("Hello,\nworld!"))
print(str("Hello,\nworld!"))
使用str能以合理的方式将值转换为用户能够看懂的字符串。例如,尽可能将特殊字符编码 转换为相应的字符。然而,使用repr时,通常会获得值的合法Python表达式表示。
print('''This is a very long string.
It continues here.
And it's not over yet.
"Hello, world!" Still here.''')
还可使用三个双引号,如"""like this"""
。请注意,这让解释器能够识别表示字符串开始 和结束位置的引号,因此字符串本身可包含单引号和双引号,无需使用反斜杠进行转义。
常规字符串也可横跨多行。只要在行尾加上反斜杠,反斜杠和换行符将被转义,即被忽略。
print(r'C:\nowhere')
print(r'C:\Program Files\fnord\foo\bar\baz\frozz\bozz')
原始字符串用前缀r表示
原始字符串不能以单个反斜杠结尾。换而言之,原始字符串的后一个字符不能是反 斜杠,除非你对其进行转义(但进行转义时,用于转义的反斜杠也将是字符串的一部分)。根据 前一个示例,这一点应该是显而易见的。如果后一个字符(位于结束引号前面的那个字符)为 反斜杠,且未对其进行转义,Python将无法判断字符串是否到此结束。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。