精华内容
下载资源
问答
  • python中变量的声明和赋值

    万次阅读 2018-01-23 19:51:32
    1、什么是变量?...字典3、python中的变量:python是弱类型的语言,变量的类型由其值的类型决定,不用为变量声名类型4、变量的命名规范:变量名称都是小写单词,每个单词之间用_下划线连接,尽量做到见名知...
    1、什么是变量?

        变量:值会发生变化的的量,与常量相对.

    2、python支持的变量数据类型:

        Python有五个标准的数据类型:1. 数字    2.字符串    3.元组    4.列表    5.字典

    3、python中的变量:python是弱类型的语言,变量的类型由其值的类型决定,不用为变量声名类型

    4、变量的命名规范:变量名称都是小写单词,每个单词之间用_下划线连接,尽量做到见名知意

    5、声名变量的格式:变量名 = 值  (值的类型决定变量的类型) 例如:

    counter = 100 # 整型变量
    miles = 1000.0 # 浮点型变量
    name = "John" # 字符串变量
    flag = True # 布尔类型变量

    6、多个变量的赋值:

        python支持同时为多个变量赋值:

    a = b = c = 1

        为多个变量指定不同的值:

    name, age, sex = '张三', 23, '男'

    7、查看变量的类型:

        使用type()函数可以查看变量的类型:

    age = 18.5
    print(type(age))

    8、变量的运算:

        变量是可以参与运算的

    age = age + year
    print(age)
    age = age - year
    print(age)
    age = age * year
    print(age)

        两个整数类型相除,在python3中会得到一个浮点类型数据,在python2中则会得到一个整数(去除小数部分)


        在python3中想要得到一个整数的话,可以使用双除号 a//b



















    展开全文
  • 6.Python中变量的声明和赋值以及垃圾回收机制

    目录

     

    变量的声明和赋值

    删除变量和垃圾回收机制


    变量的声明和赋值

    变量的声明和赋值用于将一个变量绑定到一个对象上,格式如下:

    变量名 = 表达式

    最简单的表达式就是字面量;比如:a = 123;运行过程中,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象,然后,把这个对象地址赋值给左边的变量;

    变量在使用前必须先被初始化(先别赋值);

    删除变量和垃圾回收机制

    可以通过del语句删除不在使用的变量

     

    如果对象没有变量引用,就会被垃圾回收器回收,清空内存空间;

    展开全文
  • python变量的声明和赋值

    千次阅读 2019-06-24 20:12:22
    python中变量的声明赋值,有三种样式: 一、单一变量赋值,如: a = 1 a = "你好!" 二、相同一个值,赋值给多个不同的变量,如: a = b = c= d =55 aa = bb = cc ="python学习中。。。" 三、不同的变量,...

    python中变量的声明赋值,有三种样式:

    一、单一变量赋值,如:

    a = 1
    
    a = "你好!"

    二、相同一个值,赋值给多个不同的变量,如:

    a = b = c= d =55
    
    aa = bb = cc ="python学习中。。。"

    三、不同的变量,赋值不同,如:

    a, b, c = 1, 2, 5
    aa, bb, cc = "早上好","晚上好","你好"

     

    展开全文
  • Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 等号(=)用来...
  • python中变量和变量赋值的几种形式

    千次阅读 2019-11-10 14:37:30
    python是动态类型的语言,不需要声明变量的类型。 实际上,python中的变量仅仅只是用来保存一个数据对象的地址。无论是什么数据对象,在内存中创建好数据对象之后,都只是把它的地址保存到变量名中。所以变量名是...

    动态类型的语言

    python是动态类型的语言,不需要声明变量的类型。

    实际上,python中的变量仅仅只是用来保存一个数据对象的地址。无论是什么数据对象,在内存中创建好数据对象之后,都只是把它的地址保存到变量名中。所以变量名是类型无关的,但它指向的值是类型相关的,可以是数值、字符串、列表、函数、类、对象等等。这些内存对象中都至少包含3部分:对象类型、对象的引用计数(用来判断改对象是否可被垃圾回收器回收)、对象的值。

    因此,a = 3中,变量名a保存的是数据对象3的地址,之后可以为其赋值一个字符串a = “hello”,这时a保存的是"hello"字符串的地址。在这个类型改变的过程中,a仅仅只是修改了一下地址而已。

    变量的命名风格

    python中的变量命名时只能包含数字、大小写字母、下划线这三种类型的字符,并且数字不能是首字符。
    还有一些有特殊意义的变量命名方式(目前这些内容了解即可):

    1. 前缀并后缀双下划线的变量,如__ name__,这种类型的变量在python中有特殊意义,属于对象的内置属性,以后学了类和对象就知道了
    2. 单下划线前缀的变量,如_x,这类变量不会被from ModuleName import *的方式导入
    3. 双下划线前缀的变量,如__x,这类变量是类的本地变量或称为类的私有变量,它会扩展成__classname_x

    除此之外,还有约定俗成的命名方式:

    1. 常量以全大写字符表示
    2. 普通变量、函数名、方法名都以小写字母开头命名
    3. 模块名、包名以全小写字母命名
    4. 类名以大写字母开头

    因为只是约定俗成,所以没有强制限制。

    变量赋值的几种形式细节

    本文解释python中变量赋值的形式,并解释一些细节。后面还有一篇文章解释python中按引用赋值的文章。
    python中变量赋值的几种形式。

    x = "long"                  # (1).基本形式
    x, y = "long", "shuai"      # (2).元组对应赋值
    [x, y] = ["long", "shuai"]  # (3).列表对应赋值
    a, b, c, d = "long"         # (4).序列赋值
    a, *b = 'long'              # (5).解包赋值
    a = b = "long"              # (6).多目标赋值
    a += 3                      # (7).二元赋值表达式
    ((a, b), c) = ('lo','ng')   # (8).嵌套赋值序列
    

    注意:python的数值是不可变对象,无法在原处修改数据,所以不支持自增、自减。

    a++
    ++a
    a--
    --b
    

    其中(1)-(3)无需过多解释,唯一需要注意的是,当使用逗号的时候,python总会临时或永久地建立成tuple来保存元素,所以x, y = “long”, "shuai"在内部完全等价于(x, y) = (“long”, “shuai”)。
    实际上,列表元素也可以赋值给元组,或者元组赋值给列表,只要两边的序列元素个数能对应,无所谓左右两边的序列类型:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    >>> (x,y) = (1,2)
    >>> (x,y) = [1,2]
    >>> [x,y] = (1,2)
    >>> [x,y] = [1,2]
    >>> (x,y) = 'ab'
    >>> [x,y] = 'ab'
    

    对于(4)赋值方式,是序列赋值的行为,在python中,只要是序列,都可以这样赋值。正如这里的变量赋值情况等价于:

    a = "l"
    b = "o"
    c = "n"
    d = "g"
    

    如果换成其它的序列也一样。例如:

    a, b, c, d = ("shell","perl","php","python")
    a, b, c, d = ["shell","perl","php","python"]
    

    但是变量和序列中的元素必须一一对应。如果变量名与元素个数不同,则会报错,除非只有一个变量名,这表示将整个序列赋值给这个变量。
    如果想要将序列中的元素赋值给不等的变量,可以考虑先将序列进行切片。

    >>> str='long'
    >>> a, b, c = list(str[:2]) + [str[2:]]
    >>> a,b,c
    ('l', 'o', 'ng')
    

    (5)的赋值方式则正好是让变量名少于元素个数的方式。这种赋值形式称为序列解包(下文会专门解释这种赋值方式),多出来的元素会全部以列表的方式赋值给最后一个变量名。正如这里等价于:

    a="l"
    b=["o", "n", "g"]
    

    下面两种赋值方式得到的结果是一样的,a是字符串,b是列表,b都包含3个元素:

    a, *b = ("shell","perl","php","python")
    a, *b = ["shell","perl","php","python"]
    

    赋值的结果:

    shell
    ['perl', 'php', 'python']
    

    (6)的赋值方式等价于:

    b = "long"
    a = b
    

    python赋值时,总是先计算"=“右边的结果,然后将结果按照赋值方式赋值给”="左边的变量。所以,这里的过程是先将"long"赋值给变量b,再将b赋值给变量a。
    因为总是先计算右边,所以交换变量非常的方便。

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    a, b = "a", "b"
    
    # 交换:
    a, b = b, a
    
    # 交换结果:
    a = "b"
    b = "a"
    

    (7)的赋值方式a += 3在结果上等价于a = a + 3,在其它语言中这两种赋值方式是完全等价的,但在python中这种增强赋值的方式要比后者更高效率些,为什么效率要高一些,下文会稍作解释。在很大程度上来说,Python中只要是简化的形式,基本上都比更复杂的等价形式效率更高。

    (8)的赋值方式((a, b), c) = (‘lo’, ‘ng’)是将序列进行嵌套序列赋值,将’lo’赋值给元组(a, b),'ng’赋值给c,元组又进一步赋值a=‘l’, b=‘o’。这种赋值方式在python中很好用,特别是在表达式中赋值的时候,比如for循环和函数参数:

    for (a, b, c) in [(1, 2, 3), (4, 5, 6)]:...
    for ((a, b), c) in [((1, 2), 3), ((4, 5), 6)]:...
    
    def f(((a, b), c)):...
    f(((1, 2), 3))
    

    关于序列解包

    在前面简单介绍了一下序列解包:

    a, *b = 'long'
    

    当使用一个前缀变量的时候,表示将序列中对应的元素全部收集到一个列表中(注意,总是一个列表),这个列表名为开头的那个变量名。*号可以出现在任意位置处,只要赋值的时候能前后对应位置关系即可。
    注意其中的几个关键字:序列、对应的元素、列表

    • 序列意味着可以是列表、元组、字符串等等
    • 列表意味着只要收集不报错,赋值给解包变量的一定是一个列表
    • 对应的元素意味着可能收集到0或任意个元素到列表。

    不管如何,收集的结果总是列表,只不过可能是空列表或者只有一个元素的列表。
    例如:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    L = ['aa','bb','cc','dd']
    a, *b = L           # a='aa',b=['bb','cc','dd']
    a, b, *c = L        # a='aa',b='bb',c=['cc','dd']
    a,*b,d = L          # a='aa',d='dd',b=['bb','cc']
    *a,d = L            # a=['aa','bb','cc'],d='dd'
    a,b,c,*d = L        # a='aa',b='bb',c='cc',d=['dd']
    a,b,c,d,*e = L      # a='aa',b='bb',c='cc',d='dd',e=[]
    

    两个注意事项:

    1. 因为序列解包是根据元素位置来进行赋值的,所以不能出现多个解包变量
    2. 如果将序列直接赋值给单个解包变量时(即没有普通变量),这个解包变量必须放在列表或元组中
    a,*b,c,*d = L     # 错误
    *a = L            # 错误
    [*a] = L          # 正确
    (*a) = L          # 正确
    

    之所以单个解包变量时必须放在元组或变量中,看下面两个等价的例子就很容易理解了:

    a, *b = L
    (a, *b) = L
    

    最后,序列解包是切片的便捷替代方式。能用序列解包的,都能用切片来实现,但切片要输入额外的各种字符。例如:

    a,b,c = L[0],L[1],L[2:]
    a,b,*c = L
    

    需要注意,解包返回的一定是列表,但序列切片返回的内容则取决于序列的类型。例如下面元组的切片返回的是元组,而不是列表:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    >>> T=('aa','bb','cc','dd')
    >>> a,b,c = T[0],T[1],T[2:]
    >>> a,b,c
    ('aa', 'bb', ('cc', 'dd'))
    

    二元赋值表达式

    python支持类似于a += 3这种二元表达式。比如:

    a += 3   ->   a = a + 3
    a -= 3   ->   a = a - 3
    a *= 3   ->   a = a * 3
    ...
    

    在python中的某些情况下,这种二元赋值表达式可能比普通的赋值方式效率更高些。原因有二:

    1. 二元赋值表达式中,a可能会是一个表达式,它只需计算评估一次,而a = a + 3中,a要计算两次。
    2. 对于可变对象,可以直接在原处修改得到修改后的值,而普通的一元赋值表达式必须在内存中新创建一个修改后的数据对象,并赋值给变量

    第一点无需解释。关于第二点,看下面的例子:

    L = [1,2,3]
    L = L + [4]     # (1):慢
    L += [4]        # (2):快
    L.append(4)     # (3):快,等价于(2)
    
    L = L + [5,6]   # (4):慢
    L += [5,6]      # (5):快
    L.extend([5,6]) # (6):快,等价于(5)
    

    对于上面(1)和(4)的一元赋值表达式,先取得L,然后创建一个新的列表对象,将L拷贝到新列表对象中,并将4或5,6放进新列表对象,最后赋值给L。这个过程中涉及到了几个步骤:新分配内存、内存中列表拷贝、放入新数据。

    而(2)(3)是等价的,(5)(6)也是等价的,它们都是直接在内存中的原始列表处修改,不会有拷贝操作,新建的数据对象仅仅只是一个元素。

    按照理论上来说,确实二元赋值方式要效率高一些,但要注意的是,列表中保存的只是各元素的引用,所以拷贝列表也仅仅只是拷贝一点引用,这是微乎其微的开销。所以一元赋值和二元赋值的差距在这一点的性能上基本没差距,主要的差距还在于一元、二元赋值方式可能存在的表达式不同评估次数。

    总的来说,使用二元赋值表达式通常可以作为可变对象赋值的一种优化手段。

    展开全文
  • 每个变量在内存创建,都包括变量的标识,名称数据这些信息。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 等号(=)用来给变量赋值。 等号(=)运算符左边是一个变量名,等号(=)运算符右边是...
  • 标识符的规则: ...变量的声明和赋值: 在赋值过程,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象,然后将这个对象地址赋值给左边的变量; a = 123 变量的使用: 变量在...
  • Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型值在赋值那一刻被初始化,下面详细介绍了Python的变量赋值问题,一起来学习学习吧。 我们先看一下如下代码: c = {} def foo(): f = dict(zip...
  • Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型值在赋值那一刻被初始化,下面详细介绍了Python的变量赋值问题,一起来学习学习吧。我们先看一下如下代码:c = {}def foo():f = dict(zip(list(&...
  • 数据类型 python 最基本的内置数据类型: 1. 整型 整数,2345,10,50 2. 浮点型 小数,3.14 或者科学计数法 314e-2 3. 布尔型 表示真假,仅包含:True...变量的声明和赋值 .变量在使用前必须先被初始...
  • 之前我们学习了Python的标识符关键字,我们今天一起来看下Python的常用变量类型变量赋值,其实创建变量就意味着...每个变量在内存创建,都包括变量的标识,名称数据这些信息。 每个变量在使用前都必须赋值,...
  • 这篇文章主要介绍了Python动态声明变量赋值代码实例,文中通过示例代码介绍非常详细,对大家学习或者工作具有一定参考学习价值,需要朋友可以参考下 通过exec()、globals()locals() # 通过exec(...
  • python变量和变量赋值的几种形式

    千次阅读 2018-12-15 12:22:00
    python是动态类型的语言,不需要声明变量的类型。 实际上,python中的变量仅仅只是用来保存一个数据对象的地址。无论是什么数据对象,在内存中创建好数据对象之后,都只是把它的地址保存到变量名中。所以变量名是...
  • python是一门弱类型的语言,也就是python中无需事先声明变量的类型,变量的类型值在赋值的那一刻被初始化。   一.变量的赋值操作,C语言一样,具体的我们看如下实例: 1. X=1 Print id(x) ...
  • 目录 1.Python中变量的使用 2.简单的数据类型 2.1.1 string字符串类型 ...python中变量的使用不像C#、Java那样先声明赋值。在python中变量不用声明可以直接使用。如: str="hello,world" i...
  • 每个变量在内存创建,都包括变量的标识,名称数据这些信息。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 等号(=)用来给变量赋值。 等号(=)运算符左边是一个变量名,等号(=)运算符右边...
  • python 变量赋值

    2019-09-26 17:38:03
    每个变量在内存创建,都包括变量的标识,名称数据这些信息。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 等号(=)用来给变量赋值。 等号(=)运算符左边是一个变量名,等号(=)运算符右边...
  • python的变量在赋值时与java不同,可以不声明变量的数据类型,解释器会根据传入的值判断该变量的数据类型。且变量在使用前必须赋值,只有在赋值后变量才会在内存被创建。Python的命名规则java一样,遵循驼峰...
  • 变量的声明和赋值 1.变量名 = 表达式 运行过程,解释器先运行右边的表达式, 生成一个代表表达式运算结果的对象;然后,将这个对象地址赋值给左边的变量。  注:变量在使用前必须先被初始化(先被赋值) 2.删除...
  • python中变量的作用域 作用域 在python中,变量不需要提前进行预声明,但是,在使用变量之前,我们仍需要对其进行一次赋值操作,在不同位置定义的变量,是有不同的作用范围的,在变量的作用范围之外,使无法对变量...
  • 每个变量在内存创建,都包括变量的标识,名称数据这些信息。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 Python变量有三种赋值方式: 1、等号(=)运算符直接赋值,左边变量名,右边是存储...
  • python的变量不需要声明,但是需要初始化,python解释器会为每个出现对象分配内存,哪怕他们值完全相等(注意是相等不是相同),其中变量其实通过一个标记调用内存中的值,而变量名就是这个标记名称,python...
  • 声明和赋值python语言,声明变量非常简单 a = 5 比如在上面代码,我们创建了一个名字叫a的变量,并将5赋值给它,其中 a 表示一个变量 = 为赋值运算符,作用就是将其右侧值赋值给左侧...
  • Python语言声明变量的同时需要为其赋值,毕竟不代表任何值的变量毫无意义,Python语言也不允许有这样的变量。 声明一个变量也非常简单,语法结构如下: variable_name = variable_value 等号(=)左侧是...
  • python中的变量常见运算符变量基础概念什么是变量定义变量常见运算符 变量 基础概念 Python 是一种代表简单主义思想的语言。 什么是变量 在程序运行时可以发生变量的量。 变量是一个具有名称存储值的内存空间。...
  • 一、Python 中的变量赋值不需要类型声明。 每个变量在使用前都必须赋值变量赋值以后该变量才会被创建。 等号(=)用来给变量赋值。 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。...
  • 在函数定义中声明的变量,他们与在函数外使用其他同名变量没有任何关系,即变量名称对函数来说是局部 全局变量 如果想给在顶层程序定义的变量赋值,那么必须告诉python变量不是局部,而是全局。使用...
  • Python 程序中创建、改变或查找变量名时,都是在一个保存变量名的地方进行中,那个地方我们称之为命名...具体地说,在代码中变量名被赋值Python 中变量声明赋值,global 声明的只是变量的使用域)的位置决
  • Python中的全局变量局部变量 全局变量是定义在函数外的变量 即从定义变量的位置到本源文件结束都有效。  局部变量是定义在函数内的变量 即在一个函数内部定义的变量,只在本函数范围内有效。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 817
精华内容 326
关键字:

python中变量的声明和赋值

python 订阅