第五章 数字
2017-03-11 11:32 szn好色仙人 阅读(126) 评论(0) 编辑 收藏 举报#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