学习2: 数据类型和变量

1. 变量

Python 变量仅是名称。变量名的创建是通过把类型的实例赋值给它们。变量本身并没有类型,而与它们绑定在一起的对象拥有类型。

名称只是个标签,同样,它也可以被一个完全不同的对象重新赋值。赋值操作使用=操作符,所以把一个值赋给一个变量就如下所示:

aVariable = aValue

这段代码把值aValue 绑定到变量名aVariable 上。如果此变量名不存在,解释器会把这个名称添加到合适的命名空间中。

因此,在Python 中区别变量和它指向的对象是非常重要的。

1) 变量判断: is 和 ==

is判断两个变量是否指向同一个变量,  ==判断两个变量指向的对象是否相等

>>> aString = ‘I love spam‘
>>> anotherString = ‘I love spam‘
>>> anInt = 6
>>> intAlias = anInt
>>> aString == anotherString # test equality of value
True
>>> aString is anotherString # test object identity
False
>>> anInt == intAlias # same value
True
>>> anInt is intAlias # also same object identity
True

2)  变量种类: 全局变量和局部变量

例如1:

name=‘tom‘
def test():
    print name

test()

输出:
tom
[Finished in 0.2s]
说明:函数中可以直接使用全局变量,打印name时候查找name变量,先查找局部name没有找到,再查找全局name,找到了然后输出。

例如2:

name=‘tom‘
def test2():
    if name == ‘tom‘:
        pass
    else:    name = ‘liming‘
    print name
test2() 

执行报错:UnboundLocalError: local variable ‘name‘ referenced before assignment
说明:函数中先引用name判断是否等于‘tom‘,先找局部name没有找到,然后再找全局name找到了,所以使用全局name判断,然后else中又对这个全局name进行赋值,所以报错。
如果函数中的变量是引用的全局变量,那么函数不能对该变量直接重新赋值,如果必须重新赋值那么需要在函数中先通过global引用,如下

例如3:

name=‘tom‘
def test2():
    global name
    if name == ‘tim‘:
        pass
    else:    name = ‘liming‘
    print name
test2()
print name

正常输出:
liming
liming
[Finished in 0.2s]
说明:这个函数中通过使用global引用了全局name,所以在函数中可以对该全局name重新赋值。重结果中可以看到全局name的值已经被修改

例如4:

name=‘tom‘
def test2():
    name = ‘liming‘
    print name
test2()
print name

正常输出:
liming
tom
[Finished in 0.3s]
说明:此处在函数中直接定义了一个局部name,注意这个是定义局部变量而不会查找全局变量。局部变量和全局变量都可以正常输出,互不影响。

2. 数值类型: 整数和浮点数

3. 布尔类型

在Python中 None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False:

>>> bool()
False
>>> int(bool())
0
>>> int(True)
1
>>> int(False)
0

4. 空值类型None

空值是Python里一个特殊的值,用None表示。所有对None对象的引用都是同一个实例

>>> a=None
>>> b=None
>>> a==b
True
>>> a is b
True

5. 字符串

6. 列表

1) list是一种有序的集合,可以随时添加和删除其中的元素; 空列表定义a=[]

2) 可以用索引访问其中某一个元素,索引从0开始;当索引超出了范围时,Python会报一个IndexError错误,所以,要确保索引不要越界,最后一个元素的索引是len(a) - 1
    如果要取最后一个元素,除了计算索引位置外,还可以用-1做索引,直接获取最后一个元素,以此类推,可以获取倒数第2个、倒数第3个

3)可以通过切片访问其中的多个元素
4) list相关函数,可以通过help(list)查看

list相关操作:

添加

append(元素) : 末尾添加元素
extend(列表) : 合并另外一个列表
insert(索引位置,元素): 在某个位置插入元素

>>> a=[2,1,2]
>>> a[0]=3
>>> a
[3, 1, 2]
>>> b
[4, 7, 6, 10]
>>> a.append(5)
>>> a
[3, 1, 2, 5]
>>> a.extend(b)
>>> a
[3, 1, 2, 5, 4, 7, 6, 10]
>>> a.insert(0,9)
>>> a
[9, 3, 1, 2, 5, 4, 7, 6, 10]
>>> a.insert(1,8)
>>> a
[9, 8, 3, 1, 2, 5, 4, 7, 6, 10]
>>> a.insert(5,1)
>>> a
[9, 8, 3, 1, 2, 1, 5, 4, 7, 6, 10]  

