Python3 基本数据类型

Python3 基本数据类型

变量

Python支持的数据类型

Number(数字)

String(字符串)

List(列表)

Tuple(元组)

Set(集合)

Dictionary(字典)

Python数据类型转换

数据类型转换


 

变量

Python是动态语言,一个变量可以通过赋值指向不同类型的对象。

Python中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

如果某个对象不存在任何变量对它进行引用,那么Python会对该对象进行垃圾收集处理。

变量运算示例:

>>> a=100
>>> b=100
>>> a+b
200
>>> print(a+b)
200

多个变量赋值:

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

a = b = c = 1

创建一个整型对象,值为 1,从后向前赋值,三个变量都指向同一个内存地址。

也可以为多个对象指定多个变量,例如:

a, b, c = 1, 2, "runoob"

两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "runoob" 分配给变量 c。 


Python支持的数据类型

Number(数字)

Python 数字数据类型用于存储数值。

Python3 支持 int(整数)、float(浮点数)、bool(布尔值)、complex(复数)

备注:复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long,Python3 整型是没有限制大小的。

内置的 type() 函数可以用来查询变量所指对象的数据类型:

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

数值的除法包含两个运算符:/ 返回一个浮点数,// 返回结果的整数部分:

>>> 9/3
3.0
>>> 5/3
1.6666666666666667
>>> 5//3
1

数学函数

函数返回值 ( 描述 )
abs(x)返回数字的绝对值,如abs(-10) 返回 10
ceil(x)返回数字的上入整数,如math.ceil(4.1) 返回 5

cmp(x, y)

