Python开发语言是一种动态语言,同一变量名可以在程序运行的不同阶段代表不同形式比如整型,浮点,列表,元组...。Python开发语言与C语言不同的是,C语言中变量名代表的是用来存放结果的一个固定位置及长度的内存片段。
从例子Listing 1.1中的变量principal可以看出Python开发语言的动态特性.最初,它被赋值为一个整数,但是稍后程序将它再次赋值: 这个语句计算表达式的值,然后将计算结果赋给 principal 变量做为它的新值。当赋值动作发生时,principal最初绑定的值1000被丢弃。
赋值结束,不但 principal 绑定的值发生了变化,它的类型也随着赋值动作发生了相应的变化。在这个例子中,由于rate是一个浮点数,所以在赋值完成后,principal也变成一个浮点数。 while 语句首先检查在它后边的循环条件,若条件表达式为真,它就执行冒号后面的语句块,然后再次测试循环条件,直至为假。
冒号后面的缩近语句块为循环体。注意,Python开发语言使用缩进块来表示程序逻辑(其它大多数语言使用大括号等)。在Listing 1.1中while语句后的三条语句为循环体,在每次循环中均执行。Python开发语言并未指定缩进的空白(空格和制表符)数目。
唯一的要求是同一层次的语句必须有相同的缩进空白。(注意,要么都是空格,要是么都制表符,千万别混用) 格式字符串包含普通文本及格式化字符序列(例如"%d", "%s", 和 "%f"),这些序列决定特定类型的数据(如整型,字符串,浮点数)的输出格式。
'%3d'将一个整数在宽度为3个字符的栏中右对齐,'%0.2f'将一个浮点数的小数点后部分转换为2位。格式字符串的作用和C语言中的sprintf()函数基本相同。详细内容请参阅第四章--操作符及表达式。
open()函数返回一个新文件对象(file object)。通过调用此对象的不同方法可以对文件进行不同的操作。readline()方法读取文件的一行(包括换行符'\n')。如果读到文件末尾,就返回一个空字符串。要将程序的输出内容由屏幕重定向到文件中,可以使用'>>'运算符,如下例:
- 1 class Stack(object):
- 2 def __init__(self): # 初始化栈
- 3 self.stack = [ ]
- 4 def push(self,object):
- 5 self.stack.append(object)
- 6 def pop(self):
- 7 return self.stack.pop()
- 8 def length(self):
- 9 return len(self.stack)
表达式 [float(s) for s in svalues] 通过循环列表svalues中的所有字符串并对每个元素运行函数float()来建立一个新的列表。这种特殊的建立列表的方法叫做列表包含( licomprehension)。 在列表中所有的字符串都转换为浮点数之后,内建函数min()和max()计算出列表中的***值及最小值。
尽管字符串是最常见的 关键字(key) 类型,你还是可以使用很多其它的 Python开发语言做为字典的关键字,比如 数字 和 tuple,只要是不可修改对象,都可以用来做字典的key。有些对象,例如列表和字典,不可以用来做字典的key,因为他们的内容是允许更改的。
在类定义中,方法用 def 语句定义。类中每个方法的***个参数总是引用类实例对象本身,大家习惯上使用 self 这个名字代表这个参数。不过这仅仅是个习惯而已,如果你愿意也可以用任意的别的名字。
不过为了别人容易看懂你的程序,***还是跟随大家的习惯。类的方法中若需要调用实例对象的属性则必须显式使用self变量(如上所示)。方法名中若前后均有两个下划线,则表示这是一个特殊方法,比如init方法被用来初始化一个对象(实例)。
【编辑推荐】