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
    

      

  • 相关阅读:
    nginx-1.8.1的安装
    ElasticSearch 在3节点集群的启动
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
    sqoop导入导出对mysql再带数据库test能跑通用户自己建立的数据库则不行
    LeetCode 501. Find Mode in Binary Search Tree (找到二叉搜索树的众数)
    LeetCode 437. Path Sum III (路径之和之三)
    LeetCode 404. Sum of Left Leaves (左子叶之和)
    LeetCode 257. Binary Tree Paths (二叉树路径)
    LeetCode Questions List (LeetCode 问题列表)- Java Solutions
    LeetCode 561. Array Partition I (数组分隔之一)
  • 原文地址:https://www.cnblogs.com/szn409/p/6534443.html
Copyright © 2011-2022 走看看