码迷,mamicode.com
首页 > 编程语言 > 详细

python初体验之基础语法(一)

时间:2015-08-04 13:11:00      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

所有测试语句基于Python 2.7.3 , Ubuntu 12.04

自学Python,如果哪里说的不对,还请指正。谢谢。

示例绝大部分来自博客园vamei的python教程

1.输出语句print()

#!/usr/bin/env python
#coding=UTF-8

#默认python编码是ASCII编码 要支持中文
#加上coding=UTF-8的声明

#输出语句
print (你好 Python !!)

技术分享

打印一条语句,括号中用单引号双引号貌似都可以,

语句结束也不必加;分号作为结束,加上分号也不影响。

 

2.条件选择语句 if elif else

以下代码不再重复 #!/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个空格,这个问题不就没有争议了吗?不知道对不对。

 

3.循环语句

#循环语句
for a in [1,2,3,[4,5]]:
    print a

技术分享

循环语句,有点类似C#和Java的foreach 循环。 其中list中的子元素还可以是list, index下标也是从0开始

 

4.函数定义 def

#函数定义  是否为闰年
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,b

print square_sum(1,3)

技术分享

return可以返回多个值,这个挺有特点,Java语言里应该不可以。

 

#将表b作为参数传递给函数
b=[1,2,3]

def change_list(b):
    b[0] += 1
    return b
print change_list(b)
print b

技术分享

通过表索引操作表,表b的值发生改变。

 

#值传递 原整数a的值不发生变化  试着将函数的参数换成b或者c就可以理解了。
a = 1
def change_a(a):
    a = a + 1
    return a
print "函数的返回值是:",change_a(a)
print "原整数a的值是:",a

技术分享

 

5.类定义 面向对象

#定义一个父类 鸟类
#类中成员方法的第一个参数必须是调用该方法的对象本身
#习惯上使用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_reproduction
print summer.move(1,2)

技术分享

 

6.继承

子类继承父类

#子类小鸡继承父类 鸟类 (单继承)
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_feather
print summer.move(2,3)
print dir(summer)  #dir() 用来查询一个类或者对象的所有属性

 

7.增强类中对运算支持

#自定义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])

技术分享

 

8.字典类的使用

#词典(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的值 list
print dic.values()  #返回所有value的值 list
print dic.items()   #返回dic所有的元素
###删除方法###
del dic[name]     #del 是python的关键字 用于删除对象
print dic
###删除元素###
print dic.clear()   #清空dic,变为空的词典{}

技术分享

python初体验之基础语法(一)

标签:

原文地址:http://www.cnblogs.com/sphere/p/4701528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!