Python学习笔记---变量与数据类型

Python中的变量与内置数据类型

本文只是我在慕课网学习《Python入门》这门课程时,摘录、整理的一些对自己比较重要的语法与提示。九成以上的内容以及所有代码示例,均摘抄自慕课网。由于我本人有一定C/C++语言基础,而本文主要供我自己复习使用,所以我偏向于摘录一些Python和C/C++之间的差异之处,可能造成本文语义上不一定连贯,建议有学习需求的读者直接前往慕课网学习该课程(链接:http://www.imooc.com/learn/177)或是查看该门课程授课教师廖雪峰先生官方网站所给出的Python教程(链接:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000

1.变量

变量名构成:英文字母、阿拉伯数字、下划线,其中阿拉伯数字不能作为开头【和C一样嘛!】

同一个变量可以反复赋值,而且可以是不同类型的变量,这种变量本身类型不固定的语言称之为动态语言【与之对应的是静态语言(C、Java等),在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错】。例如:

a = 123       # a是整数
print a
a = 'imooc'   # a变为字符串
print a

2.字符串类型

字符串可以用单引号或者双引号括起来表示。字符串本身包含单引号,则可用双引号括起来表示(例1);字符串本身包含双引号,则可用单引号括起来表示(例2);字符串本身同时包含单引号与双引号,则必须转义(例3)。Python字符串用\进行转义,转义字符 \ 不计入字符串的内容中。

在字符串前面加r前缀,可以标志一个raw字符串(例4)。raw字符串里面的字符无需转义,适用于转义字符过多,且本身不含单双引号的情况。

用三个单引号可以把多行字符串括起来(例5)。

在字符串前面加u前缀,可以标志一个Unicode字符串(例6)。Unicode字符串内部使用unicode编码,适用于处理中文等非ASCII字符。 Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效(例7)。

raw字符串、多行字符串、Unicode字符串是不同维度的概念,可以交叉使用(例8)。

# 例1.字符串本身包含单引号,可用双引号括起来表示
print "I'm OK"

# 例2.字符串本身包含双引号,可用单引号括起来表示
print 'Learn "Python" in imooc'

# 例3.字符串本身同时包含单双引号,必须用反斜杆转义
print 'Bob said \"I\'m OK\".'

# 例4.用r前缀标志一个raw字符串
print r'\(~_~)/ \(~_~)/'

# 例5.用三个单引号括起一个多行字符串
print '''Python is created by Guido.
It is free and easy to learn.'''
# 等效于
print 'Python is created by Guido.\nIt is free and easy to learn.'

# 例6.用u前缀标志一个Unicode字符串
print u'中文'

# 例7.转义、Unicode、多行同时应用
print u'中文\n日文\n韩文'

# 例8.raw、Unicode、多行同时应用
print ur'''Python的Unicode字符串支持"中文",
"日文",
"韩文"等多种语言'''

如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题.可以在第一行添加注释:

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

目的是告诉Python解释器,用UTF-8编码读取源代码.然后用编辑器另存为... 并选择UTF-8格式保存。

3.布尔类型

在Python中,布尔类型只有True和False两种值,并把0、空字符串‘‘和None看成 False,其他数值和非空字符串都看成 True。

布尔类型还可以与其他数据类型做 and、or和not运算,但运算的结果可能不是布尔类型(例1)。例如:

# 例1 布尔类型与其他数据类型做逻辑运算,结果不为布尔类型
a = True
print a and 'a=T' or 'a=F'
# 打印结果是:a=T

这是因为,Python中的 and 和 or 运算有一条重要法则---短路计算:

  • 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
  • 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

因此,在上述例子中,True and ‘a=T‘ 计算结果是 ‘a=T‘,继续计算 ‘a=T‘ or ‘a=F‘ 计算结果还是 ‘a=T‘。【短路计算并不稀奇,C++其实也有,不同的只是,C++会先把非布尔类型转成布尔类型再进行运算,所以逻辑运算结果一定是布尔类型】

4.列表类型

4.1 list

list,是一种有序的列表。和其他语言不同,在Python中,它是一种内置的数据类型。list是数学意义上的有序集合。

构造list非常简单,直接用方括号 [ ]
把list的所有元素都括起来,就是一个list对象(例1);通常,我们会把list赋值给一个变量,这样,就可以通过变量来引用list;一个元素也没有的list,就是空list(例2)。【挺像C++ STL中的vector】

由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种不同类型的数据(例3)。【这点和vector差异较大】

可以通过索引来获取list中的指定元素。需要特别注意的是,索引从 0 开始,也就是说,第一个元素的索引是0,第二个元素的索引是1,以此类推(例4)。使用索引时,千万注意不要越界。【一定程度上,索引可以类比为C语言中的数组下标】

比较稀奇的是,在Python中还可以通过索引来倒序访问list中的指定元素!索引使用一个 -号来表示自己是倒序的,例如,我们可以用 -1 这个索引来表示最后一个元素,类似的,倒数第二用 -2 表示,倒数第三用 -3 表示…以此类推(例4)。

list 有两种方法可以添加新元素,其中:append()方法总是把新的元素添加到 list 的尾部;insert()方法接受两个参数,第一个参数是索引号num,第二个参数是待添加的新元素。使用insert()方法插入新元素后,list里面原先索引号为num及num以后的元素,依次后移一位。(例5)

list 使用pop()方法删除指定元素,该方法可以不要参数,则默认将list尾部的元素删掉;也可以接收一个索引号num,则将list索引为0的元素删掉。每次调用pop()方法后会自动打印出被删除的元素。(例6)

替换list 中指定元素,直接使用索引(正序逆序皆可)访问并赋新值即可。(例7)

# 例1 用[]把元素括起来就是list
L = ['Michael', 'Bob', 'Tracy']

# 例2 元素数据类型不完全相同的list
mix_list = ['Adam', 95.5, 'Lisa', 85, 'Bart', 59]

# 例3 空list
empty_list = []

# 例4 用索引获取list中的指定元素
print L[0]   # 用正序索引访问第一个元素
print L[-3]  # 用逆序索引访问第一个元素(倒数第3个元素)

# 例5 添加新元素
L.append('Tom')      # 将Tom添加到例1所示list的尾部
print L  # 显示:['Michael', 'Bob', 'Tracy', 'Tom']
L.insert(0, 'Alice') # 将Alice添加到例1所示list中索引为0的位置
print L  # 显示:['Alice', 'Michael', 'Bob', 'Tracy', 'Tom']

# 例6 删除元素
L.pop()      # 无参,默认将list尾部的元素删掉,显示:'Tom'
print L  # 显示:['Alice', 'Michael', 'Bob', 'Tracy']
L.pop(0)     # 参数为索引,将list索引为0的元素删掉,显示:'Alice'
print L  # 显示:['Michael', 'Bob', 'Tracy']

# 例6 替换元素
L[0]  = 'Alice'
L[-1] = 'Tom'
print L

4.2 tuple

tuple也是一种有序列表类型,一般译为“元组”。和list不同的是,tuple一旦创建完毕,就不能修改了。所以,tuple就没有append、insert、pop等方法,也不能通过索引重新赋值。

不同于list,创建tuple需要使用圆括号 ( )将所有元素括起来,而非方括号 [ ] (例1)。因为圆括号同时可以表示运算时的优先级,所以创建单元素tuple时必须在元素后面加一个逗号(例2)!

除以上几点以外,tuple的使用和list是类似的。(例3-5)

tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向‘a‘,就不能改成指向‘b‘;如果指向一个list,就不能改成指向其他对象。但是,指向的这个list本身是可变的(例3)!所以,要创建一个内容也不变的tuple就必须保证tuple的每一个元素本身也不能变。

# 例1 用()把元素括起来就是tuple
T = ('Michael', 'Bob', 'Tracy')

# 例2 创建单元素tuple
single_tuple = ('Bob',)
single_tuple = (10,)

# 例3 元素数据类型不完全相同的tuple
mix_tuple = ('Adam', 95.5, 'Lisa', 85, 'Bart', 59)

# 例4 空tuple
empty_tuple = ()

# 例5 用索引获取tuple中的指定元素
print T[0]   # 用正序索引访问第一个元素
print T[-3]  # 用逆序索引访问第一个元素(倒数第3个元素)

# 例6 "可变的"tuple
T = ('a', 'b', ['A', 'B'])
L = T[2]
L[0] = 'X'
L[1] = 'Y'
print T    #显示:('a', 'b', ['X', 'Y'])

5.待续

时间: 2024-12-29 06:42:45

Python学习笔记---变量与数据类型的相关文章

python学习笔记基础篇-数据类型

一.数据类型是什么鬼? 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型. 二.整形和浮点型 整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄.工资.成绩等等这样的数据就可以用int类型,有正整数.负整数和0,浮点型的也就是小数类型(folat)的,带小数点的 age = 18 b =

Python学习笔记 | 变量 + 引用 + 拷贝 + 作用域

在Python中,变量是没有类型的,在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没有赋值,那么Python认为这个变量没有定义(not defined). 一.变量和对象 1. 可变对象和不可变对象 在Python中,对象分为两种:可变对象和不可变对象,不可变对象包括int,float,long,str,tuple等,可变对象包括list,set,dict等.需要注意的是:这里说的不可变指的是值的不可变.对于不可变类

python学习笔记——变量和简单数据类型

1.变量的命名 同C语言 2.字符串 就是一系列字符. 在Python中, 用引号括起的都是字符串, 其中的引号可以是单引号, 也可以是双引号 2.1使用方法修改字符串的大小写 对于字符串, 可执行的最简单的操作之一是修改其中的单词的大小写. 请看下面的代码, 并尝试判断其作用     (就是调用一个类似函数的语句,格式为变量名称后面加个点,再加上方法的名称) name = "ada lovelace" print(name.title()) 上段代码的意思就是利用title()这个方

python学习笔记之-基本数据类型

1:变量不需要声明 Python的变量不需要声明,你可以直接输入: >>>a = 10 那么你的内存里就有了一个变量a, 它的值是10,它的类型是integer (整数). 在此之前你不需要做什么特别的声明,而数据类型是Python自动决定的. >>>print a >>>print type(a) 那么会有如下输出: 10 <type 'int'> 这里,我们学到一个内置函数type(), 用以查询变量的类型. 2:回收变量名 如果你想让

Linux下Python学习笔记 1:数据类型

一.开发环境 开发Python的环境选择很多,windows.Linux.MacOs都可以,除了Windows需要在Python官网上下载安装包,并配置环境变量.在Linux和MacOs上都是自带Python的,关于Python的版本大多都是2.7.* 本文选择了Ubuntu环境来学习Python,主要原因是为了顺便熟悉Linux的环境与命令,开发工具选择的是Vim,当然更多其他的选择有Eclipse.Sublime.pycharm等等,根据个人喜好选择即可, 另:文章部分内容来自Imooc和5

Python学习笔记五_数据类型(字符串)

已经学习过的数据类型包括:int.float.list.tuple.dict.这篇来单独记录下字符串.单独将字符串这种数据类型写出来,是因为python里有很多非常有用的字符串内置方法. 一.字符串定义 字符串可以存任意类型的字符串,比如名字,一句话等等. 1 name = 'Rebecca' 2 msg = 'Fighting' 二.字符串内置方法 1.常用方法 输出为字符串的方法 a = 'my name is Rebecca' print(a.capitalize()) #将字符串的第一个

Python学习笔记三:数据类型

数据类型 整数int 32位机器,-2**31~2**31-1,即-2147483648~2147483647(4亿多) 64位机器,-2**63~2**63-1,非常大了. 长整型long 没有位数,取决于机器内存.整数发生溢出会自动转换为长整型,一直为int,没有long的概念.Python 2.2以上使用type(数字)来验证. 浮点型(float) 不是小数,表示形式是小数,但小数不止是浮点数, 复数 x+yj 布尔值 真或假,1或0,True或False 字符串 "hello worl

Python学习笔记——几种数据类型

1. 列表list: Python内置的一种数据类型是列表:list,用中括号[]表示.list是一种有序的集合,可以随时添加和删除其中的元素,而且元素的类型不必相同.list可以通过下标来访问,范围从0到 len(name) - 1(len()函数可以获取列表长度). 1.1 插入 insert(position, element):可以通过下标将元素插入指定的位置,后面的元素会依次序后移一位. 1.2 添加 append(element):将元素插入列表末尾. 1.3 删除 pop(elem

python学习笔记day3(数据类型)

python数据类型: int 类型 float 小数类型 string 字符串 布尔类型 a = True b = False 1.列表,也称数组或list或array.它的表达方式通过下标或索引或编号来呈现.students=['张三','李四','王五','赵六']print(students[0])注:最前面一个元素的下标为0,最后面一个元素的下标为-1 cities = [] #增加:(两种方式)cities.append('北京') 在列表的末尾增加一个元素cities.insert