精华内容
下载资源
问答
  • 常量是一块只读的内存区域,常量一旦被初始化就不能被改变。 变量命名字母、数字、下划线组成,不能以数字开头,前文有说不在赘述。 变量赋值 Python中的变量不需要声明,变量的赋值操作即是变量的声明和定义的过程...
  • Python中的变量和常量

    2019-10-02 14:53:19
    本文主要介绍Python中的变量和常量包括变量的命名规范,使用注意事项 -------------- 完美的分割线 --------------- 1.变量 1.1.变量理解 1)什么是变量 变量即变化的量,核心是“变”与“量”二字,变即变化...

    本文主要介绍Python中的变量和常量,包括变量的命名规范,使用注意事项

    -------------- 完美的分割线 ---------------

    1.变量

    1.1.变量理解

    1)什么是变量

    变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。
    完整的变量包括:变量名,等号,变量值
    对于计算机,变量可以看做是一种存放信息的容器,用于存储在计算机程序中需要引用和操作的信息。
    对于人,提供一种用描述性的名称对数据进行标记的方法,这样我们写的程序就可以更清楚地被读者和我们自己理解。
    Python的变量不需要特别的声明,数据类型是Python自动决定的,可以直接输入

    拓展知识:
    变量的声明、定义、赋值和初始化有什么区别?
    变量声明或定义:在环境中指定一个变量的名字。代表在内存中开辟一块区域。
    赋值:销毁一个变量原来的值,并赋予一个新值。相当于改变了一个变量的状态。更改内存区域里的值。
    初始化:一个声明后尚未初始化的变量一个有意义的初始值。即开辟内存区域时赋的值。不指定的话开辟时赋该类型的默认值。
    注意:应注意区分初始化和赋值,在初始化之前不应该允许对变量进行赋值操作。

    2)为什么要有变量

    程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。

    3)何时需要用到变量?

    一段程序或者数值需要在后面经常用到就可以用变量

    1.2.变量的定义(创建)及命名规范

    1)变量名要具有描述性的作用,要写的简洁直观易懂,且不要太长
    2)变量名只能是字母、数字或下划线的任意组合,且不能以数字开头,可以下划线开头。
    3)变量名可以用中文和拼音,但是尽量不要这样定义
    4)以下关键字不能声明为变量名(被系统占用)

    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

    5)变量定义的等号左右建议用空格隔开(有无空格效果相同)

    6)有两种定义方式:驼峰体和下划线

    实例:

    studentNumber = 30          # 驼峰体,java,asp开发人员常用
    student_number = 30         # python常用这种的,下划线连接词组

    注意区分:

    1)定义函数用小写字母
    def sayhi                 # 全小写
    2) 定义类用驼峰体
    class LuffyCity              # 驼峰体

    1.3.变量的多行赋值(格式化输出)

    注释符号的其他应用---多行打印

    msg = '''
    name1 = "ddd"
    name2 = name1
    '''
    print (msg,name1,name2)
    --->
    name1 = "ddd"
    name2 = name1
    bbb aaa
    <---

    1.4.Python中变量的修改和回收

    如果你想让a存储不同的数据,你不需要删除原有变量就可以直接赋值。
    1)直接重新赋值,相当于取消变量名与变量值的关系

    a = 1.3
    print(a,type(a))
    --->1.3 <class 'float'>

    2)删除变量delete

    del aaa

    3)超时清理

    python有自己的内存回收机制,每隔一段时间,检查没有变量名的变量值,进行清理,一般不用担心内存会变满

    4)用变量为变量赋值会涉及到变量的二次赋值问题

    name1 = "aaa"
    name2 = name1
    print (name1,name2 )
    --->aaa aaa
    name1 = "bbb"
    print (name1,name2 )
    --->bbb aaa

    # 结论:
    用变量name1给变量name2赋值,name1只是将他自己变量的值交付给name2,赋完值之后name2获取到新的值,
    之后他们俩就没有关系了,此时无论name1如何变化也不会影响name2的值,因为”name2 = name1“并不是建立name1和name2的关系

    1.5.变量的其他知识

    定义变量会产生id,type,value等信息
    1)等号比较的是变量的value值
    2)is比较的是变量的id值
    3)id相同的两个变量,代表占用的同一块内存空间,所以其type和value必定相同
    4)两个变量的value相同,那么type肯定相同,但id可能不同,如下

    x="I'm 18"
    y="I'm 18"
    id(x)
    --->139641415263432
    id(y)
    --->139641415263488
    x == y     
    --->True
    x is y
    --->False

    拓展知识:小整数池

    1)在交互式模式下

    Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被GC回收,每创建一个-5到256之间的整数,都是直接从这个池里直接拿走一个值,例如

    y=4
    id(y)
    --->4297641184
    x=3
    x+=1
    id(x)
    --->4297641184

    2)在pycharm中

    在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究

    2.常量:不变的量

    2.1.什么是常量?

    全部都大写用于表示常量
    例如:PIE = 3.1415926...

    2.2.常量和变量区分

    1)大写字母用于表示常量,小写字母用于表示变量,
    2)在Python中没有一个专门的语法代表常量,所有的变量都是可变的,程序员约定俗成用变量名全部大写代表常量,常量也可以修改,但不建议
    3)在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错

    拓展知识:在linux下声明变量

    在linux下声明变量:变量名=变量值, “=”左右不能有空格,使用“$变量名”进行调用
    而python中没有严格规定,空格可有可没有,建议等号左右加空格

     

    # 完毕,呵呵呵呵

    转载于:https://www.cnblogs.com/tssc/p/8626425.html

    展开全文
  • PyGame是一个Python的库,能够让你更容易的写出一个游戏。它提供的功能包括图片处理和声音重放的功能,并且它们能很容易的整合进你的游戏里。去官网点击这里下载适合你的PyGame安装包。我们就拿打飞机来做个例子1 ....

    PyGame是一个Python的库,能够让你更容易的写出一个游戏。它提供的功能包括图片处理和声音重放的功能,并且它们能很容易的整合进你的游戏里。去官网点击这里下载适合你的PyGame安装包。

    我们就拿打飞机来做个例子

    1 .创建游戏框架以及游戏背景

    #这个模块放一些常用的工具和基础类和精灵类

    #在其他模块调用

    import pygame

    import random

    #设置游戏屏幕大小 这是一个常量

    SCREEN_RECT = pygame.Rect(0,0,580,700)

    #敌机的定时器事件常量

    CREATE_ENEMY_EVENT = pygame.USEREVENT

    #定制一个精灵类,需要继承pygame提供的精灵类

    #需要定义的属性有:

    #image图片

    #rect坐标

    #speed速度

    #接下来开始写敌机方面的内容 产生敌机

    #先定义一个事件常量

    CREATE_ENEMY_EVENT = pygame.USEREVENT

    #我们还可以定义一个事件常量(发射子弹)

    HERO_FIRE_EVENT = pygame.USEREVENT + 1

    class GameSprite(pygame.sprite.Sprite):

    def __init__(self,new_image,new_speed=1):

    super().__init__()

    #图片

    self.image = pygame.image.load(new_image)

    #速度

    self.speed = new_speed

    #位置 获取图片的宽和高 get_rect()(0,0,宽,高)

    self.rect = self.image.get_rect()

    #精灵移动的速度 包括英雄精灵 背景精灵 敌机精灵 子弹精灵

    self.speed = new_speed

    def update(self):

    #默认垂直方向移动 y轴控制垂直方向

    self.rect.y += self.speed

    #self.rect.x += 1

    #以上是游戏的基础类,接下来设置背景类

    #明确背景类继承自游戏的精灵类

    class Background(GameSprite):

    def __init__(self,is_alt = False):

    #is_alt判断是否为另一张图像

    #False表示第一张图像

    #Ture表示另外一张图像

    #两张图像交替循环

    #传图片

    super().__init__("/home/zhangyuan/下载/beijing.png")

    if is_alt:

    #如果是第二张图片 初始位置为-self.rect.height

    self.rect.y = -self.rect.height

    #def __init__(self,new_image):

    # super().init__(new_image)

    def update(self):

    #调用父类方法

    super().update()

    if self.rect.y >= SCREEN_RECT.height:

    self.rect.y = -self.rect.height

    2 .创建敌机精灵

    class Enemy(GameSprite):

    def __init__(self):

    super().__init__("/home/zhangyuan/images/enemy1.png")

    #随机速度

    self.speed = random.randint(10, 15)

    #设置敌机的初始位置

    self.rect.left = SCREEN_RECT.width

    max_ = SCREEN_RECT.height -self.rect.height

    self.rect.bottom = random.randint(0, max_)

    def update(self):

    panduan = random.randint(0, 1)

    if panduan == 0:

    self.rect.y -= self.speed

    self.rect.x -= self.speed

    else:

    self.rect.y += self.speed

    self.rect.x -= self.speed

    #判断敌机是否飞出屏幕 如果飞出屏幕将敌机从精灵组删除

    if self.rect.y >= SCREEN_RECT.height or self.rect.right <=0 or self.rect.bottom <=0:

    self.kill()

    3 .创建英雄精灵

    class Bullet(GameSprite):

    def __init__(self):

    super().__init__("/home/zhangyuan/images/bullet1.png",-5)

    def update(self):

    super().update()

    #判断是否超出屏幕 如果是 从精灵组删除

    if self.rect.bottom < 0:

    self.kill()

    5 .碰撞检测

    #第一个参数和第二个参数是要参与碰撞检测的精灵

    #第三个参数为Ture的时候 就是当碰撞的时候被碰撞的精灵从精灵组移除

    pygame.sprite.groupcollide( self.enemy_group,self.hero.bullet, True, True)#子弹

    #判断列表时候有内容

    if len(enemies)>0:

    #让英雄牺牲

    self.hero.kill()

    #结束游戏

    PlaneGame.__game_over()

    @staticmethod

    def __game_over():

    print("游戏结束")

    #这是pygame提供的卸载模块功能

    pygame.quit()

    #这是pygame本身提供的退出脚本的功能

    exit()

    #需要先卸载pygame模块 然后退出脚本

    if __name__ == "__main__":

    game = PlaneGame()

    game.star_game()

    展开全文
  • Join Learn Python语法基础 Join Learn Python语法基础 课程概要 Python常量与变量 Python数与字符串 Python数据类型 认识Python标识符 Pyhon对象 Python行与缩进 2 Join Learn Python常量与变量 本课时包括以下知识...
  • Python语言基础

    2017-07-29 19:37:34
    变量和常量常量:Python常量包括数字,字符串,布尔值和空值等。 字符串常量要用单引号(‘)或双引号(“)括起来eg:‘我是一个字符串’ 转义字符:当需要使用特殊字符是,使用反斜杠()作为转义字符。 布尔值:True...

    变量和常量

    常量:Python常量包括数字,字符串,布尔值和空值等。
    字符串常量要用单引号(‘)或双引号(“)括起来eg:‘我是一个字符串’
    转义字符:当需要使用特殊字符是,使用反斜杠()作为转义字符。
    布尔值:True和False区分大小写
    空值:Python有一个特殊的空值常量None,与0和空字符串(“”)不同,None表示什么都没有,None与任何其他数据类型比较都永远返回False。
    变量:命名规则是以字母或下划线(_)开头的字母,数字和下划线的组合。
    标识符命名是区分大小写的。Python的变量不需要声明,可以直接使用赋值运算符对其进行赋值操作:b=2;每个变量都对应着一个地址空间,因此每个变量都有一个内存空间,变量之间的赋值实际上是把一个变量的地址指向赋值给另一个变量。
    eg:a=’这是一个常量’ b=a
    变量赋值后修改a的值不会改变b的值,a把他的地址指向赋值给b,这时b指向了a指向的地址,其值是‘这是一个常量’,当改变a的值时其实是把a的指向改变了,因此和b没有关系,b的指向没有变。
    变量的数据类型转换:Python在定义变量时不需要指定其数据类型,而是根据每次给变量所赋的值决定其数据类型,也可以使用函数对变量进行类型转换,int(), long(),float(),eval()计算字符串中的有效Python表达式,并返回结果,a=”1+2” println(eval(a)) 输出3.
    str()转换为字符串, repr(obj)将对象转换为可打印字符串,
    运算符和表达式
    常用语句
    条件分支语句 if 条件表达式:语句块1 else:语句块2
    elif语句 if 条件表达式1 语句块1 elif 条件表达式2 语句2 …else 语句n
    循环语句 while 条件表达式: 循环语句体
    for 语句 for i in range(start ,end): 循环体(语句对齐)
    continue语句可以跳出本次循环后面的代码,重新开始下一次循环。
    break语句可以跳出循环体
    try-except异常处理语句try:

    序列数据结构

    展开全文
  • Python 对象内存占用

    2012-03-01 22:51:00
    Python 对象内存占用 (github地址) 之前写的脚本中,需要估计程序的内存占用,所以简单研究...在 Python 一切皆是对象,包括所有类型的常量与变量,整型,布尔型,甚至函数。 参见stackoverflow上的一个问题 Is e...

    Python 对象内存占用

    (github地址)

    之前写的脚本中,需要估计程序的内存占用,所以简单研究下Python各种对象在内存中占用大小。

    本人对 Python 一直处在使用的阶段,没有进行深入研究。所以有什么错误还请指出,欢迎交流。

    一切皆是对象

    在 Python 一切皆是对象,包括所有类型的常量与变量,整型,布尔型,甚至函数。 参见stackoverflow上的一个问题 Is everything an object in python like ruby

    代码中即可以验证:

     # everythin in python is object def fuction(): return print isinstance(True, object) print isinstance(0, object) print isinstance('a', object) print isinstance(fuction, object) 

    如何计算

    Python 在 sys 模块中提供函数 getsizeof 来计算 Python 对象的大小。

    sys.getsizeof(object[, default])

    以字节(byte)为单位返回对象大小。 这个对象可以是任何类型的对象。 所以内置对象都能返回正确的结果 但不保证对第三方扩展有效,因为和具体实现相关。

    ......

    getsizeof() 调用对象的 __sizeof__ 方法, 如果对象由垃圾收集器管理, 则会加上额外的垃圾收集器开销。

    当然,对象内存占用与 Python 版本以及操作系统版本关系密切, 本文的代码和测试结果都是基于 windows7 32位操作系统。

     import sys print sys.version 

    2.7.2 (default, Jun 24 2011, 12:21:10) [MSC v.1500 32 bit (Intel)]

    基本类型

    • 布尔型

      print 'size of True: %d' % (sys.getsizeof(True)) print 'size of False: %d' % (sys.getsizeof(False)) 

      输出:

      size of True: 12 size of False: 12 
    • 整型

      # normal integer print 'size of integer: %d' % (sys.getsizeof(1)) # long print 'size of long integer: %d' % (sys.getsizeof(1L)) print 'size of big long integer: %d' % (sys.getsizeof(100000L)) 

      输出:

      size of integer: 12x size of long integer 1L: 14 size of long integer 100000L: 16 

      可以看出整型占用12字节,长整型最少占用14字节,且占用空间会随着位数的增多而变大。 在2.x版本,如果整型类型的值超出sys.maxint,则自动会扩展为长整型。而 Python 3.0 之后,整型和长整型统一为一种类型。

    • 浮点型

      print 'size of float: %d' % (sys.getsizeof(1.0)) 

      输出:

      size of float: 16 

      浮点型占用16个字节。超过一定精度后会四舍五入。参考如下代码:

      print 1.00000000003 print 1.000000000005 

      输出:

      1.00000000003 1.00000000001 
    • 字符串

      # size of string type print '\r\n'.join(["size of string with %d chars: %d" % (len(elem), sys.getsizeof(elem)) for elem in ["", "a", "ab"]]) # size of unicode string print '\r\n'.join(["size of unicode string with %d chars: %d" % (len(elem), sys.getsizeof(elem)) for elem in [u"", u"a", u"ab"]]) 

      输出:

      size of string with 0 chars: 21 size of string with 1 chars: 22 size of string with 2 chars: 23 size of unicode string with 0 chars: 26 size of unicode string with 1 chars: 28 size of unicode string with 2 chars: 30 

      普通空字符串占21个字节,每增加一个字符,多占用1个字节。Unicode字符串最少占用26个字节,每增加一个字符,多占用2个字节。

    集合类型

    • 列表

      # size of list type print '\r\n'.join(["size of list with %d elements: %d" % (len(elem), sys.getsizeof(elem)) for elem in [[], [0], [0,2], [0,1,2]]]) 

      输出:

      size of list with 0 elements: 36 size of list with 1 elements: 40 size of list with 2 elements: 44 size of list with 3 elements: 48 

      可见列表最少占用36个字节,每增加一个元素,增加4个字节。但要注意,sys.getsizeof 函数并不计算容器类型的元素大小。比如:

      print 'size of list with 3 integers %d' % (sys.getsizeof([0,1,2])) print 'size of list with 3 strings %d' % (sys.getsizeof(['0','1','2'])) 

      输出:

      size of list with 3 integers 48 size of list with 3 strings 48 

      容器中保存的应该是对元素的引用。如果要准确计算容器,可以参考recursive sizeof recipe 。使用其给出的 total_size 函数:

      print 'total size of list with 3 integers %d' % (total_size([0,1,2])) print 'total size of list with 3 strings %d' % (total_size(['0','1','2'])) 

      输出为:

      total size of list with 3 integers 84 total size of list with 3 strings 114 

      可以看出列表的空间占用为 基本空间 36 + (对象引用 4 + 对象大小) * 元素个数。

      另外还需注意如果声明一个列表变量,则其会预先分配一些空间,以便添加元素时增加效率:

      li = [] for i in range(0, 101): print 'list with %d integers size: %d, total_size: %d' % (i, getsizeof(li), total_size(li)) li.append(i) 
    • 元组

      基本与列表类似,但其最少占用为28个字节。

    • 字典

      字典的情况相对复杂很多,具体当然要参考代码 dictobject.c, 另外 NOTES ON OPTIMIZING DICTIONARIES 非常值得仔细阅读。

      基本情况可以参考[stackoverflow] 的问题 Python's underlying hash data structure for dictionaries 中的一些回答:

      1. 字典最小拥有8个条目的空间(PyDict_MINSIZE);
      2. 条目数小于50,000时,每次增长4倍;
      3. 条目数大于50,000时,每次增长2倍;
      4. 键的hash值缓存在字典中,字典调整大小后不会重新计算;

      每接近2/3时,字典会调整大小。

      其中一个回答的留言也很有意思: Python如此依赖字典且字典广泛地影响这门语言的性能, 我敢打赌他们的实现很难超越。

      暂时写这些,今后有时间会进一步研究字典的实现。

    转载于:https://www.cnblogs.com/Lvkun/archive/2012/03/01/python_object_memory_usage.html

    展开全文
  • 级别常量包括DEBUG,INFO,WARNING,ERROR和CRITICAL。 更改阈值只会影响将来的输入。 记录格式: 日志记录格式是通过Logger.set_format设置的,将一串有效字符和替换指令作为参数传递。 有效的替代指令包括: ...
  • 表达式的组成 表达式是可以计算的代码片段,由操作数和运算符构成。操作数、运算符和圆括号按...操作数包括文本常量(没有名称的常数值,例如1、“abc”)、变量(例如i= 123)、类的成员变量/函数(例如math. pi.math...
  • 2.什么是序列 序列是指有序和无序的数据结构  包括:字符串,列表,元组,字典,集合 3.编程规范 命名规范:  类定义用驼峰式 TestCase  其他用小写字符加下划线 test_case  常量全部用大写 注释的两种方式...
  • Python中,一切都是对象,包括常量数据类型,如整数数据类型(1,2,3...),字符串数据类型("ABC")。想要使用这些对象,就要使用它的对象引用。赋值操作符,实际上是使得对象引用对内存中存放数据的对象进行引用。 ...
  • 3.Y=A^n,表示A的n次方,A为常量,n为整数,写一个函数,输入为n,求A的n次方,不能用python自带的数学库,包括**操作符。 4.介绍一下你熟悉或者正在使用的测试框架 5.App新增了几个功能: 用户每天首次打开A...
  • 栈和堆(Stack && Heap)

    2015-07-16 22:43:00
    一、前言 直到现在,我们已经知道了我们如何声明常量类型,例如int,double,等等,还有复杂的例如数组和结构体等。... 什么是栈,它是你的电脑内存的一个特别区域,它用来存储被每一个function(包括mian()方法...
  • 一、前言  直到现在,我们已经知道了我们如何声明常量类型,例如int,double,等等,还有复杂的例如数组和结构体等。... 什么是栈,它是你的电脑内存的一个特别区域,它用来存储被每一个function(包括mian()方
  • 国家思想 我对当前状态模型的看法的总结 去做 将其放在一个很好的解释性应用程序的上下文中 主页 其他所有页面的链接 主页说明 每个示例的说明 深入探讨每个示例 然后把第二个例子放在一起... 包括上下文,以便您创建延
  • 第二各模块主要是通过爬取《国家社会组织管理局》每日公开文章资料[1],对前十五天内的疫情热门词汇进行爬取分析得到社会最关的方向是什么。 2.2功能定义 通过前面阶段的分析和了解,结合项目实际问题,综合得出...
  • 但还是要写出每个类或函数或 const 的名称(并没有像 python 一样的 from some import * 的方法)。 需要留意的问题是:如果你使用的是基于 composer 和 PSR-4 的框架,这种写法是否能成功的加载类文件?其实是可以...
  • 添加其它语言如Java、python、go 的代码,放在ebook/code文件夹内,同样如上,注意代码命名规范的问题。 「可选」 重绘所有的图片:https://github.com/julycoding/The-Art-Of-Programming-by-July/issues/80 翻译...
  • 游戏部分,包括智慧拼图,还有童年飞机大战游戏,体验非常好玩。 其他部分,几乎融合了自己开源的大部分封装库,比如,状态管理,视频库,轮播图,幸运大转盘[老虎机],画廊,自定义进度条,图片缩放,线程池 3.2 ...
  • Metrowerks 8.3 (Windows) 可以编译LuaBind,但是通不过常量测试.这就意味着常量 成员函数被视同非常量成员函数. 如果你测试了LuaBind和其他未列出的编译器的兼容性,请告诉我们你的结果. 4 构建LuaBind 为了抑制...
  • 如果你有什么中立的观点(比如说没有被SUN和Microsoft的百万美金所影响),请顺便通知我。 据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的...
  • 提供了一些基本的常量和数学函数 mine 实现了部分的MIME规范 net 提供了一个对UNIX网络套接字的可移植接口,包括TCP/IP、 UDP域名解析和UNIX域套接字 os 为操作系统功能实现了一个平台无关的接口 path ...

空空如也

空空如也

1 2
收藏数 28
精华内容 11
关键字:

python常量包括什么

python 订阅