# coding=gb2312
# python的注释符号是警号
# 如果用中文注释注意加上第一行
################# 输出 ###################
# 输出空行
# 输出变量
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__