精华内容
下载资源
问答
  • Python标准库

    2018-06-13 19:53:43
    数学处理:NumPy扩展提供大量与许多标准数学的接口。 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 数据库编程:程序员可通过遵循Python DB...
  • python-pygame学习笔记

    千次阅读 2020-09-27 21:21:11
    理解PygamePython最经典的2D游戏开发第三方库,也...• sys是Python标准库 • sys提供Python运行时环境变量的操控 • sys.exit()用于退出结束游戏并退出 pygame.init() 对Pygame内部各功能模块进行初始化创建及

    理解Pygame

    • Python最经典的2D游戏开发第三方库,也支持3D游戏开发
    • Pygame适合用于游戏逻辑验证、游戏入门及系统演示验证
    • Pygame是一种游戏开发引擎,基本逻辑具有参考价值
    • Pygame有些"过时",但永远"不过时"
    • 使用Pygame可以开发出优秀的游戏!
    在这里插入图片描述

    sys库

    • sys是Python的标准库
    • sys提供Python运行时环境变量的操控
    • sys.exit()用于退出结束游戏并退出
    在这里插入图片描述

    pygame.init()

    对Pygame内部各功能模块进行初始化创建及
    变量设置,默认调用
    在这里插入图片描述

    pygame.display.set_mode(size)

    初始化显示窗口,第一个参数size是一个二
    值元组,分别表示窗口的宽度和高度
    在这里插入图片描述

    pygame.display.set_caption(title)

    设置显示窗口的标题内容,参数title是一个字符串类型
    在这里插入图片描述

    while True:

    无限循环,直到Python运行时退出结束

    在这里插入图片描述

    pygame.event.get()

    从Pygame的事件队列中取出事件,并从队列
    中删除该事件,例如:键盘按下是一个事件。
    在这里插入图片描述

    event.type pygame.QUIT

    获得事件类型,并逐类响应;pygame.QUIT
    是Pygame中定义的退出事件常量
    在这里插入图片描述

    pygame.display.update()

    对显示窗口进行更新,默认窗口全部重绘
    在这里插入图片描述
    moveBall1.py(壁球小游戏)

    import pygame,sys
    pygame.init()
    size=width,height=600,400
    screen=pygame.display.set_mode(size)
    pygame.display.set_caption("小球碰撞")
    color=60,63,65
    screen.fill(color)
    ball=pygame.image.load("pic/ball.png")
    ball_rect=ball.get_rect()
    speed=[1,1]
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
        ball_rect=ball_rect.move(speed[0],speed[1])
        if ball_rect.left<=0 or ball_rect.right>=width:
            speed[0]= -speed[0]
        if ball_rect.top<=0 or ball_rect.bottom>=height:
            speed[1] = -speed[1]
    
        screen.fill(color)
        screen.blit(ball,ball_rect)
        pygame.display.update()
    
    
    pygame.time.Clock()

    创建一个Clock对象,用于操作时间
    在这里插入图片描述

    clock.tick(framerate)

    控制帧速度,即窗口刷新速度,例如:
    clock.tick(100)表示每秒钟100次帧刷新
    视频中每次展示的静态图像称为帧
    在这里插入图片描述
    moveBall2.py

    import pygame,sys
    pygame.init()
    size = width, height = 600, 400
    speed = [1,1]
    BLACK = 0, 0, 0
    screen = pygame.display.set_mode(size)
    pygame.display.set_caption("Pygame壁球")
    ball = pygame.image.load("PYG02‐ball.gif")
    ballrect = ball.get_rect()
    fps = 300
    fclock = pygame.time.Clock()
    while True:
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    sys.exit()
    elif event.type == pygame.KEYDOWN:
    if event.key == pygame.K_LEFT:
    speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0])1)*int(speed[0]/abs(speed[0]))
    elif event.key == pygame.K_RIGHT:
    speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0]1
    elif event.key == pygame.K_UP:
    speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1]1
    elif event.key == pygame.K_DOWN:
    speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1])1)*int(speed[1]/abs(speed[1]))
    ballrect = ballrect.move(speed)
    if ballrect.left < 0 or ballrect.right > width:
    speed[0] = ‐ speed[0]
    if ballrect.top < 0 or ballrect.bottom > height:
    speed[1] = ‐ speed[1]
    screen.fill(BLACK)
    screen.blit(ball, ballrect)
    pygame.display.update()
    fclock.tick(fps)
    

    Pygame事件处理机制

    Pygame事件处理机制简介

    事件处理需求
    • 响应用户键盘、鼠标等外设操作
    • 响应屏幕尺寸和模式变化
    • 响应游戏情节的特定触发条件
    • 产生一些触发条件
    Pygame事件队列在这里插入图片描述
    Pygame事件
    pygame.event.EventType
    • 事件本质上是一种封装后的数据类型(对象)
    • EventType是Pygame的一个类,表示事件类型
    • 事件类型只有属性,没有方法
    • 用户可自定义新的事件类型
    Pygame事件处理函数
    键盘事件及类型的使用
    鼠标事件及类型的使用
    壁球小游戏(鼠标型)
    事件类型及属性
    在这里插入图片描述
    事件处理的重要函数
    在这里插入图片描述

    键盘事件及类型的使用

    键盘事件及属性
    在这里插入图片描述
    按键的常量名称
    event.key在这里插入图片描述
    按键的修饰符
    在这里插入图片描述

    鼠标事件及类型的使用

    鼠标事件及属性
    在这里插入图片描述
    e.event.MOUSEMOTION 鼠标移动事件
    • event.pos 鼠标当前坐标值(x,y),相对于窗口左上角
    • event.rel 鼠标相对运动距离(X,Y),相对于上次事件
    • event.buttons 鼠标按钮状态(a,b,c),对应于鼠标的三个键

    pygame.event.MOUSEBUTTONUP 鼠标键释放事件
    • event.pos 鼠标当前坐标值(x,y),相对于窗口左上角
    • event.button 鼠标按下键编号n 取值 0/1/2,分别对应三个键

    pygame.event.MOUSEBUTTONDOWN 鼠标键按下事件
    • event.pos 鼠标当前坐标值(x,y),相对于窗口左上角
    • event.button 鼠标按下键编号n 取值为整数,左键为1,右键为3,设备相关

    import pygame,sys
    pygame.init()
    size=width,height=600,400
    screen=pygame.display.set_mode(size)
    pygame.display.set_caption("pygame事件处理")
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
            elif event.type==pygame.KEYDOWN:
                if event.unicode=="":
                    print("[KEYDOWN]:","#",event.key,event.mod)
                else:
                    print("[KEYDOWN]:",event.unicode,event.key,event.mod)
            elif event.type==pygame.MOUSEMOTION:
                 print("[MOUSEMOTTON]",event.pos,event.rel,event.buttons)
            elif event.type==pygame.MOUSEBUTTONUP:
                print("[MOUSEBUTTONUP]",event.pos,event.button)
            elif event.type==pygame.MOUSEBUTTONDOWN:
                print("[MOUSEBUTTONDOWN",event.pos,event.button)
        pygame.display.update()
    

    对小球弹跳进行优化

    import pygame, sys
    
    pygame.init()
    vInfo = pygame.display.Info()
    # 设置屏幕显示为全屏
    # size=width,height=vInfo.current_w,vInfo.current_h
    # screen=pygame.display.set_mode(size,pygame.FULLSCREEN)
    size = width, height = 600, 400
    screen = pygame.display.set_mode(size, pygame.RESIZABLE)
    # 设置屏幕可改变
    pygame.display.set_caption("小球碰撞")
    color = 60, 63, 65
    screen.fill(color)
    ball = pygame.image.load("pic/ball.png")
    ball_rect = ball.get_rect();
    icon = pygame.image.load("pic/dragon.png")
    pygame.display.set_icon(icon)
    
    speed = [1, 1]
    fps = 300
    fClock = pygame.time.Clock()
    still = False
    
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
    
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) - 1) * int(speed[0] / abs(speed[0]))
                elif event.key == pygame.K_RIGHT:
                    speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1
                elif event.key == pygame.K_UP:
                    speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1
                elif event.key == pygame.K_DOWN:
                    speed[1] = speed[1] if speed[1] == 0 else ((abs(speed[1]) - 1) * int(abs(speed[1]) / speed[1]))
                elif event.key == pygame.K_ESCAPE:
                    sys.exit()
            elif event.type == pygame.VIDEORESIZE:  # 当屏幕进行拉缩时
                size = width, height = event.size[0], event.size[1]
                screen = pygame.display.set_mode(size, pygame.RESIZABLE)
            elif event.type == pygame.MOUSEBUTTONDOWN:
                if event.button == 1:
                    still = True
            elif event.type == pygame.MOUSEBUTTONUP:
                still = False
                if event.button == 1:
                    ball_rect = ball_rect.move(event.pos[0] - ball_rect.left, event.pos[1] - ball_rect.top)
            elif event.type == pygame.MOUSEMOTION:
                if event.buttons[0] == 1:
                    ball_rect = ball_rect.move(event.pos[0] - ball_rect.left, event.pos[1] - ball_rect.top)
        if pygame.display.get_active() and not still:  # 当屏幕活跃时(未缩小为最小化)
            ball_rect = ball_rect.move(speed[0], speed[1])
        if (ball_rect.left < 0 or ball_rect.right > width):
            speed[0] = -speed[0]
            if ball_rect.right > width and ball_rect.right + speed[0] > ball_rect.right:
                speed[0] = -speed[0]
        if (ball_rect.top < 0 or ball_rect.bottom >height):
            speed[1] = -speed[1]
            if ball_rect.bottom > height and ball_rect.bottom + speed[1] >ball_rect.bottom:
                speed[1] = -speed[1]
            if ball_rect.top<0 and ball_rect.top+speed[1]<ball_rect.top:
                speed[1] = -speed[1]
        screen.fill(color)
        screen.blit(ball, ball_rect)
        pygame.display.update()
        fClock.tick(fps)
    
    
    Pygame事件处理函数

    事件处理的重要函数
    在这里插入图片描述
    pygame.event.get()
    在这里插入图片描述
    pygame.event.poll()
    在这里插入图片描述
    pygame.event.clear()
    在这里插入图片描述
    Pygame事件队列
    在这里插入图片描述
    pygame.event.set_blocked(type or typelist)
    •控制哪些类型事件不允许被保存到事件队列中

    pygame.event.set_allowed(type or typelist)
    •控制哪些类型事件允许被保存到事件队列中

    pygame.event.get_blocked(type)
    •测试某个事件类型是否被事件队列所禁止
    •如果事件类型被禁止,则返回True,否则返回False

    pygame.event.post(Event)
    •产生一个事件,并将其放入事件队列
    •一般用于放置用户自定义事件(pygame.USEREVENT)
    •也可以用于放置系统定义事件(如鼠标或键盘等),给定参数

    pygame.event.Event(type, dict)
    •创建一个给定类型的事件
    •其中,事件的属性和值采用字典类型复制,属性名采用字符串形式
    •如果创建已有事件,属性需要一致

    import pygame, sys
    
    pygame.init()
    screen = pygame.display.set_mode((600, 400))
    pygame.display.set_caption("pygame事件处理")
    fps = 12
    fclok = pygame.time.Clock()
    num = 10
    while True:
        uevent = pygame.event.Event(pygame.KEYDOWN, {"unicode": 123, "key": pygame.K_SPACE, "mod": pygame.KMOD_ALT})
        pygame.event.post(uevent)
        num = num + 1
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if event.unicode == "":
                    print("[KEYDOWN{}]".format(num), "#", event.key, event.mod)
                else:
                    print("[KEYDOW{}]".format(num), event.unicode, event.key, event.mod)
            pygame.display.update()
            fclok.tick(fps)
    
    
    Pygame色彩与绘图机制
    色彩表达

    Color类用于表达色彩,使用RGB或RGBA色彩模式,A可选
    Color类可以用色彩名字、RGBA值、HTML色彩格式等方式定义
    pygame.Color
    Color(name) 例如:Color(“grey”)
    Color(r,g,b,a) 例如:Color(190, 190, 190, 255)
    Color(rgbvalue) 例如:Color("#BEBEBEFF")
    • RGB色彩模式之外增加了第四维度:alpha通道
    • alpha通道表示不透明度,取值0-255,默认255
    • alpha通道值越大,不透明度越高,255表示不透明

    pygame.Color类

    pygame.Color.r 获得Color类的红色值r
    pygame.Color.g 获得Color类的绿色值g
    pygame.Color.b 获得Color类的蓝色值b
    pygame.Color.a 获得Color类的不透明度值a
    pygame.Color.normalize 将RGBA各通道值归一到0-1之间
    壁球小游戏(色彩型)
    在这里插入图片描述

    import pygame, sys
    def RGBChanel(a):
        return (0 if a<0 else (255 if a>255 else int(a)))
    pygame.init()
    vInfo = pygame.display.Info()
    # 设置屏幕显示为全屏
    # size=width,height=vInfo.current_w,vInfo.current_h
    # screen=pygame.display.set_mode(size,pygame.FULLSCREEN)
    size = width, height = 600, 400
    screen = pygame.display.set_mode(size, pygame.RESIZABLE)
    # 设置屏幕可改变
    pygame.display.set_caption("小球碰撞")
    color = 60, 63, 65
    screen.fill(color)
    ball = pygame.image.load("pic/ball.png")
    ball_rect = ball.get_rect();
    icon = pygame.image.load("pic/dragon.png")
    pygame.display.set_icon(icon)
    
    speed = [1, 1]
    fps = 300
    fClock = pygame.time.Clock()
    still = False
    bgcolor=pygame.Color("black")
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
    
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) - 1) * int(speed[0] / abs(speed[0]))
                elif event.key == pygame.K_RIGHT:
                    speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1
                elif event.key == pygame.K_UP:
                    speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1
                elif event.key == pygame.K_DOWN:
                    speed[1] = speed[1] if speed[1] == 0 else ((abs(speed[1]) - 1) * int(abs(speed[1]) / speed[1]))
                elif event.key == pygame.K_ESCAPE:
                    sys.exit()
            elif event.type == pygame.VIDEORESIZE:  # 当屏幕进行拉缩时
                size = width, height = event.size[0], event.size[1]
                screen = pygame.display.set_mode(size, pygame.RESIZABLE)
            elif event.type == pygame.MOUSEBUTTONDOWN:
                if event.button == 1:
                    still = True
            elif event.type == pygame.MOUSEBUTTONUP:
                still = False
                if event.button == 1:
                    ball_rect = ball_rect.move(event.pos[0] - ball_rect.left, event.pos[1] - ball_rect.top)
            elif event.type == pygame.MOUSEMOTION:
                if event.buttons[0] == 1:
                    ball_rect = ball_rect.move(event.pos[0] - ball_rect.left, event.pos[1] - ball_rect.top)
        if pygame.display.get_active() and not still:  # 当屏幕活跃时(未缩小为最小化)
            ball_rect = ball_rect.move(speed[0], speed[1])
        if (ball_rect.left < 0 or ball_rect.right > width):
            speed[0] = -speed[0]
            if ball_rect.right > width and ball_rect.right + speed[0] > ball_rect.right:
                speed[0] = -speed[0]
        if (ball_rect.top < 0 or ball_rect.bottom >height):
            speed[1] = -speed[1]
            if ball_rect.bottom > height and ball_rect.bottom + speed[1] > ball_rect.bottom:
                speed[1] = -speed[1]
        bgcolor.r=RGBChanel(ball_rect.left*255/width)
        bgcolor.g=RGBChanel(ball_rect.top*255/width)
        bgcolor.b=RGBChanel(min(speed[0],speed[1])*255/max(speed[0],speed[1],1))
        screen.fill(bgcolor)
        screen.blit(ball, ball_rect)
        pygame.display.update()
        fClock.tick(fps)
    
    
    图形绘制

    向屏幕上绘制一些简单的图形,如直线、圆形、椭圆等。任何一个图形绘制后,会返回一个矩形Rect类表示该形状
    在这里插入图片描述

    Rect类

    表达一个矩形区域的类,用于存储坐标和长度信息。Pygame利用Rect类来操作图形/图像等元素
    在这里插入图片描述
    Rect类提供了如下属性,返回一个数值或一个代表坐标的元组
    在这里插入图片描述
    Rect类提供了如下方法,用来操作Rect类
    在这里插入图片描述

    图形绘制

    pygame.draw
    在这里插入图片描述

    import pygame,sys
    from math import pi
    pygame.init()
    size=width,height=600,400
    screen=pygame.display.set_mode(size)
    pygame.display.set_caption("pygame图形绘制")
    WHITE=pygame.Color('white')
    GREEN=pygame.Color('green')
    GOLD=(255,251,0)
    RED=pygame.Color('red')
    elrect=pygame.draw.ellipse(screen,GREEN,(50,50,500,300),3)
    c1rect=pygame.draw.circle(screen,GOLD,(200,180),30,5)
    c2rect=pygame.draw.circle(screen,GOLD,(400,180),30)
    r1rect = pygame.draw.rect(screen, RED, (170,130, 60, 10), 3)
    r2rect = pygame.draw.rect(screen, RED, (370,130, 60, 10))
    plist = [(295,170), (285,250), (260,280), (340,280), (315,250), (305,170)]
    #l1rect = pygame.draw.lines(screen, GOLD, True, plist, 2)
    al1rect = pygame.draw.aalines(screen, GOLD, True, plist, 2)
    a1rect = pygame.draw.arc(screen, RED, (200,220,200,100), 1.4*pi, 1.9*pi, 3)
    while True:
        for event in pygame.event.get():
            if event.type==pygame.QUIT:
                sys.exit()
            pygame.display.update()
    
    
    
    
    
    
    

    在这里插入图片描述

    Pygame文字绘制机制

    文字绘制

    pygame.freetype
    向屏幕上绘制特定字体的文字。文字不能直接print() ,而是用像素根据字体点阵图绘制
    pygame.freetype是绘制文字的增强方法,建议使用必须额外增加import引用,如下:
    在这里插入图片描述
    系统中的字体
    在这里插入图片描述

    文字绘制机制简介

    在这里插入图片描述
    Font类
    在这里插入图片描述
    Font类的绘制方法(1)
    在这里插入图片描述
    在这里插入图片描述

    import pygame, sys
    import pygame.freetype
    import pygame, sys
    
    pygame.init()  # 对Pygame内部各功能模块进行初始化创建及变量设置,默认调用
    screen = pygame.display.set_mode((600, 400))  # 初始化显示窗口,第一个参数size是一个二值元组,分别表示窗口的宽度和高度
    pygame.display.set_caption("Pygame游戏绘制")  # 设置显示窗口标题设置显示窗口的标题内容,参数title是一个字符串类型
    GOLD = (255, 251, 0)
    f1=pygame.freetype.Font("c://Windows//Fonts//msyh.ttc",36)  # 微软雅黑
    # f1rect=f1.render_to(screen,(200,160),"知行合一",fgcolor=GOLD,size=50)
    f1 = pygame.freetype.Font('C://Windows//Fonts//msyh.ttc', 50)  # 微软雅黑
    f1surf, f1rect = f1.render("世界和平", fgcolor=GOLD, size=30)
    f1rect.left=200
    f1rect.top=160
    while True:  # 无限循环,直到Python运行时退出结束  # 微软雅黑
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()  # 用于退出结束游戏并退出
        screen.blit(f1surf, f1rect)
        pygame.display.update()  # 刷新窗体
    
    
    Font类的绘制方法(2)

    在这里插入图片描述

    Pygame绘图机制原理精髓

    理解Pygame的两个重要类型
    在这里插入图片描述
    主图层
    在这里插入图片描述
    文字壁球小游戏

    import pygame, sys
    import pygame.freetype
    
    pygame.init()
    size = width, height = 600, 400
    screen = pygame.display.set_mode(size)
    pygame.display.set_caption("小球碰撞")
    color = 60, 63, 65
    screen.fill(color)
    
    speed = [1, 1]
    GOLD = (255, 251, 0)
    RED = pygame.Color('red')
    pos = [230, 100]
    text = "世界和平"
    f1 = pygame.freetype.Font("C://Windows//Fonts//msyh.ttc", 36)
    # f1rect=f1.render_to(screen,pos,text,fgcolor=GOLD,size=60)
    f1surf, f1rect = f1.render("世界和平", fgcolor=GOLD, size=50)
    fps = 300
    
    fclock = pygame.time.Clock()
    
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if event.type == pygame.VIDEORESIZE:
                width = event.size[0]
                height = event.size[1]
                size = width, height
                screen = pygame.display.set_mode(size, pygame.RESIZABLE)
    
        if pos[0] <= 0 or pos[0] + f1rect.width >= width:
            speed[0] = -speed[0]
        if pos[1] <= 0 or pos[1] + f1rect.height >= height:
            speed[1] = -speed[1]
        pos[0] = pos[0] + speed[0]
        pos[1] = pos[1] + speed[1]
        screen.fill(color)
    
        # f1rect=f1.render_to(screen,pos,text,fgcolor=GOLD,size=50)
        f1surf, f1rect = f1.render(text, fgcolor=GOLD, size=50)
        screen.blit(f1surf, (pos[0], pos[1]))
        pygame.display.update()
        fclock.tick(fps)
    
    
    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    一.绘制Hello Pygame

    1.安装Pygame库,Pygame并不是和Python打包到一起,你需要独立安装它,安装命令如下:

    pip install pygame

    2.我们开始编写第一个Hello Pygame程序:

    import pygame
    from pygame.locals import *   

    3.定义我们绘制Hello Pygame时使用的字体:

    myfont = pygame.font.Font(None,60)

    4.定义颜色变量:

    blue = 0,0,255
    white = 255,255,255
    
    textImage  = myfont.render("Hello Pygame",True,white) #我们要绘制的文字

    5.要绘制文本,我们要清屏,进行绘制,然后再刷新显示:

    screen.fill(blue)
    screen.blit(textImage,(100,100))
    pygame.display.update()

    6.如果你现在运行程序,程序会立马闪退,所以我们需要设置一个延迟:

    while True:
        for event in pygame.event.get():
            if event.type in (QUIT,KEYDOWN):
                sys.exit()

    7.下面,我们来展示一下完整代码:

    import pygame
    import sys
    from pygame.locals import *
    white = 255,255,255
    blue = 0,0,200
    pygame.init()
    screen = pygame.display.set_mode((600,500))
    myfont = pygame.font.Font(None,60)
    textImage = myfont.render("Hello Pygame",True,white)
    
    while True:
        for event in pygame.event.get():
            if event.type in (QUIT,KEYDOWN):
                sys.exit()
        screen.fill(blue)
        screen.blit(textImage,(150,100))
        pygame.display.update()

     

    转载于:https://my.oschina.net/u/3444234/blog/1676706

    展开全文
  • python常用模块

    2019-05-06 14:36:00
    常用库 import pymysql import pillow import django import win32api import win32gui import win32con inport win32com import pygame import httplib ...标准库 import tkinter #3.X...
     
     
     
    常用库
    import pymysql
    import pillow
    import django
    import win32api
    import win32gui
    import win32con
    inport win32com
    import pygame
    import httplib

    import PyQt5   

    标准库

    import tkinter #3.X为tkinter;2.X为Tkinter

     

     

    import socket

    import sqlite3

    import ftplib
    import poplib
    import smtplib
    import randon

    import os

    import sys

    import time

    from threading import Thread

     

    转载于:https://www.cnblogs.com/pyvm/articles/10819479.html

    展开全文
  • 包含在标准Python库中。)。 PyOWM是用于OpenWeatherMap(OWM)Web API的客户端Python包装) 请求是一个简单而优雅的HTTP random is模块为各种发行版实现了伪随机数生成器 时间就是访问和转换 pygame是...
  • 这里摘抄官方文档,对比下pygame库Arcade有哪些优缺点: 优点: 更快地绘制静止状态的精灵。 支持Python 3类型标注。 粗的椭圆,弧和圆没有莫尔纹。 椭圆,圆弧和其他形状可以轻松旋转。 使用您在数学中学到的...

    这里摘抄官方文档,对比下Pygame库Arcade有哪些优缺点:

    前言

    Arcade库相对于Pygame库的优缺点

    优点:

    1. 更快地绘制静止状态的精灵。
    2. 支持Python 3类型标注。
    3. 粗的椭圆,弧和圆没有莫尔纹
    4. 椭圆,圆弧和其他形状可以轻松旋转。
    5. 使用您在数学中学到的标准坐标系。
    6. 具有针对平台游戏的内置物理引擎Pymunk
    7. 支持动画精灵。
    8. 命令的API文档更好。
    9. 命令名称是一致的。例如,要添加到sprite列表,请使用该 append()方法,就像Python中的其他列表一样。
    10. 参数和命令名称更加清晰。例如,用open_window代替set_mode。
    11. 比Pygame少的样板代码。
    12. 基本绘图不需要有关如何定义函数或类或如何执行循环的知识。
    13. 鼓励逻辑和显示代码分开。
    14. 在OpenGL 3+和Pyglet之上运行,而不是旧的SDL1库。
    15. 通过使用子画面列表,可以使用图形卡的加速来提高性能。
    16. 轻松缩放和旋转精灵和图形。
    17. 默认情况下,具有透明度的图像是透明的。无需额外的代码。
    18. 许多方法示例代码

    缺点

    1. 移动精灵较为缓慢。
    2. Python 2不支持支持。
    3. 需要OpenGL,因此不适用于Raspberry Pi。
    4. 更不好地支持屏幕上未显示的内存缓冲区中的像素操作。

    安装

    Arcade可在Windows,Mac OS X和Linux上运行,Arcade需要Python 3.6或更高版本。它不能在Python 2.x上运行。可以Windows系统、Linux系统、Mac系统下使用,那么可以选择适合您平台的说明:

    1. 在PyCharm中设置虚拟环境
    2. 在Windows上安装
    3. 在Mac上安装
    4. 在Linux上安装
    5. 从源安装

    Python安装

    这里是在Windows平台下进行使用,所以对应下载Python

    Python安装文件下载

     双击打开下载文件开始安装。

    Python安装界面

    同时按住键盘上Windows键加字幕R键弹出运行界面输入cmd运行命令行窗口验证Python运行环境是否安装成功。

    输入cmd运行命令行窗口

     

    验证Python运行环境是否搭建成功

    这里为了在开发过程中安装各种库时不影响Python运行环境采用Python虚拟环境,接下来安装虚拟环境 ,我们先安装最基础的包virtualenv,打开windows命令终端(cmd)安装虚拟环境 virtualenv。

    Python虚拟环境 virtualenv 安装

    pip3 install virtualenv
    虚拟环境virtualenv安装成功界面

    进入虚拟环境,先要进入cd到虚拟环境的位置的Scripts中,然后在激活(命令行窗口运行activate.bat文件)虚拟环境,则进入新建的虚拟环境中了。

    cd env_name\Scripts
    activate.bat
    进入虚拟环境并激活虚拟环境

     进入之后就可以通过pip3 命令安装需要各种框架依赖包了,且安装的包只在虚拟环境目录下,不会污染主运行环境。

    退出虚拟环境  deactivate.bat

    deactivate.bat
    退出虚拟环境

    通过上面的步骤其实我们就已经完成虚拟环境virtualenv的安装和使用了,发现需要记住每一个虚拟环境的目录,才能进入虚拟环境并操作,很麻烦,下面通过另一个配置来简化我们的使用。简化配置是安装virtualenvwrapper包,它是基于virtualenv的扩展包,扩展包括创建和删除虚拟环境以及管理开发工作流的功能。

    如果是Windows系统则安装virtualenvwrapper-win:

    pip3 install virtualenvwrapper-win

     

    Windows系统则安装virtualenvwrapper-win
    验证virtualenvwrapper-win是否安装成功

     

    如果是Linux 系统则安装virtualenvwrapper:

    pip3 install virtualenvwrapper

    Windows 系统安装后需要设置环境变量才可使用,不过相比Linux下的设置已经显得相当的快捷。我们只需要创建两个环境变量:WORKON_HOME和PROJECT_HOME,路径设定完成后就可以开始使用了。这里我们主要以Windows系统为主,所以有需要了解Linux系统操作的同学可以评论留言。

    参数说明:

    1. WORKON_HOME:表示存放虚拟环境的位置
    2. PROJECT_HOME:表示项目工作目录的位置(使用mkproject命令时会用到)

    配置一个专门存放虚拟环境的安装目录WORKON_HOME。通过上面的步骤,创建虚拟环境,默认放在C:\Users\用户名\Envs目录中,这样有时候可能不满足我们的需求,比如我们想把项目放在其他位置,这样就需要我们自己配置一下环境变量。

    新建要存放大文件夹:如 C:\Users\Public\envs

    存放虚拟环境目录

    配置电脑系统环境变量,->新建系统变量 -> 变量名:WORKON_HOME ->指定路径:C:\Users\Public\envs

    配置WORKON_HOME环境变量

     

    通过设置WORKON_HOME路径,就给我们的Python虚拟环境指定了一个存放位置,再次运行workon,不在提示没有该目录了,说明配置成功。

    再次运行workon

    虚拟环境 virtualenvwrapper 的使用方法

    这里仅重点介绍virtualenvwrapper的常用命令。

    mkvirtualenv:

    在WORKON_HOME目录中创建一个新的虚拟环境。

    mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME

    参数说明:

    1. -i:指定一个或多个包
    2. -a:指定一个项目目录,用于将该虚拟环境绑定至一个现有项目
    3. -r:指定一个requirements文件,一般是由pip freeze所生成的,里面包括了需要用到的所有包
    4. virtualenv options:参数将直接传递给virtualenv,详情参阅virtualenv官方文档

    mkvirtualenv env_name会创建一个名为env的虚拟环境并激活,之后pip安装的所有包都仅仅存在于这个环境中。

    创建一个虚拟环境env_name,并且自动激活

    mkproject:

    在PROJECT_HOME目录中创建项目目录同时在WORKON_HOME目录下创建同名虚拟环境。

    mkproject [-f | --force] [-t template] [virtualenv_options] ENVNAME

    mkproject project_name会创建一个名为project_name的项目目录,同时创建同名的虚拟环境,当前虚拟环境会被切换到新的虚拟环境,当前工作目录也会改变为新的项目目录。

    mkproject ​​​​​​创建项目同时创建虚同名拟环境

    setvirtualenvproject:

    将现有的虚拟环境绑定到现有的项目。

    setvirtualenvproject [virtualenv_path project_path]

    不指定参数情况下默认为当前虚拟环境和当前目录作为参数,可以实现单个项目可以绑定多个虚拟环境,从而达到在不同的Python版本或依赖之间切换以进行测试。

    rmvirtualenv:

    删除WORKON_HOME中的虚拟环境。

    rmvirtualenv ENVNAME

    例如rmvirtualenv env_name将会删除虚拟环境env_name

    rmvirtualenv删除虚拟环境

    workon:

    列出所有虚拟环境或更改当前工作中的虚拟环境。

    workon [(-c|--cd)|(-n|--no-cd)] [environment_name|"."]
    1. 命令workon会列出所有可用的虚拟环境
    2. 命令workon env_name将会切换当前虚拟环境到虚拟环境env_name
    workon查看虚拟环境与切换虚拟环境

    deactivate:

    退出当前虚拟环境。

    deactivate
    deactivate退出虚拟环境

    还有许多其他的命令,详情参阅virtualenvwrapper 5.0.1.dev2,以下仅列出一部分:

    1. mktmpenv:创建一个临时的虚拟环境,停用后将会自动被清除
    2. lsvirtualenv:列出所有可用环境
    3. wipeenv:删除当前虚拟环境中所有已安装的第三方软件包

    安装 Arcade

    创建虚拟环境arcade_env,以便以后在该虚拟环境下开发。

    安装arcade_env虚拟环境

    arcade_env虚拟环境下安装arcade。

    arcade安装成功
    发现两个环境下的包并不相同

    编写简单测试代码测试arcade包是否安装成功,这里使用的IDE是Visual Studio Code,关于IDE的使用这里不做详述,如有IDE使用问题评论区留言。

    import arcade
    
    SCREEN_WIDTH = 800
    SCREEN_HEIGHT = 600
    SCREEN_TITLE = "Arcade包安装测试"
    
    class MyGame(arcade.Window):
        def __init__(self, width, height, title):
            super().__init__(width, height, title)
            arcade.set_background_color(arcade.color.AMAZON)
    
        def on_draw(self):
            arcade.start_render()
    
    def main():
        game = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
        arcade.run()
    
    if __name__ == "__main__":
        main()
    运行环境为安装的虚拟环境(arcade_env)
    Arcade简单界面运行成功

    至此Arcade包在虚拟环境的安装测试完成。

    更多教程请相关系列内容

    展开全文
  • 使用python标准库os的system()函数调用控制台。 比如批量安装 numpy,matplotlib,pillow,sklearn,requests,jieba,beautifulsoup4,wheel,pyinstaller,django,flask,werobot,networkx,sympy,pandaspyqt5,pyopengl,pypdf...
  • pygame库的安装 pip install pygame ...import pygame,sys #引入pygame和sys(python标准库pygame.init() #初始化模块创建及变量及设置,默认调用 screen = pygame.display.set_mode((600,400)) #初...
  • pi3d简介 ... 是标准测试的视频,介绍了pi3d的功能,这也是彼得·法雷尔(Peter ... pi3d模块可在Raspberry Pi以外的平台上运行(在Windows上使用pygame,在Linux上直接使用X服务器,在Android上使用python-for-andro
  • 标准库Python默认自带的库,如time库、random库、turtle库等,而第三方库是需要我们去下载并安装到Python的安装目录下的库,如requests库、numpy库、matplotlib库、Pygame库等。就类似于标准库是家中已经有的工具...
  • Python中有各种各样的库,有Python自带的标准库,还有许多对三方库,许多时候都要应用到第三方库,这里分享第三方库的安装知识 1:pip 安装 在Python中,许多库都可以通过pip这个指令来安装,十分方便迅捷。 例如,...
  • pygame来编写简单的游戏

    千次阅读 2019-07-17 09:55:09
    import pygame, sys # 引入pygame sys (sys是标准库,提供python运行时环境变量的操控) pygame.init() # 初始化 对pygame内部各功能模块进行初始化创建及变量设置,默认调用 icon = pygame.image.load("img2.jpg") ...
  • Pygame游戏入门v1-最小开发框架

    千次阅读 2019-04-04 19:02:40
    (1) Pygame最小开发框架 1.引入pygame和sys 2.初始化init()及设置 ...sys是Python标准库 sys提供Python运行时环境变量的操控 sys.exit()用于退出结束游戏并退出 pygame.init()对Pygame内部各功能模块进行...
  • sys是Python标准库 sys.exit()用于结束游戏并退出 pygame.init()初始化创建 screen = pygame.display.set_mode((600,400))窗口设置 pygame.displa.set_caption(“Python游戏之旅”)标题 图像.get_rect()返回一个覆盖...
  • 1.打字游戏的概述: ...random和time工具包是python标准库,不需要安装,pygame是第三方库,需要自己安装,安装的方式:win+r打开cmd命令提示符下面直接输入:pip install pygame后按回车,等进度条跑完回到c
  • 首先,用Pip安装pygamepygame zero两个:pip install pygamepip install pygame zero第2章在编程猫海龟编辑器下的代码如下:import pgzrun WIDTH = 800 HEIGHT = 600 x = WIDTH/2 y = HEIGHT/2 speed_x = 3 ...
  • pathlib:(Python3.4+ 标准库)跨平台的、面向对象的路径操作库。 python-magic:文件类型检测的第三方库 libmagic 的 Python 接口。 Unipath:用面向对象的方式操作文件和目录。 watchdog:管理文件系统事件的 ...
  • 用到的Python库有利用SDL(Simple DirectMedia Layer)写就的游戏库——pygame库、海龟绘图体系——turtle库、使用随机数的Python标准库——random库、python中处理时间的标准库——time库。 在Python第三方库安装...
  • 包含一个默认的 Python 标准库的字典。同时提供很多第三方模块,如:Numpy, Django, Flask, Requests, Twisted, PyQT4, Pygame, OpenGL, wxPython, PyGTK, MySQLdb, Psycopg2 等等。 标签:Pydiction
  • Python高级编程

    2018-06-13 19:58:54
    数学处理:NumPy扩展提供大量与许多标准数学的接口。 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 数据库编程:程序员可通过遵循Python DB...
  • Python参考手册

    2018-06-13 19:57:18
    数学处理:NumPy扩展提供大量与许多标准数学的接口。 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 数据库编程:程序员可通过遵循Python DB...
  • 《Python编程:从入门到实践》笔记。 本章主要学习如何使用pygame编写一个...Python标准库中并没有自带pygame模块,所以需要自行安装,可以在控制台(Windows下是cmd)上使用命令行安装:pip install pygame。如果...
  • 我不确定logzero是否采用其名称来适合pygame-zero,GPIO zero和guizero等“零样板”系列,但是肯定属于该类别。 这是一个Python库,使记录变得简单明了。 您可以使用它的基本日志记录来进行标准输出,就像您...
  • Python基础教程2

    2018-06-13 20:02:27
    数学处理:NumPy扩展提供大量与许多标准数学的接口。 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 数据库编程:程序员可通过遵循Python DB...
  • 利用Python做数据分析

    2018-06-13 20:05:37
    数学处理:NumPy扩展提供大量与许多标准数学的接口。 文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 数据库编程:程序员可通过遵循Python DB...
  • json和请求库应该已经在您的Python3标准库中。 归因 我要感谢上的jimk3038在Pi Internet Station上的工作。 这是我使该项目成为可能的关键灵感和入门代码。 图片 除气象站图标和wifi状态栏之外的所有
  • sys是Python标准库 sys提供Python运行时环境变量的操控 sys.exit()用于退出结束游戏并退出 初始化init()及设置 pygame.init()用于对pygame内部各功能模块进行初始化创建及变量设置,默认调用 pygame.display.set_...
  • Python3 简介及使用

    千次阅读 2017-07-17 19:22:10
    主要特点:语法简单,免费开源,解释型语言,可移植性强,可扩展和可嵌入,标准库丰富,面向对象。 应用场景:Web开发(如:Django和Bottle),科学和数学计算(Orange,SymPy,NumPy)和桌面GUI(Pygame,Panda3D...
  • 这个项目random标准库 以及开发游戏必备的pygame游戏库,至于pygame库的安装网上有很多方法 例如 pip install pygame 等等 需要素材的可以联系微信:ask1996 为了使文件更简洁明了 所以楼主用了两个.py文件对项目...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

python标准库pygame

python 订阅