详解python变量与数据类型
这篇文章我们学习Python变量与数据类型
变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问。在Python中变量命名规定,必须是大小写英文,数字和下划线(_)的组合,并且不能用数字开头。
变量命名规则:
- 变量名只能是字母,数字和下划线的任意组合
- 变量名第一个字符不能是数字
- 变量名区分大小写,大小写字母被认为是两个不同的字符
- 特殊关键字不能命名为变量名
声明变量
Python中的变量不需要声明,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。
name="neo"
上述代码声明了一个变量,变量名为:name,变量name的值为”neo”。
变量赋值
在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。
a=123#a是整数 a='abc'#a是字符串
这种变量本身类型不固定的语言称之为动态语言,与之对应的就是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,这样赋值就会报错:
多个变量赋值
Python允许你同时为多个变量赋值。例如:
a=b=c=1
以上实例,创建一个整型对象,值为1,从后向前赋值,三个变量被赋予相同的数值。
您也可以为多个对象指定多个变量。例如:
a,b,c=1,2,"neo"
以上实例,两个整型对象1和2的分配给变量a和b,字符串对象“neo”分配给变量c。
常量
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
BI=3.14
但事实上BI仍然是个变量,Python根本无法保证BI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改,语法也不会报错。
数据类型
Python3中有六个标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)。
Python3的六个标准数据类型中:
- 不可变数据(3个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3个):List(列表)、Dictionary(字典)、Set(集合)。
下面我们一一介绍这些数据类型的使用。
Number(数字)
Python3支持int、float、bool、complex(复数)。
数字类型是顾名思义是用来存储数值的,需要记住的是,有点和Java的字符串味道差不多,如果改变了数字数据类型的值,将重新分配内存空间。
Python支持三种不同的数值类型:
- 整型(Int)-通常被称为是整型或整数,是正或负整数,不带小数点。Python3整型是没有限制大小的,可以当作Long类型使用,所以Python3没有Python2的Long类型。
- 浮点型(float)-浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2=2.5x102=250)
- 复数((complex))-复数由实数部分和虚数部分构成,可以用a+bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。
示例:
#!/usr/bin/python3 counter=100#整型变量 miles=1000.0#浮点型变量 name="test"#字符串 print(counter) print(miles) print(name)
数字类型转换
- int(x)将x转换为一个整数。
- float(x)将x转换到一个浮点数。
- complex(x)将x转换到一个复数,实数部分为x,虚数部分为0。
- complex(x,y)将x和y转换到一个复数,实数部分为x,虚数部分为y。x和y是数字表达式。额外说明
和别的语言一样,数字类型支持各种常见的运算,不过Python的运算比别的大多数常见语言都更加丰富,此外,还有大量丰富的方法,提供更高效的开发。
数值运算示例:
print(5+4)#加法输出9 print(4.3-2)#减法输出2.3 print(3*7)#乘法输出21 print(2/4)#除法,得到一个浮点数输出0.5 print(2//4)#除法,得到一个整数输出0 print(17%3)#取余输出2 print(2**5)#乘方输出32
String(字符串)
创建字符串可以使用单引号、双引号、三单引号和三双引号,其中三引号可以多行定义字符串,Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。
我们定义一个s='python'语句,它在计算机中的执行顺序是先在内存中创建一个字符串Python,在程序栈寄存器中创建一个变量s,最后把Python的地址赋给s。
再来看看字符串的一些常见操作:
s='学习Python' #切片 s[0],s[-1],s[3:],s[::-1] #'优','n','Python','nohtyP的雅优' #替换,还可以使用正则表达式替换 s.replace('Python','Java') #'学习Java' #查找,find()、index()、rfind()、rindex() s.find('P') #3,返回第一次出现的子串的下标 s.find('h',2) #6,设定下标2开始查找 s.find('23333') #-1,查找不到返回-1 s.index('y') #4,返回第一次出现的子串的下标 s.index('P') #不同与find(),查找不到会抛出异常 #转大小写,upper()、lower()、swapcase()、capitalize()、istitle()、isupper()、islower() s.upper() #'学习PYTHON' s.swapcase() #'学习pYTHON',大小写互换 s.istitle() #True s.islower() #False #去空格,strip()、lstrip()、rstrip() #格式化 s1='%s%s'%('Windrivder',21) #'Windrivder21' s2='{},{}'.format(21,'Windridver') #推荐使用format格式化字符串 s3='{0},{1},{0}'.format('Windrivder',21) s4='{name}:{age}'.format(age=21,name='Windrivder') #连接与分割,使用+连接字符串,每次操作会重新计算、开辟、释放内存,效率很低,所以推荐使用join l=['2017','03','29','22:00'] s5='-'.join(l) #'2017-03-29-22:00' s6=s5.split('-') #['2017','03','29','22:00']
以上是一些常见的操作。
另外还有一点需要注意的是字符串编码,所有的Python字符串都是Unicode字符串,当需要将文件保存到外设或进行网络传输时,就要进行编码转换,将字符转换为字节,以提高效率。
#encode将字符转换为字节 str='学习Python' print(str.encode()) #默认编码是UTF-8输出:b'\xe5\xad\xa6\xe4\xb9\xa0Python' print(str.encode('gbk'))#输出b'\xd1\xa7\xcf\xb0Python' #decode将字节转换为字符 print(str.encode().decode('utf8'))#输出'学习Python' print(str.encode('gbk').decode('gbk'))#输出'学习Python'
List(列表)
类似JavaList集合接口
列表是写在方括号[]之间、用逗号分隔开的元素列表,列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套),列表中的元素是可以改变。
示例:
Weekday=['Monday','Tuesday','Wednesday','Thursday','Friday'] print(Weekday[0])#输出Monday #list搜索 print(Weekday.index("Wednesday")) #list增加元素 Weekday.append("new") print(Weekday) #list删除 Weekday.remove("Thursday") print(Weekday)
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间用逗号隔开,组中的元素类型也可以不相同。
示例:
letters=('a','b','c','d','e','f','g') print(letters[0])#输出'a' print(letters[0:3])#输出一组('a','b','c')
Sets(集合)
类似JavaSet集合接口
集合(set)是一个无序不重复元素的序列,使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:
示例:
a_set={1,2,3,4} #添加 a_set.add(5) print(a_set)#输出{1,2,3,4,5} #删除 a_set.discard(5) print(a_set)#输出{1,2,3,4}
Dictionary(字典)
类似JavaMap集合接口
字典是一种映射类型,它的元素是键值对,字典的关键字必须为不可变类型,且不能重复。创建空字典使用{}。
示例:
Logo_code={ 'BIDU':'Baidu', 'SINA':'Sina', 'YOKU':'Youku' } print(Logo_code) #输出{'BIDU':'Baidu','YOKU':'Youku','SINA':'Sina'} print(Logo_code['SINA'])#输出键为'one'的值 print(Logo_code.keys())#输出所有键 print(Logo_code.values())#输出所有值 print(len(Logo_code))#输出字段长度
总结
本节给大家介绍了Python变量和六种标准的数据类型,给大家演示了变量的使用,以及六个六种标准的数据类型的常用操作。
示例代码:Python-100-days-day003
以上就是详解python变量与数据类型的详细内容,更多关于python变量与数据类型的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。