# coding=gb2312 # python的注释符号是警号 # 如果用中文注释注意加上第一行 ################# 输出 ################### # 输出空行 print # 输出变量 print 5 # 用逗号将输出结果各个变量以空格分隔开 print 3, 4, 5 # 也可以用类似于C语言中的格式化输出 print 'I love %s and %s' % ('apples', 'bananas') ################# 输入 ################### # 使用input函数输入数字 n = input('Please input a number:') print n # 使用raw_input输入字符串 str = raw_input(); print str # 程序结尾可以加上这一行,程序就不会一闪而过了 raw_input('Press Enter to Continue...') ################# 运算符 ################### # 求模运算符,和C语言一样 print 10%9 # 整数相除仍然是整数 print 5/2 # 加上.就变成浮点数了 print 5/2. # //运算符返回商的整数部分 print 4.0 // 3 # **求幂运算运算符 print 7**4 # ~运算符返回-(x + 1) print ~9 # 比较运算符 print 1 == 1 print 1 is 1 # 不等于 print 2 != 1 # and与 print 2 > 1 and 3 < 1 # or 或 print 2 > 1 or 3 < 1 # not 非 print not 2 < 1 # 三目运算符and ... or, 相当于C语言中的?: print 1 > 0 and 'true' or 'false' # 值得注意的是,python中没有单目运算符++i, i-- ############### 条件判断 ################## # python中只有if没有switch...case x = 12 # if后紧跟冒号 if x > 10: print 'A' # if .., else时else后也要冒号 if x != 12: print 'A' else: print 'B' # else if的新关键字elif if x < 5: print 'A' elif x > 20: print 'B' else: print 'C' # if的嵌套 if x > 0: if x > 10: if x < 17: print 'A' else: print 'B' ############## 循环语句 ############## # for循环,for x in range(a, b) # 相当于 c中for(int x = a; x < b; ++x) # 可以用xrange代替range提高效率 for x in xrange(0, 5): print x # while循环 i = 0 while i < 10: print i, i += 2 # while和break搭配 while 1: print i, i -= 2 if i < 0: break ############# 内置数据结构 ########### # list,用方括号定义,类似于vector arr = [1, 2, 3, 4, 5] print arr[3] # 与vector不同的是,它能保存不同的数据类型 arr = [1, [1, 9], 'Hello'] # tuple类似于list,不过赋值完就不可修改 # 相当于常量类型的list,访问速度快是它的优势 pt = (1.0, 2.0, 3.0) # dictionary字典类型,用大括号定义 dict = {'Dad':'John', 'Mon':'Rose', 'Brother':'Kevin'} for i in dict: print i, dict[i] # 上面三个都是引用类型,不能用赋值号直接拷贝 ############# 文件读写 ############# # 和c语言的fopen函数很像,注意路径中应该用/或是// fp = open('c:/testpython.txt', 'w') # 用write函数写入文件 fp.write('Hello World!') fp.write('/nI like apples/nHow are you?') # 关闭 fp.close() # 读取文件数据 fp1 = open('c:/testpython.txt', 'r') # 用read函数读数据 print fp1.read(5) # 用readline函数读一行 print fp1.readline() # 用readlines读入多行 print fp1.readlines() ############ 定义函数 ############## # 函数的定义: def 函数名(参数1, 参数2...): def func(x): return x + 1 print func(4) # 可以用lambda定义简单函数 g = lambda x, y: x * y print g(3, 4) #相当于计算3*4 #lambda可以和reduce连用,如计算5的阶乘 print reduce(lambda x,y:x*y, xrange(1,6)) # 还有一种类似函数的叫做迭代器(generator), # 只不过用yield代替了return,其实更像定义一个类 def nextinteger(i): while 1: i = i + 1 yield i #定义迭代器object a = nextinteger(0) #用next函数取得计算值 print a.next() ############ 定义类 ############### # 定义类的关键字class,后面紧跟冒号 class A: # 定义成员变量 x = 'hello' # 类的构造函数为__init__(self, ...),和C++很不一样 def __init__(self, _x): self.x = _x #定义类时函数默认需要一个参数self,相当于c++中的this def func(self): #访问成员变量需要使用self.xxx print self.x # 定义派生类的方法:class 类名(基类名1, 基类名2...) class B(A): y = 'ok' # 初始化一个类实例 tmp = A('ss') tmp.func() ############ 使用模块 ########## # 要使用某个模块,首先用import [模块名] import math # 使用模块函数的方法:module.function print math.floor(19.8) # 如果模块发生改变可以用reload(模块名),重新导入模块 reload(math) # 可以用dir(模块名)查看模块中有哪些函数 dir(math) # 可以用help(模块名)查看模块中的函数是干什么用的 help(math) # 可以用print 模块名.__doc__查看模块的描述 print math.__doc__