注: 两个列表相并除了用extend方法,用+可以扩展另外一个列表,用*可以扩展自身列表

>>> a=[1,2]
>>> b=[3,4]
>>> a+b
[1, 2, 3, 4]
>>> a*2
[1, 2, 1, 2]

  

删除:
remove(元素): 删除指定元素,如果有多个相同元素只删除第一个;
pop(索引位置): 删除指定位置元素,如果不指定表示删除最后一个元素;

del:

注意三者之间的区别.

>>> a
[9, 8, 3, 1, 2, 1, 5, 4, 7, 6, 10]
>>> a.remove(1)
>>> a
[9, 8, 3, 2, 1, 5, 4, 7, 6, 10]
>>> a.pop(0)
9
>>> a
[8, 3, 2, 1, 5, 4, 7, 6, 10]
>>> a.pop()
10
>>> a
[8, 3, 2, 1, 5, 4, 7, 6]
>>> a=[8, 7, 6, 6, 5, 4, 3, 2, 1]
>>> b=a
>>> del a[0]
>>> a
[7, 6, 6, 5, 4, 3, 2, 1]
>>> b
[7, 6, 6, 5, 4, 3, 2, 1]
>>> del a
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘a‘ is not defined
>>> b
[7, 6, 6, 5, 4, 3, 2, 1] 

修改:
直接根据列表索引位置重新赋值即可,注意首先必须保证索引位置没有超出列表的索引范围;
>>> a=[]
>>> a[0]=3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range

查询:
index(元素): 根据元素内容查询其所在的索引位置;
count(元素): 统计某个元素在列表中有多少个;
index和count的区别: 两者都可以用来查询列表元素,如果元素不在列表中的话index会出现异常,而count会返回0

len(列表): 统计列表的长度,也就是有多少个元素;
sort():
reverse():

>>> a
[8, 3, 2, 1, 5, 4, 7, 6]
>>> a.index(1)
3
>>> a.insert(2,6)
>>> a
[8, 3, 6, 2, 1, 5, 4, 7, 6]
 >>> a.count(3)
1
>>> a.count(6)
2
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 6, 6, 7, 8]
>>> a.reverse()
>>> a
[8, 7, 6, 6, 5, 4, 3, 2, 1]
>>> len(a)
9

判断某个元素是否存在于列表中也可以使用in的方法

循环遍历列表:

while

for

7. 元组

1) tuple称为元组,有序但是元素不可变更,一旦初始化之后就不能再修改;空元组定义为 a=()
2) tuple也可以通过索引访问某一个元素,索引从0开始
3) tuple相关函数:
index(元素): 和列表相同也是根据元祖内容查询它的索引位置;
count(元素): 和列表一样也是统计某个元素出现的次数;
index和count的区别: 两者都可以用来查询tuple元素,如果元素不在tuple中的话index会出现异常,而count会返回0

>>> m=(6,8,10,6)
>>> m.count(6)
2
>>> m.count(10)
1
>>> m.index(10)
2
>>> m.index(6)
0 
>>> a=(1,2,3,4)
>>> a.index(0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
>>> a.count(0)
0
>>> a.index(1)
0
>>> a.count(1)
1
>>>   

4) 只有一个元素的元组,定义为a=(1,),不能定义为a=(1);

>>> a=(1,)
>>> type(a)
<type ‘tuple‘>
>>> a=(1)
>>> type(a)
<type ‘int‘>

5) 元组的不可变更是指元组的元素指向不可更新,如果元素指向某个列表的时候,列表的内容更新不受限制;

>>> m=(1,2)
>>> m
(1, 2)
>>> a=[‘a‘,‘b‘]
>>> m=(1,2,a)
>>> m
(1, 2, [‘a‘, ‘b‘])
>>> a.append(‘c‘)
>>> a
[‘a‘, ‘b‘, ‘c‘]
>>> m
(1, 2, [‘a‘, ‘b‘, ‘c‘])

  

