Python 摸索(一) class的初步学习

来源:互联网 发布:socket 编程实例 编辑:程序博客网 时间:2024/05/22 05:07

学习站点:Python v2.7.5 documentation

今天第一天实习,还不算很尴尬,感觉不错。第一天果断打了酱油,导师没给什么东西,所以就自己学学喜欢的Python。。。

=======================================================

这是我自己写的一个HockeyPlayer的小程序,能够增加,显示,搜索,退出的小功能。

Player.py

class Player:    id = 0    first = None    last = None    pos = None    def create(self,id,first,last,pos):        self.id = id        self.first = first        self.last = last        self.pos = pos

HockeyPlayer.py

__author__="ouyang"__date__ ="$2012-10-9 15:45:33$"from Player import PlayerplayerList = []def MakeSelection():    selectionSet=['1','2','3','4']    print "Press 1,2,3,4 to select the choice follow:"    while True:        selection = raw_input("1-add a player 2-search a player 3-show player 4-quit:");        if(selection not in selectionSet):            print "there is not this choice ..."        else:            if selection == '1':                addPlayer()            elif selection == '2':                search()            elif selection == '3':                showPlayers()            else:                print "bye bye"                breakdef addPlayer():    addNew = 'Y'    while addNew.upper() == 'Y':        id = len(playerList)        first = raw_input("Fist name :")        last = raw_input("Last name :")        pos = raw_input("Position :")        player = Player()        player.create(id, first, last, pos)        playerList.append(player)        addNew = raw_input("Add another? (Y or N) :")def showPlayers():    for player in playerList:        print "Here is %d %s %s %s" % (player.id,player.first,player.last,player.pos)def search():    first = raw_input("Fist name :")    last = raw_input("Last name :")    if len(playerList) == 0:        print "No man here..."    for player in playerList:        if player.first == first or player.last == last :            print "%s %s int the %s" %(player.first,player.last,player.pos)        else:            print "No this man..."if __name__ == "__main__":    MakeSelection()

小结:

1.Python的模块是最高级别的组织单位,能够实现代码重用,命名空间划分,数据共享。每个模块都会有个__name__的属性,这个__name__取决于这个模块怎么被使用,如果是被当成主程序使用,那么__name__ == "__main__",如果被import,那么它该叫啥名就叫啥名,如import sys那么sys的__name__ == "sys"。

2.import 和 from import,用import sys,那么导入这个模块后用sys模块的某个子单位如path,就应该这么用sys.path,如果用from sys import path ,就直接能够使用path而不是sys.path。虽然后者看起来方便,但是命名空间就混乱了,如果本程序中也有个path,那么解释器只认这个主程序的path,其它的path不管,导致代码逻辑功能错误。即使我们可以用from sys import path as myPath 来区分开,但是我还是建议用import sys,然后老老实实sys.path,这样子也容易阅读。

3.在我们class Player: 之后,怎么对这Player使用呢?

  C++中是:Player *a = new Player();

  Java中是:player a = new Player(); 

  Python中是:player = Player()   #连分号都没有

4.and  or 的使用代替了&&和||

5.True False 大写开头哦~ 

6.如何写带参数的print?

        print "Here is %d %s %s %s" % (player.id,player.first,player.last,player.pos)

7.读取一行数据:raw_input,实际上它和input没区别,input也是用raw_input实现的。

     用法:str = raw_input("please input a str:");