zoukankan      html  css  js  c++  java
  • 第五章 数字

    #1.
    #A:python数字类型的完整工具包括:整数和浮点数、复数、固定精度的十进制数、有理分数、集合、布尔类型、无穷的整数精度、各种数字内置函数和模块
    
    #2.
    #A:python允许整数具有无穷的精度,只要内存空间允许,但是其运算速度可能很慢
    #B:十六进制数字以0x或0X开头,八进制数字以0o或0O开头,二进制数字以0b或者0B开头,这些所有的常量都产生一个整数对象,仅仅是特定值的不同语法表示
    #C:内置函数hex()、oct()、bin()把一个整数转为对应的进制表示的字符串,int(str, base)根据每个给定进制将一个字符串专为为一个整数
    value0 = 0x10               #value0 = 16
    value1 = 0o10               #value1 = 8
    value2 = 0b10               #value2 = 2
    str0 = hex(10)              #str0 = '0xa'
    str1 = oct(10)              #str1 = '0o12'
    str2 = bin(10)              #str2 = '0b1010'
    value = int('10')           #value = 10
    value = int('10', 8)        #value = 8
    value = int('10', 2)        #value = 2
    value = int('10', 16)       #value = 16
    
    #3.
    #A:复数的虚部以j或者J结尾
    #B:可以用内置函数complex()来创建复数
    value0 = 1 + 1j             #value0 = (1+1j)
    value1 = complex(1, 2)      #value1 = (1+2j)
    
    #4.
    #A:is测试对象身份(也就是内存地址,严格意义的相等),对应有is not
    Tem0 = [1, 2]
    Tem1 = [1, 2]
    value = Tem0[0] is Tem1[0]  #value = True
    value = Tem0 is Tem1        #value = False
    value = 1 is 1              #value = True
    value = 1 is 1.0            #value = False
    
    value = Tem0[0] == Tem1[0]  #value = True
    value = Tem0 == Tem1        #value = True
    value = 1 == 1              #value = True
    value = 1 == 1.0            #value = True
    
    #5.
    #A:三目运算符
    #B:yield 尚未研究
    value0 = 1 if False else 2  #value0 = 2
    value1 = 1 if True else 2   #value1 = 1
    value3 = True and 1 or 2    #value3 = 1
    value4 = False and 1 or 2   #value4 = 2
    
    #6.
    #A:切片
    listTem = list(range(1, 10))#listTem = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    listTem0 = listTem[0:20]    #listTem0 = [1, 2, 3, 4, 5, 6, 7, 8, 9] 并不会因为越界产生错误
    listTem1 = listTem[0:9:2]   #listTem1 = [1, 3, 5, 7, 9] #0:9:2中:2的意思是步进
    value = slice(0, 9, 2)      #value
    v0 = value.start            #v0 = 0
    v1 = value.step             #v1 = 2
    v2 = value.stop             #v2 = 9
    listTem2 = listTem[value]   #listTem2 = [1, 3, 5, 7, 9]  listTem[0:9:2]等价于listTem[slice(0, 9, 2)]
    listTem3 = listTem[-1:0]    #listTem3 = []
    listTem4 = listTem[-1:0:-1] #listTem4 = [9, 8, 7, 6, 5, 4, 3, 2]
    
    #7.
    vlaue = 1 + 2, 3 + 4        #vlaue = (3, 7)
    v0, v1 = 1 + 2, 3  + 4      #v0 = 3, v1 = 7
    #v2, v3 = 1 + 2             #运行报错
    
    #8.
    #A:
    '''
    尽管str(),repr()在特性和功能方面都非常相似,事实上repr()返回的是一个对象的“官方”字符串表示,也就是说绝大多数情况下可以通过求值运算(使用内建函数eval())重新得到该对象,
    但str()则有所不同。str()致力于生成一个对象的可读性好的字符串表示,它的返回结果通常无法用于eval()求值,但很适合用于print语句输出。
    需要再次提醒的是,并不是所有repr()返回的字符串都能够用 eval()内建函数得到原来的对象。
    eval()将字符串当成有效的表达式来求值并返回计算结果,往往运行较慢,它实际上会作为程序的一个片段编译并运行这个字符串。
    '''
    str0 = str('是')            #str0 = '是'
    str1 = repr('是')           #str1 = "'是'"
    #v0 = eval(str0)            #运行报错            
    v1 = eval(str1)             #v1 = '是'
    
    str0 = str([1, 2, 3])       #str0 = '[1, 2, 3]'
    str1 = repr([1, 2, 3])      #str1 = '[1, 2, 3]'
    v0 = eval(str0)             #v0 = [1, 2, 3]   
    v1 = eval(str1)             #v1 = [1, 2, 3]
    
    #9.
    #A:python将A < B < C 解释为 A < B and B < C
    #B://操作符通常称为截断除法,更准确的说法是floor(向下取整)除法,它截除掉余数并且针对整数操作符返回一个整数,若有操作符为浮点数则返回浮点数
    #C:math.trunc()可以得到真正的截断除法,math.floor()向下取整除法,round()方法返回 x 的小数点四舍五入到n个数字
    value = 4 / 3               #value = 1.3333333333333333
    value = 4 / -3              #value = -1.3333333333333333
    value = 4 // 3              #value = 1
    value = 4 // -3             #value = -2
    value = 4.0 // -3           #value = -2.0
    import math
    v0 = math.trunc(4 / 3)      #v0 = 1
    v1 = math.trunc(4 / -3)     #v1 = -1
    v2 = math.trunc(4.0 // -3)  #v2 = -2
    v3 = math.floor(4 // -3)    #v3 = -2
    v = math.floor(1.1)         #v = 1
    v = math.floor(-1.1)        #v = -2
    v0 = math.pi                #v0 = 3.141592653589793
    v1 = math.e                 #v1 = 2.718281828459045
    v0 = round(math.pi)         #v0 = 3
    v1 = round(-math.pi)        #v1 = -3
    v2 = round(math.pi, 2)      #v2 = 3.14
    v3 = round(-math.pi, 3)     #v3 = -3.142
    

      

  • 相关阅读:
    Uliweb模板分析
    从高宏伟处借来的HOOK API代码
    ActiveX获取脚本对象
    uliweb数据库分析
    Java初入门(from c++ 2 java)(一)
    VS2010调试sharepoint2010经常Web服务器进程由IIS终止 的解决办法
    SharePoint 2010 部署 WSP 包
    sharepoint 2010 "若要在 Visual Studio 中与 SharePoint 项目进行交互,您的系统用户帐户必须拥有管理员特权。"的解决方法
    SQL 2008 安装问题 共享功能目录(x86) 服务提供的凭据无效 解决版本
    SharePoint 2010 网站集 备份 还原
  • 原文地址:https://www.cnblogs.com/szn409/p/6534443.html
Copyright © 2011-2022 走看看