第004课:python中库、模块、方法、参数

第004课:python中库、模块、方法、参数,第1张

index
    • 1. 代码程序
    • 2. python中的库
    • 3. 语句解读
      • 3.1 pygame.init()
      • 3.2 pygame.quit()
      • 3.3 pygame.display.set_mode()
    • 4. 延伸阅读
      • 内置模块

视频地址:观看

1. 代码程序

1.1 上次课的代码

import pygame,sys

pygame.init()
screen = pygame.display.set_mode((600,400))
pygame.display.set_caption("星火工坊")
ball = pygame.image.load("pygame/images/pyg02-ball.gif")   # 一定注意这里的路径
ball_rect = ball.get_rect()

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

    screen.fill((0,0,0))
    screen.blit(ball, ball_rect)
    
    pygame.display.update()

** 1.2 本次课的代码

import pygame, sys, os   #引入pygame和sys
pygame.init()        #  初始化init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("pygame 游戏")

os.system('pause')

2. python中的库
  1. 内置库
    Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。

  2. 第三方库
    在Python中,安装第三方库,是通过包管理工具pip完成的。一般来说,第三方库都会在Python官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如,安装pygame的命令就是:
    pip install pygame

  3. 关于库、模块、方法、参数

方法中可以有0个或n个参数。


3. 语句解读

os.system("pause") 按任意键继续

3.1 pygame.init()

官方说明

功能:初始化所有导入的 pygame 模块

返回值: -> (numpass, numfail)

初始化所有导入的 pygame 模块。如果模块失败,则不会引发异常,但成功和失败的init的总数将作为元组返回。您始终可以手动初始化各个模块,但是pygame.init()是开始一切的便捷方式。单个模块的 init()函数在失败时会引发异常。

您可能希望分别初始化不同的模块以加快程序速度或不使用游戏不需要的模块。

多次调用它是安全的,因为重复调用将无效。即使您拥有所有模块也是如此。

3.2 pygame.quit()

官方说明

功能:取消初始化所有pygame模块

返回值:-> 无

取消初始化所有之前已初始化的 pygame 模块。当 Python 解释器关闭时,无论如何都会调用此方法,因此您的程序不需要它,除非它想终止其 pygame 资源并继续。多次调用此函数是安全的,因为重复调用无效。

PS: 调用pygame.quit()不会退出你的程序。

3.3 pygame.display.set_mode()

官方说明
功能:
返回值:set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0) -> Surface
参数:size=(0, 0), flags=0, depth=0, display=0, vsync=0

举例:在网站注册时的信息:昵称,密码,验证码,电子邮箱等,

该函数将创建一个显示界面(窗体)。传入的参数是对显示类型的请求。

请注意pygame.display,如果之前未初始化,则调用此函数会隐式初始化 。

  • size 参数是一对表示宽度和高度的数字。
    如果没有传递或设置大小,则创建的 Surface 将具有与当前屏幕分辨率相同的大小(0, 0)。如果仅将宽度或高度设置为0,则 Surface 将具有与屏幕分辨率相同的宽度或高度。
  • flags 参数是附加选项的集合。
    flags 参数控制您想要的显示类型。有多种类型可供选择,您甚至可以使用按位或运算符(竖线“|”字符)组合多种类型。以下是您要选择的显示标志:
显示类型说明
pygame.FULLSCREEN创建一个全屏显示。
pygame.OPENGL创建一个 OpenGL 可渲染的显示器
pygame.RESIZABLE显示的窗口应该是大小合适的。
pygame.NOFRAME显示窗口将没有边界或控制。
pygame.SCALED分辨率取决于桌面尺寸和图形比例。
pygame.SHOWN窗口以可见模式打开(默认)。
pygame.HIDDEN窗口以隐藏模式打开。
  • depth 参数表示用于颜色的位数。
    通常最好不要传递深度参数。它将默认为系统的最佳的颜色深度。如果您的游戏需要特定的颜色格式,您可以使用此参数控制深度。Pygame 将模拟一个可能很慢的不可用颜色深度。
  • vsync
    通过将vsync参数设置为1,可以获得垂直同步的显示,但不能保证获得。该请求仅适用于set_mode()设置了pygame.OPENGLor pygame.SCALED标志的调用,即使set_mode()设置了其中一个也不能保证生效。显示结果取决于运行 pygame 的系统的硬件和驱动程序配置。下面是一个调用的示例用法,它可能会给你一个带有 vsync 的显示:
flags = pygame.OPENGL | pygame.FULLSCREEN
window_surface = pygame.display.set_mode((1920, 1080), flags, vsync=1)

基本示例:

# Open a window on the screen
screen_width=700
screen_height=400
screen=pygame.display.set_mode([screen_width, screen_height])

display = 0表示使用默认显示。如果未提供display参数,则可以使用环境变量覆盖默认显示。
返回的 Surface 可以像普通 Surface 一样绘制,但最终会在显示器上看到变化。


4. 延伸阅读 内置模块

Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。

我们以内建的sys模块为例,编写一个hello的模块:

# -*- coding: utf-8 -*-

' a test module '

__author__ = 'Michael Liao'

import sys

def test():
    args = sys.argv
    if len(args)==1:
        print('Hello, world!')
    elif len(args)==2:
        print('Hello, %s!' % args[1])
    else:
        print('Too many arguments!')

if __name__=='__main__':
    test()

第1行是标准注释,表示.py文件本身使用标准UTF-8编码;

第3行是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释;

第5行使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;

以上就是Python模块的标准文件模板,当然也可以全部删掉,但是,按标准办事肯定没错。

后面开始就是真正的代码部分。

你可能注意到了,使用sys模块的第一步,就是导入该模块:

import sys
导入sys模块后,我们就有了变量sys指向该模块,利用sys变量,就可以访问sys模块的所有功能。

sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称,例如:

运行python3 hello.py获得的sys.argv就是['hello.py']

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/883358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-14
下一篇 2022-05-14

发表评论

登录后才能评论

评论列表(0条)

保存