Python变量、数据类型、数据类型转换相关函数用法实例详解


Posted in Python onJanuary 09, 2020

本文实例讲述了Python变量、数据类型、数据类型转换相关函数用法。分享给大家供大家参考,具体如下:

python变量的使用不需要进行类型声明(类型名 变量名),给一个变量名赋什么值就是什么类型。

  • 变量的赋值使用 =

Python变量、数据类型、数据类型转换相关函数用法实例详解

说明:虽然python声明变量时没有一个类型来圈注,但它并不是弱类型语言,相反,它是一门强类型语言。

  • 弱类型的语言的东西没有明显的类型,它能随着环境的不同自动变换类型;
  • 而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作

为什么说 Python 是强类型语言


Python变量命名规则:

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 不能与关键字重名(关键字用着用着就记熟了)

Python变量、数据类型、数据类型转换相关函数用法实例详解


数据类型

整数int类型:

python3中移除了python2中的long

Python3中没有限制int数值的大小

Python变量、数据类型、数据类型转换相关函数用法实例详解

  • 可以用其他数制来表示数值:二进制是以0b开头的,8进制是以0O(第二个是英文o,大小写都可以)开头的,16进制是以0x开头的
>>> i=0b1111
>>> print(i)
15
>>> i=0x0010
>>> print(i)
16
>>> i=0o0010
>>> print(i)
8
>>> i=0O0010
>>> print(i)
8

小数float类型:

  • 可以用小数表示:3.1415,1.5,.......
  • 也可以用科学计数法表示(10用e替代,比如0.000012可以写成  1.2e-5)
>>> a=1.5
>>> print(a)
1.5
>>> a=-9999.5
>>> print(a)
-9999.5
>>> a=1.5e5
>>> print(a)
150000.0
>>> a=1.5e-10
>>> print(a)
1.5e-10
>>> a=0.0000000000000001
>>> print(a)
1e-16

注:对于太小的数,会自动转化成科学计数法表示,太大的数不会自动转化

 

布尔bool类型:True、False

  • 使用True和False两个关键字来表示布尔类型
  • 可以使用非零数值表示True,但总觉得这是一个不好的习惯
>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
>>> a=bool(2)
>>> a
True
>>> a=int(True)
>>> a
1
>>> print(int(False))
0

字符串str类型:

  • Python不支持字符类型; 字符会被视为长度为  1的字符串
  • 可以使用两个单引号,或两个双引号来代表字符串
>>> type("aaaa")
<class 'str'>
>>> type('aaaa')
<class 'str'>
  • 可以使用下标来访问字符串的值【-1代表最后一位】:
>>> str1="123"
>>> str1[0]
'1'
>>> str1[-1]
'3'
  • 可以对字符串进行切片(切片方法:字符串名[左下标:右下标(不取到右下标)]),返回值是切片后的字符串,但并不会改变原字符串的值

【    [:]代表完全切片,[:右下标]代表从零开始,[左下边:]代表结尾是最后一位,-1下标代表最后一位   】

【切片也可以有间隔,用法字符串名[左下标:右下标:间隔]   】

>>> hello="hello world!"
>>> new_hello=hello[:]
>>> new_hello
'hello world!'
>>> hello[:2]
'he'
>>> hello[1:3]
'el'
>>> hello[1:-1]
'ello world'
>>> hello[1:-1:1]
'ello world'
>>> hello[1:-1:2]
'el ol'
  • 可以使用三引号(单引号或双引号)来代表多行字符串
>>> type("""hahah
haha
hahah""")
<class 'str'>
>>> type('''第一行
第二行
第三行''')
<class 'str'>
  • 常用函数:补充
  • 字符串格式化:补充
  • 原始字符串:补充

列表list类型:

  • list是一种有序的集合,可以随时添加和删除其中的元素。
  • 使用中括号包裹元素,表明这是一个列表。[元素,元素,元素,.......]
>>> i=['a',100,True]
>>> type(i)
<class 'list'>
  • 列表的元素不限定数据类型,可以是字符串,可以是数值,可以是布尔类型,也可以是其他列表等等
  • 列表可以是空的:list1=[]
  • 可以使用list函数来创建列表
