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 数字相关内建函数
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、算数运算:
2、比较运算:
3、赋值运算:
4、位运算:
5、逻辑运算:
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、成员运算:
7.身份运算
8.运算符优先级:自上而下,优先级从高到低
四.标准数据类型特性总结
按存值个数区分标量/原子类型数字,字符串
容器类型列表,元组,字典
按可变不可变区分可变列表,字典
不可变数字,字符串,元组
按访问顺序区分直接访问数字
顺序访问(序列类型)字符串,列表,元组
key值访问(映射类型)字典
python定义变量类型_一、python基础之数据类型与变量相关推荐
- python 定义一个负数_其实Python不难学(4):Python如何处理文本数据
文本的处理是数据分析工作中很重要的业务领域.Python的字符串变量用于操纵文本型数据.以下命令就定义了一个字符串变量,用于存放一段文本资料. 在Python中,文本数据使用一对单引号或双引号来界定的 ...
- python变量类型是集合_python基础-基本数据类型:集合
# 集合:它也是一种容器类型,可以存储多个数据,表现形式: {1, 3, 4, ...} # 集合的作用:1.利用集合对容器类型的中数据可以去重 # 2.利用集合进行关系运算 # 集合特点: # 1. ...
- python白鹅类型_关于python鸭子类型和白鹅类型
1,白鹅类型 白鹅类型对接口有明确定义,比如不可变序列(Sequence),需要实现__contains__,__iter__,__len__,__getitem__,__reversed__,ind ...
- python格式化输出类型_在python中自己写的数据类型使用print无法输出每个元素
估计是我问题没有描述清楚,这样吧,直接上代码: 1 2 3 4 5 6 7 8 9class Mylist: def __init__(self): self._mylist=list() def _ ...
- python定义test方法_关于python:使用pytest测试类方法
在pytest的文档中,列出了测试用例的各种示例. 其中大多数显示了功能测试. 但是我缺少一个有关如何测试类和类方法的示例. 假设我们要测试的模块cool.py中具有以下类: class SuperC ...
- python定义test方法_向python/django失败的测试方法的详细信息中添加自定义/调试消息的任何方法unittest.TestCase?...
通常,您希望从django的unittest类TestCase继承,可以从django.测试. 也就是说,您可以将msg参数传递给您要评估的任何内容,其中包含失败消息.在 以下是"人性化&q ...
- 88是python语言的整数类型_少儿Python编程_第三讲:常量变量和数据类型
无论使用哪一种编程语言,甚至是学习数学.物理,都需要掌握常量.变量.表达式的概念和用法.本讲将带领读者进入编程世界,学习程序的基本元素. 3.1 基本数据类型 基本数据类型有数值型.布尔型和字符型.它 ...
- py哪个函数可以返回输入的变量类型_[Python基础]二、pycharm,python变量
2.1 Python简介 Life is short,you need Python (人生苦短,我用Python) 解释器: 将其他语言翻译成机器语言的工具,称为编译器 编译器的翻译方法有两种: 编 ...
- python定义一个数列_第二章 数列和序列类型
一.Python变量 1.定义 学习数据类型之前,先来学习以下什么是python变量? 直白意思就是给数据起个名字.变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变. 2.数据 ...
最新文章
- thinkphp pathinfo nginx 无法加载模块:Index
- 今晚8点直播 | 详解微软小冰全双工语音对话技术
- java 方法泛型_Java基础学习,什么是泛型概念,使用泛型有哪些好处?
- 如何在java中实现跨线程的通讯
- bundle传递对象与Serializable、Parcelable接口理解和思考
- 苏州飘“彩云” 五年规模破百亿元
- Windows Runtime (RT)
- 如何修改WAMP中mysql默认空密码重新登录phpmyadmin
- js 返回上一页和刷新以及页面跳转
- 谈谈未来简书首页拒稿界面的设计思路
- mysql免安装版的下载与安装
- 《我也能做CTO之程序员职业规划》之十三:用凸透镜选择技术
- Leetcode639. Decode Ways II
- ue编辑器漏洞_UEditor编辑器任意文件上传漏洞分析
- 计算机里面的wps如何删除,如何快速删除电脑上的wps的所有换行符
- arduino eeg脑电模块_手把手教你EEG脑电数据预处理-原理篇
- Fragment跳转
- Div+CSS网页设计(HTML5)
- PMP中工具与技术归类
- Unity - 使用Winform制作简易登录器
热门文章
- js+css3实现旋转效果
- 【Ionic】---Using Local Notifications In Your Ionic Framework App
- 同一对象多条数据同时插入数据库
- jQuery学习笔记(一) 取值、赋值的基本方法
- Github版本控制——基础操作
- “服务器发送了一个意外的数据包。received:3,expected:20“问题的解决方法
- keepalived+Nginx实现Web高可用
- mysql迁移数据目录,这个坑你遇到过吗?
- 力扣题目——997. 找到小镇的法官
- java holder_Java DataHolder.supports方法代码示例