变量的定义与赋值

Python 是动态语言,我们不需要为变量指定数据类型,只需要输入变量名和值就行了。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

此外 Python 允许你同时为多个变量赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。

你甚至可以在一行内将多个值赋值给多个变量,这个技巧用来交换两个数的值非常方便。

>>> a, b = b , a
>>> a
54
>>> b
45

这涉及到元组的知识,在赋值语句的右边我们创建了一个元组,我们称这为元组封装(tuple packing),赋值语句的左边我们则做的是元组拆封 (tuple unpacking)。

标准数据类型

Python3 中有六个标准的数据类型:

  1. Number(数字)

    • Python3 支持 int、float、bool、complex(复数)。在Python3 里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
    • isinstance() 和 type() 函数可以用来判断变量所指的对象类型,不同的是:type()不会认为子类是一种父类类型,而isinstance()则会认为子类是一种父类类型。
    # a为int类型则返回true
    isinstance(a, int)
    # 打印a的数据类型
    print (type(a))
  2. String(字符串)

    • Python 中字符串用单引号或双引号括起来,使用反斜杠 \ 转义特殊字符。使用三引号( '''""" )可以指定一个多行字符串,反斜杠 \ 也可以作为续行符(转义换行符,也适用于表达式和语句)。
    • 在交互式解释器中,输出的字符串会用引号引起来,特殊字符会用反斜杠转义。如果字符串中只有单引号而没有双引号,就用双引号引用,否则用单引号引用。print() 函数生成可读性更好的输出, 它会省去引号并且打印出转义后的特殊字符。
    • 如果你前面带有 \ 的字符被当作特殊字符,你可以使用原始字符串,方法是在第一个引号前面加上一个 r
      >>> print(r'C:\some\name')  # note the r before the quote
      C:\some\name

    但是原始字符串不能以反斜杠 \ 结尾,最后的引号会被转义(bug?),让解释器不清楚是否应该结束该字符串。一个简单的解决办法是把反斜杠单独出来,写成 r"str" "\\"

    • 支持索引,索引获得单个字符。字符串的第一个字符索引为 0 ,不过索引也可以是负数,这将导致从右边开始计算,-1 表示最后一个字符,-2 表示倒数第二个这样。
    • 支持切片,切片获得一个子字符串。切片包含起始的字符不包含末尾的字符。这使得 s[:i] + s[i:] 永远等于 s 。切片的索引有非常有用的默认值,省略的第一个索引默认为零,省略的第二个索引默认为切片的字符串的大小。Python 能够优雅地处理那些没有意义的切片索引:一个过大的索引值(即下标值大于字符串实际长度)将被字符串实际长度所代替,当上边界比下边界大时(即切片左值大于右值)就返回空字符串。
    • 内置函数 len(String str) 将会返回字符串的长度。
    • 字符串可以由 + 操作符连接(粘到一起),可以由 * 表示重复。
    • 注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。
    • 与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。
  3. List(列表)

    • 列表是写在方括号 [] 之间、用逗号分隔开的元素列表,支持+连接。
    • 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
    • 和字符串一样,列表同样可以被索引切片,列表被截取后返回一个包含所需元素的列表(浅拷贝)。
    • 与Python字符串不一样的是,列表中的元素是可以改变的,允许对索引和切片赋值。
    • 对切片赋值会改变原列表的值或尺寸,但严格上来说这不是切片操作,只是形式一样而已。
  4. Tuple(元组)

    • 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
    • 虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
    • 构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
      tup1 = ()    # 空元组
      tup2 = (20,) # 一个元素,需要在元素后添加逗号
    • string、list和tuple都属于sequence(序列)
  5. Sets(集合)

    • 集合(set)是一个无序不重复元素的序列。
    • 基本功能是进行成员关系测试和删除重复元素。
    • 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
  6. Dictionary(字典)

    • 列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过来存取的,而不是通过偏移存取。
    • 字典是一种映射类型,字典用 { } 标识,它是一个无序的键(key) : 值(value)对集合。
    • 键(key)必须使用不可变类型,而且在同一个字典中,键(key)必须是唯一的。

类型转换

Python 是强类型语言,所以必要的时候需要手动进行类型转换。

类型转换函数 转换路径
float(string) 字符串 -> 浮点值
int(string) 字符串 -> 整数值
str(integer) 整数值 -> 字符串
str(float) 浮点值 -> 字符串
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式

参考资料

Python 变量和数据类型的更多相关文章

  1. Python变量和数据类型(入门2)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6400809.html 本文出自:[Edwin博客园] Python变量和数据类型 一.整数 int = 20 ...

  2. python入门课程 第3章 Python变量和数据类型

    第3章 Python变量和数据类型3-1 Python中数据类型计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形 ...

  3. Python变量、数据类型6

    1.Python变量 变量,即代表某个value的名字. 变量的值存储在内存中,这意味着在创建变量时会在内存中开辟一个空间. !!!即值并没有保存在变量中,它们保存在计算机内存的深处,被变量引用.所以 ...

  4. 【python系列】--Python变量和数据类型

    python数据类型 一.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用 ...

  5. Python变量和数据类型

    十六进制用0x前缀和0-9 a-f表示   字符串是以''或""括起来的任意文本   一个布尔值只有True和False两种值   布尔值可以用and or not运算   空值是 ...

  6. python变量与数据类型

    变量 什么是变量 所谓变量,指的是在程序运行过程中需要用到的中间结果,变量定义后,会占用一块内存开辟的空间地址,通过内存空间确保同一时间的唯一性. >>> print(id.__do ...

  7. Python变量及数据类型

    所有编程语言几乎都会有 ’ 变量‘ ,如 a = 2,用一个a变量指代数字2,在Python中,一切皆对象,因此在变量赋值的时候实际上是在内存中开辟了一块存储变量内容的内存空间对象. 对象可以指定不同 ...

  8. Python 变量与数据类型

    1.变量命名规则: 变量名只能是字母,数字和下划线的任意组合 变量名第一个字符不能是数字 变量名区分大小写,大小写字母被认为是两个不同的字符 特殊关键字不能命名为变量名 2.数值的运算 print ( ...

  9. Python变量和数据类型,类型转换

    a.变量的定义 把数据分别用一个简单的名字代表,方便在接下来的程序中引用. 变量就是代表某个数据(值)的名称. 变量就是用来存储数据的,将不同的数据类型存储到内存   b.变量的赋值 变量名= 初始值 ...

随机推荐

  1. 2.2.2 加入factory机制

    上一节给出了一个只有driver.使用UVM搭建的验证平台.严格来说这根本就不算是UVM验证平台,因为UVM的特性几乎一点都没有用到.像上节中my_driver的实例化及drv.main_phase的 ...

  2. 基于开源Red5搭建的视频直播平台

    开始之前,为了便于大家了解Red5,此处引用网络文字,非原创 引言 流媒体文件是目前非常流行的网络媒体格式之一,这种文件允许用户一边下载一边播放,从而大大减少了用户等待播放的时间.另外通过网络播放流媒 ...

  3. golang命令和VSCode配置

    Go是一门全新的静态类型开发语言,具有自动垃圾回收.丰富的内置类型.函数多返回值.错误处理.匿名函数.并发编程.反射等特性 golang常用命令: go env #查看go的环境 echo %GORO ...

  4. C# 文件上传 制作水印

    其实C#的文件上传是非常简单的 前台代码 <asp:FileUpload ID="FileUpload1" accept=".jpg,.png,.jpeg" ...

  5. JAVA基础之——Thrift原理及应用

    1 是什么 是为了解决facebook系统中各系统间大数据量的传输通信,以及系统之间语言环境不同需要跨平台的问题. 是一种实现RPC的软件框架,自定义IDL(Interface description ...

  6. FisherYates费雪耶兹随机置乱算法

    public class FisherYates { public static void main(String[] args) { int[] arr = new int[10]; // 初始有序 ...

  7. javaweb项目中绝对路径的写法理解

    Tomcat的默认访问路径为http://localhost:8080,后需添加项目路径. 请求转发,是转发到本项目中的其他文件,所以在默认访问路径中添加了本项目的项目路径,故可以省略项目名称: re ...

  8. C++输入输出流--<iostream>详解

    C++输入输出流包含在头文件<iostream>中, 流的定义如下:通过设备驱动程序与键盘.屏幕.文件.打印机等进行交互, iostream 类提供与之交互的方法.输出流:输出流的对象是字 ...

  9. ES6学习笔记(三)-正则扩展

    PS: 前段时间转入有道云笔记,体验非常友好,所以笔记一般记录于云笔记中,每隔一段时间,会整理一下, 发在博客上与大家一起分享,交流和学习. 以下:

  10. HTML5 Web存储 页面间进行传值

    在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可 ...