>>> list("abcd")
['a', 'b', 'c', 'd']
  • 列表也可以使用下标来访问元素,也可以切片,操作与字符串相同。
  • 列表可以替换元素【使用 = 】:
>>> i
['a', 100, True]
>>> i[0]='b'
>>> i
['b', 100, True]
  • 如果列表中包含列表时,如果要取子列表中的元素,相当于操作“二维数组”,使用 列表名[索引][索引]:
>>> i
['b', 100, True]
>>> l=[i,"helloworld"]
>>> l
[['b', 100, True], 'helloworld']
>>> l[0][0]
'b'
  • 可以使用“+”拼接列表,使用*重复列表
>>> l2=i*2
>>> l2
['b', 100, True, 'b', 100, True]
>>> l3=i+l
>>> l3
['b', 100, True, ['b', 100, True], 'helloworld']
  • 列表常用函数:补充
  • 列表生成式:补充

元组tuple类型:

  • 使用()跟,来表示元组,当tuple中只有一个元素时,逗号可以特别的说明这是一个tuple,实际上,python也允许tuple定义时没有括号
>>> t1=('a',1,True)
>>> type(t1)
<class 'tuple'>
>>> t2=('a')
>>> type(t2)
<class 'str'>
>>> ####注意上面的类型###
>>> t3=('a',)
>>> type(t3)
<class 'tuple'>
>>> tuple2=1,2,3,4,5
>>> type(tuple2)
<class 'tuple'>
>>> tuple2
(1, 2, 3, 4, 5)
  • 有序列表叫元组,tuple的元素一旦初始化就不能修改,但可以存储list,因为tuple并不会复制一份list到自己的内存中,它只会存储list的内存指向,只要list的内存指向不变,就不跟tuple的不变原则冲突。
>>> t1=('a',i)
>>> t1
('a', ['b', 100, True])
>>> id(t1[1])
1673650817160
>>> id(i)
1673650817160
  • tuple也可以可以使用下标来访问元素,也可以切片,操作与字符串相同。
  • 元组可以为空
  • 元组常用函数

    tuple一旦初始化就不能修改,所以它没有append()、insert(),也没有pop()等能增删元素的方法

    >>> tuple1=(1,2,3,4)
    >>> print(tuple1.index(2))#查找指定元素的下标
    1
    >>> print(tuple1.count(2))#查找某元素存在的数量
    1

字典dict类型:

  • 使用键-值(key-value)存储
  • 由于其哈希特性,因此具有极快的查找速度
  • 可以使用{键1:值1,键2:值2,键3:值3 ...}来定义一个字典
>>> d1={'a':'apple','b':'banana','c':'cabbage'}
>>> type(d1)
<class 'dict'>
  • 字典是使用哈希算法来计算对应对应值的位置的,所以key必须是固定不可变的,在Python中,字符串、整数等都是不可变的,所以,可以作为key。其余元素可变的对象如list、set、dict就不能作为key,因为其元素结果不确定,无法确定哈希值。
>>> l1=['a']
>>> d1[l1]='c'
Traceback (most recent call last):
 File "<pyshell#5>", line 1, in <module>
  d1[l1]='c'
TypeError: unhashable type: 'list'
  • dict内部存放的顺序和key放入的顺序是没有关系的
  • 可以使用  字典名[键]     快速查找出对应的值,键不存在则无法查找
>>> d1
{'a': 'apple', 'b': 'banana', 'c': 'cabbage', ('a',): 'c'}
>>> d1['a']
'apple'
>>> d1['d']
Traceback (most recent call last):
 File "<pyshell#17>", line 1, in <module>
  d1['d']
KeyError: 'd'
  • 可以给某一个键的对应的值重新赋值,但由于一个key只能对应一个value,所以新的赋值会把就得值覆盖掉【如果定义的时候出现多个同名的键,这个键的值以最后的赋值为准】
>>> d1
{'a': 'apple', 'b': 'banana', 'c': 'cabbage', ('a',): 'c'}
>>> d1['a']='apple pen'
>>> d1
{'a': 'apple pen', 'b': 'banana', 'c': 'cabbage', ('a',): 'c'}
  • 可以使用   字典名[一个未使用的键]=值  来添加一个键值对:
