我会努力工作,提高测试技能。

发布新日志

  • python学习笔记--Sprite

    2014-07-03 22:13:26

    Sprite:精灵,即一个会动的图片。

    1、两个成员变量 

       1self.image=要显示图片的Surface

       2self.rect = 显示Surface的区域,

     

    self.image = self.image.load(image_file)

     

    self.rect = self.image.get_rect()

     

    2move()方法

    self.rect = self.rect.move(self.speed)

     

    speed是一个二维数组,包括x坐标和y坐标。

     

    3、获取随机速度

    From random import *

    speed = [choice([-2,2]),choice([-2,2])]

     

    4clock.tick(30):表示每秒30的帧率。

    5clock.get_fps():获取每秒的帧率。

     

  • python学习笔记--pygame

    2014-07-03 22:11:57

    1、使用pygame

         import pygame

    2、创建一个窗口

        screen = pygame.display.set_mode([640,480])

    3、给窗口添加颜色

       screen.fill([R,G,B]) 

    4、复制图片到窗口中

     my_ball = pygame.image.load("xxx.jpg")

     screen.blit(my_ball,[x,y])

    5、画矩形的方法

     pygame.draw.rect(screen,[255,255,255],[x,y,190,190],0)

    6、连接一串点成一条线的方法

    Pygame.draw.lines(screen,[0,0,0],False,plotPoints,1)

    7、画圆的方法

    Pygame.draw.circle(screen,[255,0,0],[100,100],30,0)

  • python学习笔记--音乐播放

    2014-07-03 22:10:50

    1、引入sound

     import pygame,sys

     pygame.init()

      pygame.mixer.init()

    2、创建sound object

        .wav  splat = pyame.mixer.Sound("xx.wav")

                      splat.play()

       .mp3 .wma .ogg : pygame.mixer.music.load("xxx.mp3")

                                       pygame.mixer.music.play()

    3、控制sound大小:

        pygame.mixer.music.set_volume(xxx)    xxx0-1之间的浮点数。

    4、控制play次数:

       pygame.mixer.music.play(xxx)  xxx为大于0的整数 ,若为-1,表示永远播放。

    5、控制song逐渐停止:

       done = True

        pygame.mixer.music.fadeout(xxx)  xxx毫秒为单位

    6、确定music是否还在播放:

        

    If not pygame.mixer.music.get_busy():

        splat.play()

        pygame.time.delay(1000)

        sys.exit()

  • python学习笔记--输出格式

    2014-07-03 22:09:56

    1、添加新行

      Print

    2、换行显示

    Print "Hello \nWorld"

    3、同行分隔显示,8个字符一组

    Print "Helllo \tWorld"

    4\输出

    Print "hi\\there"

    5、插入字符串变量

      方法1

     name= 'Warren Sande'

     print 'My name is', name, 'and I wrote this book.'

      方法2

    name= 'Warren Sande'

    Print 'My name is %s and I wrote this book.' % name

    6、插入整数变量:%d%i

    number = 12.67

    print  %i '% number

    12

     注意:1、整数格式转换,舍去小数点后,接近最近的最小整数。浮点数格式转换,会四舍五入。

                  2int()是转换数值的输出结果,这种格式转换没有改变数值本身。

    7、插入浮点数变量:%f oF%

    number = 12.3456

    print  '%f' % number

    12.345600

    print  '%.2F'% number

    12.35

    注意:1%.nf  n指小数点后几位数字。

                 2、如果是负数,%f会一直输出负号(-)。

                 3、如果是正数,需要输出正号(+),在%后加一个正号(+)。例如:'%+f'

    8、插入自然数变量:%e %E

     number = 12.3456

     print '%e' % number

     1.234560e+01

     print '%.3e' % number

     1.235e+01

     注意:1、一般%e是输出小数点后6位数字。

                   2、若需要改变小数点后输出的几位数字,在%后加.n

    9、输出%符号

     print  'I got 90% on my math test!'

    10、多个字符串连接起来,使用加号(+)符号。

    11、分割字符串,使用split()

         注意:split括号内,填写的符号就是默认的分割依据。若是默认为空,就是以空格为分割依据。

    12、连接字符串,使用join()

    word_list()=['My','name','is','Warren']

    long_string=' ',join(word_list)

    long_string

    'My name is Warren'

    13、查询字符串,使用startswith()endswith()

    name = ''Frankenstein'

    name.startswith('F')

    True

    name.endswith('n')

    True

    14、删除字符串的部分,使用strip()

    name = 'Warren Sande'

    short_name = name.strip('de')

    short_name

    'Warren San'

    15、转换字符大小写,upper()lower()

    string1 = "Hello "

    string2 = string1.lower()

    print string2

    hello

     

     

     

  • python学习笔记--字符显示

    2014-07-03 22:06:49

    1Windows下的python编辑器是IDLE,可以加亮语法。

          编辑器中大小写敏感。

          help()  括号内的部分表示需要获取的帮助。

         编辑器编译步骤:菜单 - edit - run scriptctrl-F5.

    2、字符串

          使用单引号,双引号指示字符串,使用完全相同。

          使用三引号,可以指示一个多行的字符串。三引号内可以自由的使用单引号或双引号。

          转义符

          使用反斜杠\'指示单引号。或者使用"what's your name?"等价于what\' your name?''

          使用\\指示反斜杠本身。

          自然字符串:通 过给字符串加上前缀rR来指定。

          Unicode字符串:如果使用你的母语,就要在字符串前加上前缀uU。字符串内是你的母语。

    3、标识符的命名

         变量是标识符的例子。命名标识符的规则:

         标识符的第一个字符必须是字母表中的字母(大写或小写)或一个下划线(_)。

         标识符名称的其他部分可以由字母(大写或小写)、下划线(_)或数字(0-9)组成。

         标识符是对大小写敏感的。例如myname和MyName

  • python学习笔记---事件

    2014-07-03 22:03:49

    1Keyboard events

          KEYDOWN

          KEYUP

    2key names

          K_a,K_b(for letter keys)

          K_SPACE

          K_ESCAPE

    3Mouse events

          MOUSEMOTION

          MOUSEBUTTONUP

         MOUSEBUTTONDOWN

    4event.posthe positionx and y coordinates

    5Timer events

          pygame.time.set_timer(EVENT_NUMBER,interval)

         获取pygame的已用事件:

         >> import pygame

         >>pygame.USEREVENT

         输出结果:24

         说明已用事件从023,可用的userevent24开始。

         获取pygame的最大事件类型:

         >>pygame.NUMEVENTS

         输出结果:32

         说明可用的事件从031,那么可用的userevent2431

         通常使用方法:

         Pygame.time.set_timer(pygame.USEREVENT,1000)

         备注:1000是指毫秒为单位。

    6\:是line-contination character.使用这个符号可以用两行显示,但是还是表示在同一行的意思。一般这个符号在        一行结尾使用,但是这个符号后不能有空格。

      7display text的对象:

         font = pygame.font.Font(None,50)

        score_text = font.render(str(points),1,(0,0,0))

        textpos = [10,10]

        screen.blit(score_text,textpos)

     

    8、创建一个surface

        image_surface = pygame.surface.Surface([100,20])

        image_surface.fill([0,0,0])

        self.image = image_surface.convert()

        self.rect = self.image.get_rect()

        self.rect.left,self.rect.top = location

    9paddle:一段代码只处理一个事件。比如创建8surface

     

  • 安装pygame后运行引起的'module' object has no attribute 'init'

    2014-03-25 13:42:54

    今天学习pygame,安装pygame后,敲入书上第一个实例
     
    源码:
    import pygame
    pygame.init()
    screen = pygame.display.set_mode([640,480])
    并保存为pygame.py文件
     
    运行:
    提示'module' object has no attribute 'init'
     
    查问题:
    第一步:先确定pygame是否安装成功。
    在shell中敲入命令行:
    import pygame
    print pygame.ver
    确定安装的pygame版本,此时能显示,表示pygame安装成功。
     
    第二步:安装路径中文件是否缺失:
    找到 PYTHON-SITEROOT\Lib\site-packages\pygame\ 这个目录(PYTHON-SITEROOT是python的安装目录)看下面有没有除__init__.py之外的文件,然后寻找一个叫base.pyd的文件,因为,你在做了import pygame的时候其实是导入的这个文件,你调用pygame.init()也是调用的pygame.base.init(),如果这个文件不存在,那肯定会
    AttributeError: 'module' object has no attribute 'init'的

    如果没问题,去查看下tests\base_test.py 有没有这方法:
    def __PYGAMEinit__(): #called automatically by pygame.init()

    如果没有,证明你的pygame装错了。
     
    经证明均正确。
     
    第三步:
    源码改为:import pygame
    F5运行
    在shell中敲入命令print pygame
    显示
    >>> print pygame
    <module 'pygame' from 'C:\Python27\learn\pygame.pyc'>
    >>>
    说明导入的pygame路径在'C:\Python27\learn\pygame.pyc‘。
     
    此时发现与第二步pygame的安装路径不一致,正确的路径应该是:
    <module 'pygame' from 'C:\Python27\lib\site-packages\pygame\__init__.pyc'>
     
    说明pygame引入路径不正确,查找learn下存在pygame.pyc与lib下的pygame重名,需要修改这个文件的名字。
     
    修改保存文件的名字,此时运行ok。问题解决。
     
     
  • 导入module方法的两种方式

    2014-03-24 15:07:16

      这是一个导入名为time的module实例。
    源码:
    import time
    print "How"
    time.sleep(2)
    print "are"
    time.sleep(2)
    print "you"
    time.sleep(2)
    print "today?"
     
    改后:
    print "How"
    from time import sleep
    sleep(2)
    print "are"
    from time import sleep
    sleep(2)
    print "you"
    from time import sleep
    sleep(2)
    print "today?"
     
    对比:一种是导入module:import time,然后使用time.sleep()方法。
    一种是from module名 import 方法名,然后直接调用方法。
     
    from module import method:从一个module中调用它的method,当不知道具体method名时,可用星号“*”代替。不建议用*的方法。
     
  • 如何输出python中类的方法的返回值?

    2014-03-24 14:45:32

    #定义三角形类
    class Triangle: 
         def __init__(self,width,height):
             self.width = width
             self.height = height
            
         def getArea(self):
             area = self.width * self.height / 2.0
             return area
    #定义正方形类
    class Square:  
         def __init__(self,size):
             self.size = size
         def getArea(self):
             area = self.size  self.size
             return area
     
    # 初始化三角形类,建立实例myTriangle
    myTriangle = Triangle(4,5)
    #输出实例myTriangle的宽、高
    print myTriangle.width
    print myTriangle.height
    输出实例myTriangle的方法getArea()的返回值area
    print myTriangle.getArea()  #注意不能用myTriangle.getArea()  代替,无输出结果显示
    或者
    # 获取三角形类中的方法getArea()的返回值赋值给result
    result = myTriangle.getArea()
    # 输出getArea()的返回值area
    print result
     
    mySquare = Square(7)
    print mySquare.size
    print mySquare.getArea()
  • TypeError: this constructor takes no arguments

    2014-03-21 18:34:29

    源码:
    class Ball:
        def _init_(self,size,color,direction):
            self.color = color
            self.size = size
            self.direction = direction

        def _str_(self):
            msg = "Hi,I'm a " + self.size+ " " + self.color + " ball!"
            return msg
    myBall = Ball("red","small","down")
    print myBall

    运行:
    >>> ================================ RESTART ================================
    >>>
    Traceback (most recent call last):
      File "C:/Python27/learn/_str_.PY", line 12, in <module>
        myBall = Ball("red","small","down")
    TypeError: this constructor takes no arguments
     
    问题:
    init 和 str两边的下划线,英文应该是两个下划线。
Open Toolbar