Python核心编程学习日记之数字,序列

第五章  数字

  1.数字类型

    a,Python支持的数字类型:整型,长整型,布尔型。双精度浮点型,十进制浮点型,和复数

    b,建议用大写字母“L”表示长整数。并且,整型和长整型正在趋向统一。必要时整型会悄悄自动转换为长整型,从而避免数值范围越界为用户带来烦恼。

    c,双精度浮点数(类似于c中的double)

    d,复数:实数部分和虚数部分都是浮点数。推荐用后缀“j”,和程序输出保持一致;num.real,num.imag,num.conjugate()分别表示复数的实部,虚部,共轭复数。

  2.运算符

    a,Python支持的运算符几乎全都会进行自动数据类型转换。

    b,现阶段Python仍采用整数相除商取整的做法,将来将会支持得到真正的商。可以通过from __future__ import division来调用该除法。地板除将会由新运算符‘//’支持。

    c,非复数取余等价于:x - (math.floor(x/y) * y)。复数取余等价:x - (math.floor((x/y).real) * y)

    d,幂运算操作符比其左侧操作数的一元操作符优先级高,比其右侧操作数的一元运算符优先级低。

  3.内建函数与工厂函数

    a,int(),long(),float(),complex(),bool()(均由内建函数改变为工厂函数)

    b,内建函数:abs(),coerce(),divmod(),pow(),round()。

      c,只适用于整数:进制转换函数oct(),hex();ASCII转换函数chr(),ord();unichr()

  4.相关模块

    a,decimal,array,math/cmath,operator,random

    b,random包含多个伪随机数发生器。randrange(),uniform(),randint(),random(),choice()

第六章 序列:字符串、列表和表列

  1.序列类型操作符(所有序列类型均适用)

    a,in,not in: obj [not] in sequence(返回True或False)

    b,seq[ind](获得下标为ind的元素);seq[ind1:ind2](获得下标从ind1到ind2间的元素集合);seq *expr(序列重复expr次);seq1 + seq2(连接序列seq1和seq2,用于合并序列效率低);

    c,扩展切片操作,第三个索引值被用作步长参数;sequence[:None]分隔出整个序列。

  2.内建函数

    a,类型转换:list(iter);str(obj);unicode(obj);basestring()(抽象工厂函数,不能被实例化和调用);tuple(iter)

    b,操作类型函数:len(),reversed(),sum()(三者只接受序列类型);enumerate(iter),sort(),zip()(接受可迭代对象),max(),min()(除iter外还可接受参数表)

  3.字符串

    a,出于性能考虑,尽量不要导入和使用string模板。使用%格式化操作符或者把字符串放到一个列表中然后用join()方法。

    b,Python 的语法允许你在源码中把几个字符串连在一起写。

    c,如果把一个普通字符串和一个Unicode 字符串做连接处理,Python 会在连接操作前先把普通字符串转化为Unicode 字符串。

    d,格式化操作符只适用于字符串:非常类似于c语言的printf()格式代码 format_string % (arguments_to_convert)

    e,字符串模板:from string import Template;原始字符串操作符(r/R),这个类似于c#里的@""用法。

    f,Unicode字符串操作符(u/U):将字符串转换成完全地Unicode字符串对象。(原始Unicode字符串:Unicode操作符必须出现在原始字符串操作符之前)

  4.字符串内建函数

    a,max()和min()函数返回迭代器或者参数列中最大/最小的元素(字符串是按照ASCII码值排列)

    b,enumerate(iter):对象生成由iter 每个元素的index 值和item 值组成的元组;zip()返回一个列表

  5,字符串的独特特性:

    a,一个反斜杠加一个单一字符表示一个特殊字符。也可直接用\000或者\xXX(八进制或者十六进制)的ASCII码值。NUL在Python中没有结束符的含义

    b,三引号允许一个字符串跨多行,字符串中可以包含换行符.制表符等其他特殊字符(多用于嵌入的代码,比如html或者SQL)

    c,处理Unicode规则:程序中出现字符串时一定要加个前缀u;不要用str()函数,用unicode()代替;不要用过时的string模块,它基本上只能正常处理ASCII字符;不到必须时不要再程序里面编解码Unicode字符,只在要写入文件或者数据库或者网络时,才调用encode()函数,相应地,只在你需要把数据读回来的时候才调用decode()函数。

原文地址:https://www.cnblogs.com/xyqhello/p/2859311.html