所有测试语句基于Python 2.7.3 , Ubuntu 12.04
自学Python,如果哪里说的不对,还请指正。谢谢。
示例绝大部分来自博客园vamei的python教程
#!/usr/bin/env python#coding=UTF-8#默认python编码是ASCII编码 要支持中文#加上coding=UTF-8的声明#输出语句print '你好 Python !!'
打印一条语句,用单引号双引号都可以,但不能混用单引号和双引号。
语句结束也不必加;分号作为结束,加上分号也不影响。
如果你想输出的内容中既包含单引号,又有双引号,该这么办呢,
这时候就需要使用转义字符了,转义字符/
可以转义很多字符,
比如/n
表示换行,/t
表示制表符,字符/
本身也要转义,所以//
表示的字符就是/
print 'I/'m a /"dog/"!'
像上边这样,使用转义字符 /' /" ,输出 I'm a "dog" !
如何从命令行接收字符串,只需调用 raw_input() 即可
name = raw_input('please enter your name: ')print 'name=', name
以下代码不再重复 #!/usr/bin/env python #coding=UTF-8
#条件选择语句if(3>3): a = "Are you happy???"elif(2>3): a = "bbbbbbbbb"else: a = "cccccccc"print a;
python最具特色的indent缩进语法,以4个空格表示所属关系,使用:包含语句块 摒弃大多数编程语言的{}
不必给元素设类型,Python自动给你设置类型,其中elif表示else if.
关于到底是用Tab键还是用4个空格,我觉得把tab键设置成4个空格,这个问题不就没有争议了吗?不知道对不对。
#循环语句for a in [1,2,3,[4,5]]: print a
循环语句,有点类似C#和java的foreach 循环。 其中list中的子元素还可以是list, index下标也是从0开始
#函数定义 是否为闰年def isLeafYear(year): return year%400==0 or (year%100!=0 and year%4==0)print isLeafYear(2004)
函数定义,以关键字def作为标识。其中 or 关键字类似 || , and关键字类似&&
#函数定义 return可以返回多个值def square_sum(a,b): c = a**2 + b**2 return c,a,bprint square_sum(1,3)
return可以返回多个值,这个挺有特点,Java语言里应该不可以。
#将表b作为参数传递给函数b=[1,2,3]def change_list(b): b[0] += 1 return bprint change_list(b)print b
通过表索引操作表,表b的值发生改变。
#值传递 原整数a的值不发生变化 试着将函数的参数换成b或者c就可以理解了。a = 1def change_a(a): a = a + 1 return aprint "函数的返回值是:",change_a(a)print "原整数a的值是:",a
#定义一个父类 鸟类#类中成员方法的第一个参数必须是调用该方法的对象本身#习惯上使用self,也可使用it、this等等#括号中为object是不是说明所有的类都是继承自Object ??class Bird(object): #有点类似构造函数 是两个下划线init def __init__(self,something): print 'I am a bird.',something have_feather = True way_of_reproduction = 'egg' def move(self,dx,dy): position = [0,0] position[0] = position[0] + dx position[1] = position[1] + dy return position#生成一个叫夏天的小鸟的对象 这里不需要用类似高级语言的new关键字summer = Bird('call me summer!')print summer.way_of_reproductionprint summer.move(1,2)
子类继承父类:
#子类小鸡继承父类 鸟类 (单继承)class Chicken(Bird): way_of_move = 'walk' possible_in_KFC = True#子类大雁继承父类 鸟类 (单继承)class DaYan(Bird): def __init__(self,name): self.name = name way_of_move = 'fly' possible_in_KFC = False #重写父类move方法 def move(self,dx,dy): position = [0,0] position[0] = position[0] + dx**dx position[1] = position[1] + dy**dy return position def print_name(self): print "My name is ",self.name#现在summer是大雁了summer = DaYan("doudou!")print summer.print_name()print summer.have_featherprint summer.move(2,3)print dir(summer) #dir() 用来查询一个类或者对象的所有属性
#自定义list子类 添加对类似 [1,2,3] - [2,3]运算的支持#这种自带两个__下划线的方法 是特殊方法class SuperList(list): def __sub__(self,b): #self是SuperList的对象,可以使用类似 list[:] 的方式表示整个list对象 a = self[:] b = b[:] #如果list包含b中的元素,就移除,直到循环结束 len()返回list中元素个数 while len(b) > 0 : element_b = b.pop() #pop() 从list中弹出最后一个元素值,并返回他的值 if element_b in a : a.remove(element_b) return a#这里的-减号运算符代表__sub__() 方法,类似+ 代表__add()__#特殊方法和运算符相等价print SuperList([1,2,3,4]) - SuperList([1,2])
#词典(dictionary)类 容器类 使用大括号dic = {} #空的词典print dic,type(dic)dic = {'name':'zhaowuji','age':21,'wife':'zhaomin'}#元素是键值对 无序 通过key值来得到value print dic['name'],dic['wife']#添加新元素。引用一个新的键,赋值。 出自倚天屠龙记dic['from'] = 'yitiantulongji'print dic#词典元素的循环调用for key in dic: print key,':',dic[key]#词典常用方法print (len(dic)) #查询词典用元素个数print dic.keys() #返回所有key的值 listprint dic.values() #返回所有value的值 listprint dic.items() #返回dic所有的元素###删除方法###del dic['name'] #del 是python的关键字 用于删除对象print dic###删除元素###print dic.clear() #清空dic,变为空的词典{}
新闻热点
疑难解答