8. 字典

9. 集合

 

 

时间: 2024-10-15 11:54:34

学习2: 数据类型和变量的相关文章

java学习笔记----数据类型,变量,常量

一.数据类型 1.基本类型(8种,又称内置数据类型).6种数字类型(byte,short,int,long,float,double),一种字符型(char),一种布尔类型(boolean). byte: byte数据类型是8位.有符号的,以二进制补码表示的整数:占1个字节: 最小值是-128(-2^7): 最大值是127(2^7-1): 默认值是0: byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一: 例子:byte a = 100,byte

python语言学习7——数据类型和变量

整数 python可以处理任意大小的整数,包括负整数,在程序中的表示方法和数学上的写法一样 计算机由于使用二进制,有时候采用十六进制表示整数比较方便,十六进制数用0x前缀 浮点数 简单的小数就直接用小数表示就好 对于很大或很小的浮点数,就必须用科学计数法 浮点数是四舍五入的 字符串 字符串是以'或双引号"括起来的任意文本 ''或""本身只是一种表示方式,不是字符串的一部分 如果'本身也是一个字符,那就可以用""括起来 如果字符串内部既包含'又包含"

廖雪峰官网学习js 数据类型和变量

数据类型: number 不分整数 和浮点数 字符串 用' '      "  "   表示 布尔值  true  false && 与运算符(都ture才ture)    || 或运算符(一个ture就ture)   ! 非运算符(单目运算 把ture 变为 false) 运算符 >   <  =  >=  <=  ==  ===  !=  !=== !!! NaN 是个特殊的number 与所有的值都不等 包括它自己(NaN是number的一

Python学习笔记——数据类型和变量

在Python中,能够直接处理的数据类型有: 整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等. 浮点数 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的.浮

javascript学习笔记 数据类型与变量

javascript中最基本的三种数据类型:数值型,文本型,布尔型. 数值型分为整数和浮点数. 文本型就是字符或者字符串,放在双引号""或者单引号''之中都可以,如果字符串中含有引号,则可以使用转义字符,\'   \" ,其他常用转义字符:\\ 反斜线,\n换行符,\r回车符,\t制表符tab,\b退格字符,\f换页符,\xNN NN是十六进制数,表示Latin-1字符集中的一个字符. 布尔型分为true和false. javascript中的基本运算符包括自增自减运算符都与

C语言基础学习基本数据类型-变量和常量

变量和常量 什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量:有些数据在程序运行中可能发生变化或被赋值,称之为变量. 使用变量前必须先声明一个变量.变量定义的语法是:数据类型名 变量名 ; 比如我们可以这样定义一个整型变量: int a;  //int类型表示整型 若要声明多个变量,可以逐个声明,也可以在数据类型名后面加上多个变量名,中间用逗号分隔: 数据类型名 变量名1, 变量名2, 变量名3; 创建变量的同时可以为其赋值,也就是初始化变量.语法为: 数据

Java学习笔记3、变量、数据类型

标识符 常见的命名规则(见名知意) 包名全部小写 类或者接口,一个单词:首字母大写,多个单词:每个单词首字母大写. 方法或者变量:一个单词:首字母小写,多个单词:从第二个单词开始,每个单词首字母大写. 常量:全部大写.一个单词:大写.多个单词:大写,并用_隔开.?? 变量 运算时,不是拿着空间去运算,真正使用的是该空间中的值.此空间被命名了变量名. 即使变量有了数据类型和变量名,若没有值,是一个垃圾空间,无任何意义. 变量的作用域,在同一个大括号内有效.同一作用域中不能有同名的变量. 原码.反码

Python学习:基本数据类型与变量(中)与基础之条件及循环(上)

一.数据类型和变量 1.可变与不可变数据类型 可变数据类型:在id不变的情况下,数据类型内部的元素可以改变 列表 字典 不可变数据类型:value改变,id也跟着改变 数字 字符串 布尔 补充: True--->1 False--->0 2.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: and注解: 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一. 在布尔上下文中从左到右演算表达式的

python2 学习 数据类型和变量

数据类型和变量 数据类型 整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等. 浮点数 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的.浮点数可以用数学写法,