第四章中很大概的介绍了下Python的core 数据类型,后续章节将会详细介绍个个数据类型
CHAPTER 5
Number
Python支持无限大的数字,不过需要内存支持
具体的Number类型包括以下几种
1234, -24, 0 Normal integers (C longs)
9999999999999999999L Long integers (unlimited size)
1.23, 3.14e-10, 4E210, 4.0e+210 Floating-point numbers (C doubles)
0177, 0x9ff, 0XFF Octal and hex literals for integers
3+4j, 3.0+4.0j, 3J Complex number literals
Python会自动对数字进行转换,将带小数点的转换成 floating-point类型
十六进制与八进制
八进制 以0开头,后面跟随0-7的数子
十六进制 以0x或者0X开头,后面包含0-9和A-F
用于处理Number的工具
Expression operators 表达式操作
+, *, >>, **, etc.
Built-in mathematical functions 内置数字操作函数
pow, abs, etc.
Utility modules 工具模块
random, math, etc.
如果需要更多的Number操作,可以使用第三方的NumPy,在3.0中,将会只有一个integer类型,提供了高精度
Python中的运算符和优先级
yield x Generator function send protocol (new in Release 2.5)
lambda args: expression Anonymous function generation
x if y else z Ternary selection expression (new in Release 2.5)
x or y Logical OR (y is evaluated only if x is false)
x and y Logical AND (y is evaluated only if x is true)
not x Logical negation
x < y,x <= y,x > y,x >= y,x == y,x <> y,x != Comparison operators, value equality operators,a object
y, x is y, x is not y, x in y, x not in y identity tests, sequence membership
x | y Bitwise OR
x ^ y Bitwise eXclusive OR
x & y Bitwise AND
x << y, x >> y Shift x left or right by y bits
-x + y, x – y Addition/concatenation, subtraction
x * y, x % y, x / y, x // y Multiplication/repetition, remainder/format, divisionb
-x, +x, ~x, x ** y Unary negation, identity, bitwise complement, binary power
x[i], x[i:j], x.attr, x(...) Indexing, slicing, qualification, function calls
(...), [...], {...}, `...` Tuple, list,c dictionary, conversion to stringd
其中包括三元运算符
c=5 if False else 6
其中False部分可以使用不同的bool表达式进行替换,其他情况非0的 均为true
上表中,运算优先级 有低到高排序,如同Java一样,可以使用()进行优先级运算
当混合Integer与浮点类型时,Python首先会自动将Integer转换成浮点,然后进行计算,与Long类型混合时,同样也会进行自动
的类型转换
处理数字时,Python解释器所使用的数字与使用print函数打印出来的数字并不相同,可以使用repr()进行查看,也可以在
common line下进行查看,同样也可以使用str()进行转换字符串,不过直接使用变量进行赋值即可
print 0.5/0.3
print repr(0.5/0.3)
/运算与//的区别, 后者将返回一个整数,前者则能带小数点
bitwise 位操作 << | &等
Long Integer, Python同样可以使用L,声明一个变量为Long类型
Complex Numbers 使用j或者J结尾的数字表达,具体用途未知..需进一步了解
Hexadecimal and Octal Notation 16进制和8进制
8进制使用0开头,后面包含0-7的数字,长度为3位
16进制使用0x或0X开头,后面跟随0-9或A-F(忽略大小写),长度为4位
可以使用hex()和oct()进行进制转换的操作,参数为int类型, 也可以使用int('',16) 等进行逆向转换
也可以使用 eval('0x40') 进行转换成int类型
在使用%进行字符串格式化时, 使用%o代表 8进制,x(忽略大小写)代表16进制:
"%o %x %X" % (64, 64, 255),
注意在进制操作时,Python都会将其转换成10进制进行显示
其他内置数字工具
math模块,包含了大多C下的math类库, 还有一些方法已经被内置,如: abs 绝对值, pow 幂运算,round,和int 等
random模块,提供随机数相关的操作,random( ) 返回0-1之间的浮点随机数, randint(1,10)返回指定区间的整数,
choice(),返回随机索引的元素,其中参数可以为List
Python的核心数字类型包含 integer, long integer,floating point, and complex(j)
在Python下提供了一种新的核心数字类型 decimal对象,需要导入该模块才可使用,看起来与浮点类型相似,不过提供
了更高的精度,常用于货币计算
声明格式如:
Decimal('0.1')
Sets Python2.4提供的一种新的集合容器,不过因为支持数学上的集合操作,所在这里也进行了介绍
创建的方式
x = set('abcde')
engineers = set(['bob', 'sue', 'ann', 'vic'])
支持 - | & 等操作,传统的数学上的集操作
Python3.0中 {}提供和sets一样的功能
Booleans 类型,所有非0的数字均为true,也许包括所有其他的对象 (None为false)
使用True and False 代替原来的 1 and 0
照旧凑字数,不过下面的问题的确不错..也很简单的单词
Chapter Quiz
1. What is the value of the expression 2 * (3 + 4) in Python?
2. What is the value of the expression 2 * 3 + 4 in Python?
3. What is the value of the expression 2 + 3 * 4 in Python?
4. What tools can you use to find a number’s square root, as well as its square?
5. What is the type of the result of the expression 1 + 2.0 + 3?
6. How could you truncate and round a floating-point number?
7. How can you convert an integer to a floating-point number?
8. How would you display an integer in octal or hexadecimal notation?
9. How might you convert an octal or hexadecimal string to a plain integer?
Quiz Answers
1. The result value will be 14, the result of 2 * 7, because the parentheses force the addition to happen before the multiplication.
2. Here, the result will be 10, the result of 6 + 4. Python’s operator precedence rules are applied in the absence of parentheses, and multiplication has higher precedence than (i.e., happens before) addition, per Table 5-2.
3. This expression yields 14, the result of 2 + 12, for the same precedence reasons as in the prior question.
4. Functions for obtaining the square root, as well as pi, tangents, and more, are
available in the imported math module. To find a number’s square root, import
math and call math.sqrt(N). To get a number’s square, use either the exponent
expression X** 2, or the built-in function pow(X, 2).
5. The result will be a floating-point number: the integers are converted up to floating point, the most complex type in the expression, and floating-point math is used to evaluate it.
6. The int(N) function truncates, and the round(N, digits?) function rounds.
7. The float(I) function converts an integer to a floating point; mixing an integer with a floating point within an expression will result in a conversion as well.
8. The oct(I) and hex(I) built-in functions return the octal and hexadecimal string forms for an integer. The % string formatting expression also provides targets for doing this.
9. The int(S, base?) function can be used to convert from octal and hexadecimal
strings to normal integers (pass in 8 or 16 for the base). The eval(S) function can be used for this purpose too, but it’s more expensive to run and can have security issues. Note that integers are always stored in binary in computer memory;these are just display string format conversions.
分享到:
相关推荐
Packt.Python.Machine.Learning.3rd.2019.12.mobi
《Python学习手册(第4版)》由Mark Lutz撰写,是Python编程语言学习的经典教材之一,本书深入探讨了Python的基础知识与高级概念,适用于初学者到有经验的程序员。以下是从该书标题、描述、标签及部分内容中提取的...
Key Features Written to the latest, gold-standard ...Edition: 3rd Revised edition Language: English Publisher: Packt Publishing Publication Date: 2017-03-06 ISBN-10: 1786469715 ISBN-13: 9781786469717
Packt.Python.Machine.Learning.Cookbook.2nd.Edition.2019
### 关于《Packt.Python.Machine.Learning.2015》的知识点解析 #### 一、书籍基本信息概述 本书名为《Packt.Python.Machine.Learning.2015》,由Sebastian Raschka编写,版权归属于Packt Publishing,并在2015年...
Manning.Deep.Learning.with.Python.2nd.Edition(机翻)
Title: Building Machine Learning Systems with Python, 2nd Edition Author: Willi Richert Length: 326 pages Edition: 1 Language: English Publisher: Packt Publishing Publication Date: 2015-03-31 ISBN-10:...
learning.python.2nd.edition
Python.Machine.Learning.2nd.Edition.2017.9 包含3种格式: 1. Python.Machine.Learning.2nd.Edition.2017.9.pdf 2. Python.Machine.Learning.2nd.Edition.2017.9.epub 3. Python.Machine.Learning.2nd.Edition....
《Learning.JavaScript.3rd.Edition》是一本深入学习JavaScript编程语言的重要著作,适用于初学者和有经验的开发者。本书的第三版详细介绍了JavaScript的核心概念和技术,为读者提供了全面而深入的理解,帮助他们...
Manning.Deep.Learning.with.Python.2017.11 原版 Deep Learning with Python introduces the field of deep learning using the Python language and the powerful Keras library. Written by Keras creator and ...
1. 书籍名称:《Mathematics for 3D Game Programming and Computer Graphics Third Edition》。 2. 作者信息:Eric Lengyel。 3. 出版社与相关信息:本书由Course Technology PTR出版,属于Cengage Learning公司。...