为了丰富学员们的课外知识,老师让我们助理分享这套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)