如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃 。使用 使用 (x>y)-(x<y) 替换。
exp(x)返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x)返回数字的下舍整数,如math.floor(4.9)返回 4
log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...)返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)返回给定参数的最小值,参数可以为序列。
modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)x**y 运算后的值。
round(x [,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
sqrt(x)返回数字x的平方根。

随机数函数

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。

Python包含以下常用随机数函数:

函数描述
choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
randrange ([start,] stop [,step])从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1
random()随机生成下一个实数,它在[0,1)范围内。
seed([x])改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。
shuffle(lst)将序列的所有元素随机排序
uniform(x, y)随机生成下一个实数,它在[x,y]范围内。

String(字符串)

Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

截取字符串的语法格式如下:

变量[头下标:尾下标]   截取的字符包括头下标,但不包括尾下标。

Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始:

>>> a='1234'
>>> a[0:3]
'123'
>>> a[-3:-1]
'23'

加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数:

>>> a='hello'
>>> b=' world'
>>> a+b
'hello world'
>>> a*2
'hellohello'

Python 使用反斜杠(\)作为转义字符,如果不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串(raw string):

>>> print('hello\nworld')
hello
world
>>> print(r'hello\nworld')
hello\nworld

另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """或者 '''跨越多行:

#用反斜杠(\)续行
>>> print('hello\
... world')
helloworld

#用'''...'''表示含有换行的字符串
>>> print('''hello
... world''')
hello
world

#加上r表示输出原始字符串
>>> print(r'''hello\n
... world''')
hello\n
world
>>> print('''hello\n
... world''')
hello

world

Python字符串运算符

下表实例变量a值为字符串 "Hello",b变量值为 "Python":

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回 True'H' in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True'M' not in a 输出结果 True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。print( r'\n' )
print( R'\n' )
%格式字符串请看下一节内容。

List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:

变量[头下标:尾下标]    截取的元素包括头下标,但不包括尾下标

列表索引从左往右以0开始,从右往左以-1开始。

>>> t=['a','b','c']
>>> t[0:2]
['a', 'b']
>>> t[-3:]
['a', 'b', 'c']
>>> t[:]
['a', 'b', 'c']

加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

>>> a=['a','b']
>>> b=['c','d']
>>> a+b
['a', 'b', 'c', 'd']
>>> a*2
['a', 'b', 'a', 'b']

与Python字符串不一样的是,列表中的元素是可以改变的:

>>>a = [1, 2, 3, 4, 5, 6] 
>>> a[0] = 9 
>>> a[2:5] = [13, 14, 15] 
>>> a [9, 2, 13, 14, 15, 6] 
>>> a[2:5] = [] # 将对应的元素值设置为 [] 
>>> a [9, 2, 6]

删除列表元素

可以使用 del 语句来删除列表的的元素,如下实例:

>>> t=[1,2,3]
>>> del(t[0]) #可以带括号
>>> t
[2, 3]
>>> del t[0] #或不带括号
>>> t
[3]

嵌套列表

使用嵌套列表即在列表里创建其它列表,例如:

>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'

列表函数&方法

Python列表包含以下函数:

序号函数
1len(list)
列表元素个数
2max(list)
返回列表元素最大值
3min(list)
返回列表元素最小值
4list(seq)
将元组转换为列表

Python列表包含以下方法:

序号方法
1list.append(obj)
在列表末尾添加新的对象
2list.count(obj)
统计某个元素在列表中出现的次数
3list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5list.insert(index, obj)
将对象插入列表
6list.pop([index=-1]])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj)
移除列表中某个值的第一个匹配项
8list.reverse()
反向列表中元素
9list.sort(cmp=None, key=None, reverse=False)
对原列表进行排序
10list.clear()
清空列表
11list.copy()
复制列表

Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组中的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

元组中的元素的数据类型也可以不相同:

>>> t=('123',123)
>>> print(t)
('123', 123)

和字符串一样,元组同样可以被索引和截取,元组被截取后返回一个包含所需元素的新元组:

>>> t=('hello',123,7.89)
>>> t[0:2]
('hello', 123)
>>> t[:]
('hello', 123, 7.89)

 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

>>> t=[] #构造空列表
>>> print(t)
[]
>>> t=[2,] #构造仅含有一个元素的列表,元素后面可以不带逗号
>>> t
[2]
>>> t=(2,) #构造仅含有一个元素的元组,元素后面必须要带逗号
>>> t[0]
2 
>>> t=() #构造空元组
>>> t
()

Set(集合)

集合(set)是一个无序的不重复元素序列:

>>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
>>> print(basket)                      # 这里演示的是去重功能
{'orange', 'banana', 'pear', 'apple'}  #这个才是真正的basket引用的集合对象,而且顺序也和初始创
                                       #建时不一样

 添加元素

s.add( x )

将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.add("Facebook")
>>> print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}

还有一个方法,也可以添加元素,且参数可以是列表,元组,字典等,语法格式如下:

s.update( x )

x 可以有多个,用逗号分开。

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({1,3})
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])  
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}
>>>

移除元素

s.remove( x )

将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误:

>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")
>>> print(thisset)
{'Google', 'Runoob'}
>>> thisset.remove("Facebook")   # 元素不存在,会发生错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Facebook'
>>>

此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下所示:

s.discard( x )
>>>thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook")  # 元素不存在,不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}

我们也可以设置随机删除集合中的一个元素,语法格式如下:

s.pop() 

集合内置方法完整列表

方法描述
add()为集合添加元素
clear()移除集合中的所有元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在。
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()删除集合中的元素,该元素在指定的集合中不存在。
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset()判断指定集合是否为该方法参数集合的子集。
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合。
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union()返回两个集合的并集
update()给集合添加元素

Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

字典当中的元素是通过键来存取的,而不是通过索引存取。

字典是一种映射类型,字典用"{ }"标识,它的元素是键值对,每个键值之间用冒号(:)分隔,每个键值对之间用逗号(,)分隔。创建空字典用{}。

字典中的键(key)必须使用不可变类型,例如,字符串、数字或元组。

在同一个字典中,键(key)必须是唯一的。

字典中的元素可以被修改,包括新增、删除和修改值。

访问字典里的值

把相应的键放入到方括号中,如下实例:

>>> t={'name':'xiaoming','age':18}
>>> t['name']
'xiaoming'
>>> t['age']
18

Python数据类型转换

数据类型的转换,只需要将数据类型作为函数名即可。

>>> t='123'
>>> int(t)
123

数据类型转换

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值