python定义变量类型_一、python基础之数据类型与变量

一、变量

声明变量

#!/usr/bin/env python

age=9

name='ld'

name1='ld1'

变量作用:保存状态(程序的运行本质是一系列状态的变化,变量的目的就是用来保存状态,变量值的变化就构成了程序运行的不同结果。)

二.数据类型

程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种

2.1 什么是数据类型及数据类型分类

python中的数据类型

python使用对象模型来存储数据,每一个数据类型都有一个内置的类,每新建一个数据,实际就是在初始化生成一个对象,即所有数据都是对象

对象三个特性

身份:内存地址,可以用id()获取

类型:决定了该对象可以保存什么类型值,可执行何种操作,需遵循什么规则,可用type()获取

值:对象保存的真实数据

2.2 标准数据类型:

2.2.1 数字

定义:a=1

特性:

1.只能存放一个值

2.一经定义,不可更改

3.直接访问

分类:整型,长整型,布尔,浮点,复数

2.2.1.1 整型:

Python的整型相当于C中的long型,Python中的整数可以用十进制,八进制,十六进制表示。

>>> 10

10 --------->默认十进制

>>> oct(10)

'012' --------->八进制表示整数时,数值前面要加上一个前缀“0”

>>> hex(10)

'0xa' --------->十六进制表示整数时,数字前面要加上前缀0X或0x

python2.*与python3.*关于整型的区别

python2.*

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

python3.*×××长度无限制

2.2.1.2 长整型long:

python2.*:

跟C语言不同,Python的长整型没有指定位宽,也就是说Python没有限制长整型数值的大小,

但是实际上由于机器内存有限,所以我们使用的长整型数值不可能无限大。

在使用过程中,我们如何区分长整型和整型数值呢?

通常的做法是在数字尾部加上一个大写字母L或小写字母l以表示该整数是长整型的,例如:

a = 9223372036854775808L

注意,自从Python2起,如果发生溢出,Python会自动将整型数据转换为长整型,

所以如今在长整型数据后面不加字母L也不会导致严重后果了。

python3.*

长整型,整型统一归为整型

python2.7

>>> a=9223372036854775807

>>> a

9223372036854775807

>>> a+=1

>>> a

9223372036854775808L

python3.5

>>> a=9223372036854775807

>>> a

9223372036854775807

>>> a+=1

>>> a

9223372036854775808

2.2.1.3 布尔bool:

True 和False

1和0

2.2.1.4 浮点数float:

Python的浮点数就是数学中的小数,类似C语言中的double。

在运算中,整数与浮点数运算的结果是浮点数

浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,

一个浮点数的小数点位置是可变的,比如,1.23*109和12.3*108是相等的。

浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,

就必须用科学计数法表示,把10用e替代,1.23*109就是1.23e9,或者12.3e8,0.000012

可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的而浮点数运算则可能会有

四舍五入的误差。

2.2.1.5 复数complex:

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

注意,虚数部分的字母j大小写都可以,

>>> 1.3 + 2.5j == 1.3 + 2.5J

True

2.2.1.6 数字相关内建函数

1036857-20161007202627379-994345539.png

2.2.2 字符串

定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串

特性:

1.只能存放一个值

2.不可变

3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序

补充:

1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf'

2.unicode字符串与r连用必需在r前面,如name=ur'l\thf'

2.2.2.1 字符串创建

‘hello world’

2.2.2.2 字符串常用操作

移除空白

分割

长度

索引

切片

2.2.3 列表

定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素

特性:

1.可存放多个值

2.可修改指定索引位置对应的值,可变

3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序

2.2.3.1 列表创建

list_test=[’ld‘,66,'ok']

list_test=list('abc')

list_test=list([’ld‘,66,'ok'])

2.2.3.2 列表常用操作

索引

切片

追加

删除

长度

切片

循环

包含

2.2.3 列表

定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素

特性:

1.可存放多个值

2.可修改指定索引位置对应的值,可变

3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序

2.2.3.1 列表创建

list_test=[’ld‘,666,'ok']

list_test=list('abc')

list_test=list([’ld‘,6,'ok'])

2.2.3.2 列表常用操作

索引

切片

追加

删除

长度

切片

循环

包含

2.2.4 元组

定义:与列表类似,只不过[]改成()

特性:

1.可存放多个值

2.不可变

3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序

2.2.4.1 元组创建

ages = (11, 22, 33, 44, 55)

ages = tuple((11, 22, 33, 44, 55))

2.2.4.2 元组常用操作

索引

切片

循环

长度

包含

2.2.5 字典

定义:{key1:value1,key2:value2},key-value结构,key必须可hash

特性:

1.可存放多个值

2.可修改指定key对应的值,可变

3.无序

2.2.5.1 字典创建

person = {"name": "aa", 'age': 22}

person = dict(name='aa', age=22)

person = dict({"name": "aa", 'age': 22})

person = dict((['name','aa'],['age',22]))

{}.fromkeys(seq,100) #不指定100默认为None

注意:

>>> dic={}.fromkeys(['k1','k2'],[])

>>> dic

{'k1': [], 'k2': []}

>>> dic['k1'].append(1)

>>> dic

{'k1': [1], 'k2': [1]}

2.2.5.2 字典常用操作

索引

新增

删除

键、值、键值对

循环

长度

2.2.6 集合

定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key

特性:

1.集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

2.2.6.1 集合创建

{1,2,3,1}

定义可变集合set

>>> set_test=set('hello')

>>> set_test

{'l', 'o', 'e', 'h'}

改为不可变集合frozenset

>>> f_set_test=frozenset(set_test)

>>> f_set_test

frozenset({'l', 'e', 'h', 'o'})

2.2.6.2 集合常用操作:关系运算

in

not in

==

!=

<,<=

>,>=

|,|=:合集

&.&=:交集

-,-=:差集

^,^=:对称差分

三.运算符

1、算数运算:

1036857-20161011085945461-141241132.png

2、比较运算:

1036857-20161011090004352-1793064865.png

3、赋值运算:

1036857-20161011090015164-795424787.png

4、位运算:

1036857-20161011090217446-1562320241.png

5、逻辑运算:

1036857-20161011090025071-1236899190.png

and注解:

1、在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一。

2、在布尔上下文中从左到右演算表达式的值,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值。

3、如果布尔上下文中的某个值为假,则 and 返回第一个假值

or注解:

1、使用 or 时,在布尔上下文中从左到右演算值,就像 and 一样。如果有一个值为真,or 立刻返回该值

2、如果所有的值都为假,or 返回最后一个假值

3、注意 or 在布尔上下文中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值

and-or结合使用:

结合了前面的两种语法,推理即可。

为加强程序可读性,最好与括号连用,例如:

(1 and 'x') or 'y'

6、成员运算:

1036857-20161011090033196-468321512.png

7.身份运算

1036857-20161011090232368-83323653.png

8.运算符优先级:自上而下,优先级从高到低

1036857-20161011090258805-1359487251.png

四.标准数据类型特性总结

按存值个数区分标量/原子类型数字,字符串

容器类型列表,元组,字典

按可变不可变区分可变列表,字典

不可变数字,字符串,元组

按访问顺序区分直接访问数字

顺序访问(序列类型)字符串,列表,元组

key值访问(映射类型)字典

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值