>>> d1
{'a': 'apple pen', 'b': 'banana', 'c': 'cabbage', ('a',): 'c'}
>>> d1['ai']='python'
>>> d1
{'a': 'apple pen', 'b': 'banana', 'c': 'cabbage', ('a',): 'c', 'ai': 'python'}
  • 注:直接迭代字典,只能迭代出key
>>> dict10={1:"苹果","雪碧":"雪梨"}
>>> 
>>> for i in dict10:
  print(i)
1
雪碧
  • 使用 字典名[key] 获取不存在的键时会抛出异常KeyError,可以使用成员运算符来避免或使用get()来避免
>>> dict10
{1: '苹果', '雪碧': '雪梨'}
>>> 1 in dict10
True
>>> 3 in dict10
False
>>> print(dict10.get(3))
None
>>> print(dict10.get(1))
苹果
  • 字典常用函数:补充

集合类型:

  • set和dict类似,也是使用大括号包裹
  • 可以使用大括号来定义一个集合
>>> s1={'a','b','c'}
>>> s1
{'b', 'c', 'a'}
>>> type(s1)
<class 'set'>
  • 可以使用set来定义一个集合,set函数的参数为一个可迭代对象(Iterable)
>>> s2=set()
>>> type(s2)
<class 'set'>
>>> s3=set(['a','b','c'])
>>> type(s3)
<class 'set'>

Python变量、数据类型、数据类型转换相关函数用法实例详解

Python变量、数据类型、数据类型转换相关函数用法实例详解

  • set不能使用下标来取出元素
  • set的原理和dict一样,所以,同样不可以放入可变对象,因为它也是使用哈希来计算计算结果的,可以记作set与dict不同的是它只存储key,不存储value【set()函数传入一个字典作为参数时,只取key作为结果】
>>> s3.add(['cbd'])
Traceback (most recent call last):
 File "<pyshell#37>", line 1, in <module>
  s3.add(['cbd'])
TypeError: unhashable type: 'list'
  • 集合的常用函数:补充

数据类型转换相关函数:

  • int()函数可以把其他数据类型转换为整数:
  • float( )函数可以把其他数据类型转换成浮点数
  • str( )函数可以把其他数据类型转换成字符串类型
  • bool( )函数可以把其他数据类型转换成布尔类型
  • tuple()将其他数据类型转换为元组。
  • set()将其他数据类型转换为集合。

 

>>> print(type(int("123")))
<class 'int'>
>>> print(type(float("123")))
<class 'float'>
>>> float("123")
123.0
>>> str(123)
'123'
>>> bool(2)
True
>>> list("123")
['1', '2', '3']
>>> tuple("123")
('1', '2', '3')

注:转换是有规则的,要符合规则才能转化,比如int()不能转换"abc"

Python变量、数据类型、数据类型转换相关函数用法实例详解

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
详解Python中的正则表达式的用法
Apr 09 Python
Python的Tornado框架异步编程入门实例
Apr 24 Python
Python中实现三目运算的方法
Jun 21 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
python中matplotlib的颜色及线条控制的示例
Mar 16 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
python画图把时间作为横坐标的方法
Jul 07 Python
Django shell调试models输出的SQL语句方法
Aug 29 Python
Python分割训练集和测试集的方法示例
Sep 19 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
matlab xlabel位置的设置方式
May 21 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 #Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 #Python
Python实现i人事自动打卡的示例代码
Jan 09 #Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 #Python
python PIL/cv2/base64相互转换实例
Jan 09 #Python
Python&amp;&amp;GDAL实现NDVI的计算方式
Jan 09 #Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 #Python
You might like
CodeIgniter CLI模式简介
2014/06/17 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
PDO::commit讲解
2019/01/27 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
js实现Select下拉框具有输入功能的方法
2015/02/06 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单
2018/09/14 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
python中sets模块的用法实例
2014/09/30 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
浅述python中深浅拷贝原理
2018/09/18 Python
python算法题 链表反转详解
2019/07/02 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
Python tkinter模版代码实例
2020/02/05 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
医学院四年学习生活的自我评价
2013/11/06 职场文书
策划主管的工作职责
2013/11/24 职场文书
打架检讨书800字
2014/01/10 职场文书
工作表现自我评价
2014/02/08 职场文书
应届毕业生自荐信
2014/05/28 职场文书
创业计划书之宠物店
2019/09/19 职场文书
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android