专栏首页python3Python基本类型

Python基本类型

     Python是一门动态语言,解释执行,所有错误都是运行时产生的,即使有错误和异常,只要没有被执行到也不会有错,比如调用不存在的方法;类型是隐式的,也即无需变量类型声明;类型是动态,运行时根据变量指向的内容来决定类型,但是Python是强类型语言,即每个变量都是有类型的。

Python 基本built-in类型主要有numerics,sequences, mapping, files, classes, instances, exceptions,类型上都会存在的操作有比较、是否为真、转换为字符串toString,Python中使用str/repr(object)可转换为字符串, print(object)时会隐式调用str()。

    numerics:

      整形 int,用c语言中的long实现, 取值范围-sys.maxint-1~sys.maxin, 无sys.minint

     长整形 long, 带有L/l的integer或超出integer范围的,print时会带后缀L,无精度限制,无限大,因此Python中都是有符号数,没有unsigned类型

      浮点型 float,用c中的double实现,sys.float_info,  因此Python中无单双精度区分

      复数 complex, z.real, z.imag

Operation

Result

Notes

x + y

sum of x and y

x - y

difference of x and y

x * y

product of x and y

x / y

quotient of x and y

(1)

x // y

(floored) quotient of x and y

(4)(5)

x % y

remainder of x / y

(4)

-x

x negated

+x

x unchanged

abs(x)

absolute value or magnitude of x

(3)

int(x)

x converted to integer

(2)

long(x)

x converted to long integer

(2)

float(x)

x converted to floating point

(6)

complex(re,im)

a complex number with real part re, imaginary part im. im defaults to zero.

c.conjugate()

conjugate of the complex number c. (Identity on real numbers)

divmod(x, y)

the pair (x // y, x % y)

(3)(4)

pow(x, y)

x to the power y

(3)(7)

x ** y

x to the power y

(7)

       整除/ :  结果总是整数,哪怕除数、被除数不是整数,而且结果总是趋向负无穷大,-1/2=-1

       0的0次幂:pow(0,0) =1, 0**0=1

       NaN: not a number  ,  INF:无穷大,-inf +inf  ,  float('nan') float('+inf') float('-inf')

       int(), long() 都是向下转型,对应实数int long float还可以用以下方式取舍:

Operation

Result

Notes

math.trunc(x)

x truncated to Integral

round(x[, n])

x rounded to n digits, rounding ties away from zero. If n is omitted, it defaults to 0.

四舍五入

math.floor(x)

the greatest integral float <= x

math.ceil(x)

the least integral float >= x

   bool布尔:用于if/while后做条件判断

      True:非False即为True

      False: None, False, 数字类型0,空容器,包括空字符串‘’, class的__nonzero__() 或__len__返回0或False的实例

      bool运算符:or and not, 遵循类似java/c的short-circuit, not比non-Boolean operator优先级低,not a==b 等价于not (a==b)

   比较运算符: 也用于所有类型的比较,优先级比Boolean operator高,且支持x<y<z这样的写法,x<y<z 等价x<y and y < z 且前者y仅计算一次,都遵循短路原则;不同类型的对象比较结果都是False,除非是不同类型数字或字符串比较,比如0==0L, ‘abc’==u'abc'返回True

Operation

Meaning

Notes

<

strictly less than

<=

less than or equal

>

strictly greater than

>=

greater than or equal

==

equal

!= 或 <>

not equal

(1)

is

object identity

is not

negated object identity

    bitwise operation: 位运算只对整数操作有意义,位运算优先级比数字运算符低,但比比较运算符高; ~与其他的一元运算符优先级(+,-)相同,以下表格中优先级从低到高, 负数移位会抛出ValueError异常

Operation

Result

Notes

x | y

bitwise or of x and y

x ^ y

bitwise exclusive or of x andy

x & y

bitwise and of x and y

x << n

x shifted left by n bits

(1)(2)

x >> n

x shifted right by n bits

(1)(3)

~x

the bits of x inverted

        int.bit_length():获取int bit表示长度

        long.bit_length():获取long bit表示长度

    字符:长度为1的字符串,也即没有单个字符

    字符串: 单引号'abc' 或双引号''abc" 或三个连续单/双引号'''表示多行字符串,字符串可理解为常量字节数组或字节容器,类似Java中String,也不能通过变量改变指向的字符串, s='abc'; id(s) == id('abc')。

    字符串上常用操作:

        长度:容器统一用len(),

        子串:容器分片操作符[]    'abcd'[1:3]='bc'

        分隔:split/rsplit

        查找/替换:find/rfind 没找到返回-1; index/rindex没找到抛ValueError, replace

        trim:  strip/lstrip/rstrip

编/解码:只能对str解码 str('汉').decode('UTF-8'), 只能对Unicode编码 u('汉').encode('UTF-8')

        大小写转换: lower/uper

        判断:isalnum/isalpha/isdigit/islower/isspace/isupper/startwith/endwith

格式化: %+tuple/dict,类似c语言sprintf,一个参数'%d' % 1 = '1'  ; 两个参数'%s, %s' %('a','b') = 'a,b'; 指

             定占位符%(mapping key)+类型字符,mapping key需加括号'%(key1)s, %(key2)d' %{'key1':'a', 'key2':1}='a,1'

     Python中很容易获取帮助:

               help(object):显示帮助信息

               dir(object) :显示所有方法

               object.__doc__   :显示文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • (15)Reactor 3 Operat

    虽然响应式流规范中对Operator(以下均称作”操作符“)并未做要求,但是与RxJava等响应式开发库一样,Reactor也提供了非常丰富的操作符。

    py3study
  • python使用jdbc连接phoeni

    链接:https://pypi.python.org/pypi/JayDeBeApi/

    py3study
  • python实现tail -f命令功能

    py3study
  • C++核心准则边译边学-摘要

    This document is a set of guidelines for using C++ well. The aim of this documen...

    面向对象思考
  • 通过路径嵌入和聚合进行事实检查(AI)

    知识图(KG)是背景知识的有用来源,可以(证明)形式的事实(s,p,o)。在s和o之间找到路径是几种事实检查方法的基石。尽管路径对于(直观地)说明给定事实是对还...

    田冠宇
  • 使用Apache Server 的ab进行web请求压力测试

    参考:http://www.cnblogs.com/spring3mvc/archive/2010/11/23/2414741.html 自己写代码经常是顺着逻...

    Ryan-Miao
  • 衡量Facebook对研究反应的多样性(Social and Information Networks)

    在网络和现实世界中,围绕核心问题的情感共识将各种社区联系在一起。对科学发现的情感反应往往在这些核心问题中扮演着关键角色。当对科学问题有太多不同的意见时,情绪就会...

    李欣颖6837176
  • IBM Expands Data Discovery and Q&A Power of Watson Analytics

    IBM Expands Data Discovery and Q&A Power of Watson Analytics Half a Million Prof...

    首席架构师智库
  • 数据科学家修炼指南

    Software engineer’s guide to getting started with data science 数据科学家修炼指南 Decem...

    CDA数据分析师
  • 建立对数字化警务的信任:社区警务应用程序的范围审查(CS CY)

    对警察可信度的看法与公民与警察合作的意愿有关。可以通过引入问责机制或通过增加警察/公民的共享身份来促进信任,这两者都可以通过数字方式实现。还可以设计数字机制来保...

    小童

扫码关注云+社区

领取腾讯云代金券