Python基础(3) - 数据类型:1数字类型

时间:2022-12-14 20:23:35

Python数据类型

数据类型 是否容器 是否可变 存储方式
数字 直接
字符串 直接
列表 顺序
元组 顺序
字典 映射

数字类型

整  型:1,234,0,-4,0x93,056
长整型:123456789999999L,-8976l(python2.2开始支持)
布尔型:True和False对应整型值1和0
浮点型:1.23,3.14e-10
复  数:1 + 2j,0.23-8.55j
          复数的内建属性
          real:复数的实部
          imag:复数的虚部
          conjugate:返回该复数的共轭复数

以0x/0X开头表示16进制常量,以0开头表示8进制常量。

Python的整形值如果超出整形存储范围自动变为长征性。

Python的长整型的长度仅与机器的(虚拟)内存的大小有关,因此理论上不存在超出长整形存储范围情况。

补充1:以下代码可能会引起一些疑惑,id函数返回由Python自己管理的地址(只能理解为类似于C的指针)

>>> i1 = 10
>>> id(i1)
23897708
>>> i2 = 10
>>> id(i2)
23897708
>>>

i1、i2指向相同地址,是一种优化,Python认为一些小数字是“常用”数字,不重新开辟空间存储,只把2个变量绑定同一地址。

数字类型的运算符

运算符

描述

x+y,x-y

加、减

x*y,x**y,x/y,x%y,x//y

相乘、乘方、相除、求余、地板除

<,<=,>,>=,==,<>,!=

比较运算符

+=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|=

自变运算符

x|y

按位或

x^y

按位异或

x&y

按位与

~x

按位取反

x<<y,x>>y

左右移位

注意:Python没有自增自减(++, --)操作符。

除法运算:

传统除法:整型除法,舍去小数部分(地板除),如果操作数有一个为浮点型,则执行真正的除法
真正的除法:返回真实的商,不管是整数还是浮点数。未来将是除法运算的标准行为,现阶段通过__future__模块导入
地板除:python2.2引入“//”

>>> 1/2
0
>>> 1.0/2
0.5
>>> 1//2
0
>>> 1.0//2
0.0
>>> from __future__ import division
>>> 1/2
0.5
>>> 1.0/2
0.5
>>>

数字类型转换函数:

int(obj,base=10):返回字符串或数值对象的整型表示,直接截取小数部分,返回整型。
long(obj,base=10):返回字符串或数值对象的长整型表示
float(obj):返回字符串或数值对象的浮点型表示
complex(str) or complex(real,imag=0.0):返回复数
bool(obj):返回布尔值

数字类型功能函数:

abs (num):返回num的绝对值。
pow(num1,num2,mod=1):取num1的num2次方,如果提供mod参数,则计算结果再对mod进行取余运算。乘方可用**运算符代替。
round(flt,ndig=0):接受一个浮点型flt并对其进行四舍五入,保存ndig位小数。取与当前数值最接近的整数(四舍五入),但返回的是浮点型。

math.floor(): 取与当前数值最接近的,但小于当前数值的整数,返回的是浮点型。
hex (num):将num转换成十六进制数并以字符串形式返回。
oct(num):将num转换成八进制数并以字符串形式返回。
chr (num):将ASCII值的数字转换成ASCII字符,范围只能是0~255。
ord(chr):接受一个ASCII字符(长度为1的字符串),返回相应的ASCII值。
 

序列类型

成员顺序排列,可以通过下标偏移量访问一个或多个成员。
 
序列类型的操作符:
§seq[ind]: 获得下标为ind的元素
§seq[ind1:ind2]: 获得下标从ind1到ind2之间的元素
§seq*expr:序列重复expr次
§seq1+seq2:连接序列seq1和seq2
§obj in seq:判断obj是否包含在seq中
§obj not in seq:判断obj是否不包含在seq中

切片操作:

序列类型支持切片操作。

切片操作有3个参数:参数1指定开始位置,参数2指定结束位置的左闭右开区间,也就是不包含参数2的位置。第三个参数指定步长,负数步长表示反向。

Python序列可以从后向前标负数序号,比如最后一个元素序号是-1,倒数第二个是-2。。。

切片举例:

>>> l = [0,1,2,3,4,5,6]
>>> l[1:]
[1, 2, 3, 4, 5, 6]
>>> l[:4]
[0, 1, 2, 3]
>>> l[:None]
[0, 1, 2, 3, 4, 5, 6]
>>> l[None:None]
[0, 1, 2, 3, 4, 5, 6]
>>> l[0:-1:2]
[0, 2, 4]
>>> l[::-1]
[6, 5, 4, 3, 2, 1, 0]
>>>

常用的功能函数:

