Python变量、数据类型、数据类型转换相关函数用法实例详解
作者:随风行云 发布时间:2021-03-29 08:30:35
本文实例讲述了Python变量、数据类型、数据类型转换相关函数用法。分享给大家供大家参考,具体如下:
python变量的使用不需要进行类型声明(类型名 变量名),给一个变量名赋什么值就是什么类型。
变量的赋值使用 =
说明:虽然python声明变量时没有一个类型来圈注,但它并不是弱类型语言,相反,它是一门强类型语言。
弱类型的语言的东西没有明显的类型,它能随着环境的不同自动变换类型;
而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作
为什么说 Python 是强类型语言
Python变量命名规则:
变量名只能是 字母、数字或下划线的任意组合
变量名的第一个字符不能是数字
不能与关键字重名(关键字用着用着就记熟了)
数据类型
整数int类型:
python3中移除了python2中的long
Python3中没有限制int数值的大小
可以用其他数制来表示数值:二进制是以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'>
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程序设计有所帮助。
来源:https://www.cnblogs.com/progor/p/8401900.html
猜你喜欢
- 当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现。FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建
- 背景:有一个爬虫服务,需要定时从公开网站上拉取一些数据,为了避免被识别为爬虫(防爬虫的识别需要根据很多特征,时间仅仅是其中一个维度),需要在
- 很多开发人员在刚开始学Python 时,都考虑过像 c++ 那样来实现 singleton 模式,但后来会发现 c++ 是 c++,Pyth
- 我就废话不多说,看代码!import numpy as npimport matplotlib.pyplot as pltimport pa
- The test clienttest client是一个python类,来模拟一个简单的“哑”浏览器,允许你来测试你的view函数.你可以
- 发现ie7的空格间距要比ie6/firefox/opera的都要宽一点。比如有时候排版的时候,我会采用简单的空格来分隔。<div&nb
- 本文介绍python TK库简单应用(实时显示子进程输出),分享给大家,具体如下:#!/usr/bin/python3.5# -*- cod
- 前言最近写了oracle过程,有个ORACLE中dbms_output.put_line输出不了的问题。 花了近一个小时。下面描述一个这解决
- 记录一下安装win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+py
- 在CentOS上安装MySQL数据库服务器后,系统出于安全性考虑,缺省不支持用户通过非本机连接上数据库服务器,如果想让用户通过另外一台机器连
- 先创建表,然后生成批量数据。在models文件里from django.db import models# Create your mode
- 今天在写vue项目时,用到了computed计算属性,遇到了使用箭头函数出现this指向问题,这里记录下1.箭头函数中的this箭头函数内部
- 先看下面例子的效果:<INPUT TYPE="text" NAME=""&
- 1. Golint(1)安装golintgit clone https://github.com/golang/lint.git
- 逐步指示这是提供给更喜欢阅读的人的视频文本版本。我们将创建一个类似黑客新闻 或Reddit的社交新闻网站。它将被称为“钢铁传闻”,作为一个分
- 用Go语言实现登录验证,有3次机会,如果用户名为 zhangsan ,密码为 123456 ,则提示登录成功,否则提示还有几次机会,次数用完
- 1.如何通过地址栏参数来得到模块名称和控制器名称(即使在有路由和开了重写模块的情况下)2.tp是如何实现前置,后置方 * 能模块,和如何执行带
- 有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令。1、二者区
- <html> <head> <title>Login</title> <meta ht
- 思路利用scapy库,在这个库的基础下能够做很多的事情,python读取pcap包网上一找一大把将读取出来的pcap包改一个名字,然后写回,