为了丰富学员们的课外知识,老师让我们助理分享这套Python系列教程。由于Python教程并非老师所写,所以不如老师的AI教学风趣幽默,望大家见谅!想要学习AI技术的新朋友可以去www.captainbed.net。本公众号由助理负责运营,只免费分享课外知识,不回复任何私信。
到目前为止,除了我们看到的核心类型外,还有其他的能够称得上核心类型的类型。
例如,集合是最近增加到这门语言中的类型,它不是映射也不是序列,集合是唯一的不可变的无序集合。集合可以通过调用内置set函数来创建,或者使用Python 3.0中新的集合常量和表达式创建:
>>> X = set('spam') # Make a set out of a sequence in 2.6 and 3.0
>>> Y = {'h','a','m'} # Make a set with new 3.0 set literals
>>> X,Y
({'a','p','s','m'},{'a','h','m'})
>>> X & Y # Intersection
{'a','m'}
>>> X | Y # Union
{'a','p','s','h','m'}
>>> X - Y # Difference
{'p','s'}
>>> {x ** 2 for x in [1,2,3,4]} # Set comprehensions in 3.0
{16,1,4,9}
此外,Python最近还添加了一些新的数值类型:十进制数(固定精度浮点数)和分数(有一个分子和一个分母的有理数)。它们都用来解决浮点数学的局限性和内在的不精确性:
>>> 1 / 3 # Floating-point (use .0 in Python 2.6)
0.33333333333333331
>>> (2/3) + (1/2)
1.1666666666666665
>>> import decimal # Decimals: fixed precision
>>> d = decimal.Decimal('3.141')
>>> d + 1
Decimal('4.141')
>>> decimal.getcontext().prec = 2
>>> decimal.Decimal('1.00') / decimal.Decimal('3.00')
Decimal('0.33')
>>> from fractions import Fraction # Fractions: numerator+denominator
>>> f = Fraction(2,3)
>>> f + 1
Fraction(5,3)
>>> f + Fraction(1,2)
Fraction(7,6)