§enumerate(iter):接受一个可迭代对象作为参数,返回一个enumerate对象(同时也是一个迭代器),该对象生成有iter每个元素的下标和值组成的元组。
§len(seq):返回seq的长度。
§reversed(seq):返回与seq逆序的迭代器。
§zip(it0,it1,…,itN):返回一个列表,其第一个元素是it0、it1…这些元素的第一个元素组成的一个元组,第二个…依此类推。

Python基础(3) - 数据类型:1数字类型的更多相关文章

  1. Python基础一数据类型之数字类型

    摘要: python基础一中提到了数据类型,这里主要讲解的是数字类型. 数字类型: 1,整型 2,长整型 3,浮点型 4,复数型 1,整型(int) 定义a = 1 通过type函数查看数据类型,整型 ...

  2. python基础之数据类型之数字、字符串、列表

    数据类型及内置方法 一.数字类型 整数型(int) 1.用途:年龄,号码等 2.定义:age = 10   age = int(10) x = int(’11’)   int只能转换纯数字的字符串 3 ...

  3. Python基础&lpar;3&rpar; - 数据类型&colon;2字符串类型

    Python字符串的表示有三种方法: 1.单引号(') >>>a = 'I love python. ' 2.双引号(") >>>a = " I ...

  4. python基础之数据类型和数值类型

    python3的六大数据类型: 1.tuple元组 2.number数字 3.string字符串 4.set集合 5.list列表 6.dictionary字典 其中不可变数据3个:tuple.num ...

  5. Python基础&lpar;3&rpar; - 数据类型&colon;3列表类型

    Python 列表是序列对象,可包含任意的Python数据信息,如字符串.数字.列表.元组等.列表的数据是可变的,我们可通过对象方法对列表中的数据进行增加.修改.删除等操作.列表用[]包括起来的. 列 ...

  6. Python基础&lpar;3&rpar; - 数据类型&colon;5字典类型

    Python Dictionary 是 Python 的内置数据类型之一, 它定义了键和值之间一对一的关系 .它是用{}括起来的.每个Dictionary的项的句法为:key:value. Dicti ...

  7. Python基础&lpar;3&rpar; - 数据类型&colon;4元组类型

    Python Tuple 是不可变 list. 一旦创建了一个 tuple 就不能以任何方式改变它.Tuple是用()包括起来的. Tuple与List都是按照定义的顺序进行排序的,索引从0开始,与 ...

  8. Python基础之数据类型

    Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...

  9. 第二章:python基础,数据类型

    """第二章:python基础,数据类型2.1 变量及身份运算补充2.2 二进制数2.3 字符编码每8位所占的空间位一个比特,这是计算机中最小的表示单位.每8个比特组成一 ...

随机推荐

  1. MVC中前台所得

    前台页面时间格式修改: @item.CreateTime.ToString("yyyy-MM-dd hh:mm:ss") 前台方法调用传参数: <a href="# ...

  2. js函数中的几个特点

    定义函数有两种方式:函数声明 函数表达式 1.函数声明是这样的: function box(arg0,arg1,arg2){ //函数体} 关于函数声明有一个重要的特征:函数声明提升,也就是说执行代码 ...

  3. android 带表头&comma;左右两个联动的ListView

    package com.rytong.mylist; import java.util.ArrayList; import java.util.HashMap; import java.util.Li ...

  4. 黑马程序员-hashtable

    散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度.这个映射函数叫做散列 ...

  5. 程序猿常识--OJ系统和ACM测试考试大全

    OJ它是Online Judge缩写系统,来在线检測程序源码的正确性. 著名的OJ有RQNOJ.URAL等. 国内著名的题库有北京大学题库.浙江大学题库等. 国外的题库包含乌拉尔大学.瓦拉杜利德大学题 ...

  6. Error&colon; Could not find or load main class Test

    问题描述 Linux 环境下运行 Java 程序时,执行 javac Test.java 生成 Test.class 文件,再执行 java Test 时报错:Error: Could not fin ...

  7. 【HDFS API编程】图解客户端写文件到HDFS的流程

  8. C&lowbar;狐狸和兔子的故事

    题目描述 围绕着山顶有10个洞,一只狐狸和一只兔子各住一个洞.狐狸总想吃掉兔子.一天兔子对狐狸说:“你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我:第二次隔1个洞找我,第 ...

  9. Django Rest Framework之版本控制

    基本代码结构 settings.py: REST_FRAMEWORK = { 'DEFAULT_VERSION': 'v1', # 默认版本 'ALLOWED_VERSIONS': ['v1', 'v ...

  10. 通过表达式树把datareader和datatable转换为实体

    续上两篇文章,使用emit构造dynamic method,把 datareader转换为实体,以避免直接使用反射来实现带来的性能损失.代码看似没有纰漏,但是实际上我在framwork4下运行时,调用 ...