python(1): number


               
               
               
                这本书前面几章说的都是一些基础的知识就不做笔记了。从第四章开始介绍python知识。
python不强类型的语言,也就是说你可以把各种类型的值赋予同一个变量。同时,python也提供了六种内置的类型。即:
  • numbers
    • strings
    • lists
    • dictionaries
    • tuples
    • files其中numbers可以表示咱们在数学中可以看到的各种数,包括复数。strings不用说就是字符串了。lists是一种有序列的值组,相当于c中的数组。dictionaries是key:value的值对组合。tuples是没有顺序的值的组合。files代表是一个文件对象,相当于java中说的文件句柄。
      要介绍number有两个方面,一是number的表达,也就是说一个东西你写在纸上,别人一看就知道是数字,而且还能看出来是整型数还是浮点数,是不是科学记数法表示的,是八进制数还是十六进制的等等;另一个方面就是对数字的处理,也就是数字具有的运算。
      number的表示:
    • 整数:1 -23 88888888888898782734872834728374823
    • 浮点数:1.2 1.43 1/3
    • 复数:1.2+3j 3.4+5.6J
    • 八进制数:023
    • 十六进制数:0xAF 0Xaf
    • 科学计数法:2.3E100 3.4e-399python的整数可以任意大小,而不像其他语言一般都有边界,当然有这种能力也有相应的代价,就是系统处理消耗要比c大,比较慢
      python中运算符不少,有很多是英语单词,甚至连not放的位置都符合英语的习惯,写出来的东西非常具有可读性。
    • 算术运算符:+ - * ** / // %
    • 逻辑运算符:and or not
    • 位运算符:& | ^
    • 比较运算符:> =
    • 字符串连接运算符:+
    • 方法或属性的调用运算符:.  #比如:s.add()
    • 序列切片运算符:[:]    #比如:str[2:6]
    • 其他:in    not in
      比较is not和not in中的not的位置,很有意思,它们的位置跟英语语法中的完全一致。
      数字可以用十进制的数来表示,也可以用八进制和十六进制,就像前面说的那样。同时,也可以先指定一数,把它变换成相应的进制,比如有一个数a:
    • int(a)
    • oct(a)
    • hex(a)此外,还可以用eval(a)来转换成十进制,这只是eval的顺带的作用。eval()函数把它的参数作为一条python语句来运行,python的默认输出是十进制的,所以不管传给eval()什么数,它都会以十进制表示出来。
      python中有一种类似于printf()的输出形式,用的是print。
    • 指数:%e %E
    • 八进制:%o
    • 十六进制:%x %X
    • 字符串:%s
      除了算术运算符外,python当然也提供sin() cos()等数学处理函数。这些都在math模块中,要使用的话要先import,不过像abs()等属于内置函数,不需import就可以用。其实,准确也说起来,内置函数也是需要import的,不过这些函数都被放在__builtin__这个模块中,在python解释器启运时,__builtin__模块是自动import的。也就是__builtin__也需要import,不过python解释器替我们做了。
      在python的交互模式中的输出和用print的输出有时并一样,比如说1/3在交互模式中的输出是0.33333333333333331,而用print的输出结果是0.333333333333;再比如说,一个含有转义字符的字符串“Study\thard.”在交互模式中的输出是‘Study\thard.’,而用print输出的结果是‘Study    hard.’。这种区别是由于在这两种输出方式中底层用的输出函数是不一样的,交互模式用的函数是repr(),而print用的函数是str()。