1、一个简单的程序
# calculata the area and circumference of a circle from its radius
# Step1: prompt for a radius
# Step2: apply the area formula
# Step3: Print out the results
import math
radiusString=raw_input("Enter the radius of your circle:")
radiusInteger=int(radiusString)
circumference=2*math.pi*radiusInteger
area=math.pi*(radiusInteger**2)
print "The circumference is:",circumference,\
",and the area is:",area
1.1 代码说明
(1)#后是注释
(2)math是模块名
(3)raw_input函数将引号内的语句输出到Pythonshell并等待用户的输入响应,返回字符串
(4)pi是math模块里赋了值的变量
(5)int()是Python的内置函数
(6)radiusInteger**2表示平方
(7)反斜线符号\表示该语句将换行继续
(8)单引号和双引号的作用相同,都用于表示字符串
1.2 小结
(1)Python使用强制缩进的编码风格,并以此组织代码块。
(2)Python语句结尾不用分号。
(3)Python标明注释用#(单行)或三引号(多行)
(4)Python语言没有入口方法(Main),代码会从头到尾顺序执行
(5)用import引用所需要的模块
2、对象
在Python中,认为系统中的每一个“东西”都是一个对象。
2.1 对象命名
(1)名字必须以字母或者_开始
(2)除了首字符,名称可以包含任何字母、数字和下划线的组合
(3)名字长度不限
(4)名字是区分大小写的
2.2 对象类型
当Python创建对象时,它接收到一个标识符。当请求ID(使用id)时,得到一个系统相关的ID号。在不同的会话中或者在不同的机器中这个数字是不同的。
>>> aInt=7
>>> id(aInt)
22651632
>>> type(aInt) # because 7 is an integer,aInt is of type int
<type 'int'>
>>>
>>> bFloat=2.5
>>> id(bFloat) # note that bFloat's ID is different than aInt's ID
22684096
>>> type(bFloat) # because 2.5 is Real,bFloat is of type float
<type 'float'>
>>>
>>> aInt=bFloat # associate aInt with bFloat's object
>>> type(aInt) # aInt is now of type float
<type 'float'>
>>> id(aInt) # aInt's now has the same ID as bFloat
22684096
由于Python是动态语言,所以它的变量本身类型不固定。如:
>>> a=3
>>> a
3
>>> a=3.4
>>> a
3.4
Python和许多其他语言一样,对象都是某种类型的实例。如,1、27和365都是对象,具有相同的int类型。
Python内建的数据类型有20多种,其中有些不常用到的,有些即将合并。本文将主要介绍空类型、布尔类型、数字和字符串、元组、列表、集合、字典等8种Python内置的数据类型。
2.2.1 空类型
空类型(None)表示该值是一个空对象,比如没有明确定义返回值的函数就是返回None。空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。空类型没有任何属性,经常被用做函数中可选参数的默认值。None的布尔值为假。
2.2.2 布尔类型
任何非零数字或非空容器(例如,字符串、元组、列表、集合和字典)的布尔值都为真,而0(任何数字类型)、None和空容器都为假。
2.2.3 数字
包括整型、长整型(L)、浮点类型以及复数类型。
整数长度为机器位长,通常都是32位,超过这个范围的整数就自动当长整数处理,而长整数的范围几乎完全没限制。Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
复数由两部分组成:实部和虚部,例如:
>>> a=3+2j
>>> a.real # 实部
3.0
>>> a.imag # 虚部
2.0
2.2.4 字符串
字符串类型为str。它是第一个集合类型。是一种序列。请注意,“ ”只是一种表示方式,不是字符串的一部分。
如“abc”是一个字符串,它包含a、b、c这3个字符。
2.2.5 列表
列表类型为list,用符号[]表示。列表和字符串一样,也是一种序列类型。中间的元素可以是任何类型(包括列表本身,以实现多维数组),元素之间用逗号分隔。
2.2.6 元组
元组类型为tuple,元组与列表非常相似,它用()而不是[]括起来的序列。元组比列表的速度更快,但元组是一个不可变的序列,也就是与str一样,无法在原位改变它的值。除此之外,其他属性与列表基本一致。
2.2.7 字典
字典类型为dict。是映射类型,也是集合类型,但不是序列类型。元素对中的第一个元素是键,第二个元素是值。
2.2.8 集合
集合类型为set,集合是含有不重复元素的数据集(类似于数学中的集合概念)。
其实,列表的特点跟一维数组类似(当然你也可以创建类似多维数组的“列表的列表”),字典则是具有关联关系的数组(通常也叫做哈希表),而元组则是不可变的一维数组。
3、判断变量类型
3.1 type
type()是Python的内置函数,type(object)返回object的类型,例如:
>>> a=1
>>> type(a)
<type 'int'>
>>> b=2.4
>>> type(b)
<type 'float'>
>>> c=3+2j
>>> type(c)
<type 'complex'>
>>> d=[1,3,4,2]
>>> type(d)
<type 'list'>
3.2 isinstance
isinstance()也是Python的内置函数,用来测试object的类型。
语法:isinstance(object,classinfo)
如果参数object是classinfo(类或类型)的实例,或者object是classinfo的子类的一个实例返回True。
如果object不是类的实例或者一个给定类型的对象则返回结果False。
如果classinfo不表示一个类(类型), 那么它要么是一个类(类型)的元组, 或者递归地包含这样的元组.其他的序列类型是不被允许的。否则将引发一个TypeError异常。
例如:
>>> i=3
>>> isinstance(i,float)
False
>>> isinstance(i,int)
True
>>> isinstance(i,(int,float))
True
>>>
>>> class a(object):
pass
>>> class b(a):
pass
>>> class c(object):
pass
>>> d=a()
>>> e=b()
>>> isinstance(d,a)
True
>>> isinstance(e,b)
True
>>> isinstance(e,a)
True
>>> isinstance(e,(a,b,c))
True
参考文献:
1、《Python入门经典:以解决计算问题为导向的Python编程实践》
2、Python新员工教材