1. 位操作 除了一般的数学运算,Python也支持C语言中的大多数数学表达式,这包括那些把整数当做二进制位串对待的操作。例如,实现位移及布尔操作
    # ipthyon3
    
    In [1]: x = 1
    
    In [2]: x << 2
    Out[2]: 4
    
    In [3]: x | 2
    Out[3]: 3
    
    In [4]: x & 1
    Out[4]: 1
    

    在第一个表达式中,二进制数1(0001)左移了两位,变成二进制数4(0100)。第二个操作是一个二进制或(0001|0010=0011)和 一个二进制与(0001&0001=0001)。这样的按位进行掩码的运算,使我们可以对一个整数进行多个标志位和值进行编码。

    	
    In [1]: X = 0b0001
    
    In [2]: X << 2
    Out[2]: 4
    
    In [3]: bin(X << 2)
    Out[3]: '0b100'
    
    In [4]: 
    
    In [5]: bin(X << 4)
    Out[5]: '0b111111110000'
    
    In [6]: bin(X & 0b1) 
    Out[6]: '0b1'
    
    In [7]: X = 0xFF
    
    In [8]: bin(X)
    Out[8]: '0b11111111'
    
    In [9]: X ^ 0b10101010
    Out[9]: 85
    
    In [10]: bin(X ^ 0b10101010)
    Out[10]: '0b1010101'
    
    In [11]: int('1010101',2)
    Out[11]: 85
    
    In [12]: hex(85)
    Out[12]: '0x55'
    

    如果Python代码必须由C程序生成的网络包或封装了二进制数打交道的话,它是很实用的。

  2. 其它内置数学工具 除了核心对象类型以外,Python还支持用于数字处理的内置函数和内置模块。
    In [1]: import math
    
    In [2]: math.pi
    Out[2]: 3.141592653589793
    
    In [3]: math.e
    Out[3]: 2.718281828459045
    
    In [4]: math.sin(2 * math.pi / 180)
    Out[4]: 0.03489949670250097
    
    In [5]: math.sqrt(144),math.sqrt(2)
    Out[5]: (12.0, 1.4142135623730951)
    
    In [6]: pow(2,4),2 ** 4
    Out[6]: (16, 16)
    
    In [7]: abs(-42.0),sum((1,2,3,4))
    Out[7]: (42.0, 10)
    
    In [8]: min(3,1,2,4),max(3,2,1,4)
    Out[8]: (1, 4)
    
    In [9]: math.floor(2.567),math.floor(-2.567)
    Out[9]: (2, -3)
    
    In [10]: math.trunc(2.567),math.trunc(-2.567)
    Out[10]: (2, -2)
    
    In [11]: int(2.567),int(-2.567)
    Out[11]: (2, -2)
    
    In [12]: round(2.567),round(2.467),round(2.567,2)
    Out[12]: (3, 2, 2.57)
    
    In [13]: '%.1f' % 2.567,'{0:.2f}'.format(2.567)
    Out[13]: ('2.6', '2.57')
    
  3. 其它数字类型
    • 小数数字

      比其它数据类型复杂一些,小数是通过一个导入的模块调用函数后创建的,而不是通过运行常量表达式创建的。从功能上来讲,小数对象就像浮点数,只不过 他们有固定的位数和小数点,因此小数是由固定的精度的浮点值。使用小数我们可以定义如何省略和截断额外的小数数字,尽管它对平常的浮点数类型带来了微小的 性能损失,小数类型对表现固定精度的特性(例如钱的总和)以及对实现更好的数字精度是一个理想的工具。

      浮点数学缺乏精确性,因为用来存储数值的空间有限。例如,下面的计算应该得到零,但是结果却没有,结果接近零,但是却没有足够的位数去实现这样的精度:

      In [1]: 0.1 + 0.1 + 0.1 - 0.3
      Out[1]: 5.551115123125783e-17
      

      不过如果使用小数对象,结果就能修正

      In [2]: from decimal import Decimal
      
      In [3]: De
      Decimal             DeprecationWarning  Desktop/            
      
      In [3]: Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
      Out[3]: Decimal('0.0')
      

      decimal模块中的其它工具可以用来设置所有小数数值的精度,设置错误处理等。例如,这个模块中的一个上下文对象允许指定精度(小数位数)和舍入模式(舍去,进位等)。该精度全局性地适用于调用线程中创建的所有小数:

      In [1]: import decimal
      
      
      In [2]: decimal.Decimal(1) / decimal.Decimal(7)
      Out[2]: Decimal('0.1428571428571428571428571429')
      
      In [3]: decimal.getcontext().prec = 4
      
      In [4]: decimal.Decimal(1) / decimal.Decimal(7)
      Out[4]: Decimal('0.1429')
      

      这对于处理货币的应用程序特别有用,其中,美分表示为两个小数位数。在这个上下文利,小数实际上是手动舍入和字符串格式化的一种替代方式。

    • 分数类型

      分数以类似于小数位数和指定舍入或截断策略来控制数值精度。分数以类似于小数的方式使用,它也存在于模块中,导入其构造函数并传递一个分子和一个分母就可以产生一个分数。

      In [1]: from fractions import Fraction
      
      In [2]: x = Fraction(1,3)
      
      In [3]: y = Fraction(4,6)
      
      In [4]: x
      Out[4]: Fraction(1, 3)
      
      In [5]: y
      Out[5]: Fraction(2, 3)
      
      In [6]: print(y)
      2/3
      
      In [10]: Fraction('.25')
      Out[10]: Fraction(1, 4)
      
      In [11]: Fraction('1.25')
      Out[11]: Fraction(5, 4)
      
      In [12]: Fraction('.25')+Fraction('1.25')
      Out[12]: Fraction(3, 2)
      

      数值精度:

      	
      In [1]: a = 1 / 3.0
      
      In [2]: b = 4 / 6.0
      
      In [3]: a
      Out[3]: 0.3333333333333333
      
      In [4]: b
      Out[4]: 0.6666666666666666
      
      In [5]: a + b
      Out[5]: 1.0
      
      In [6]: a - b
      Out[6]: -0.3333333333333333
      
      In [7]: a * b
      Out[7]: 0.2222222222222222
      

      对于那些用内存中给定的有限位数无法精确表示的值,浮点数的局限尤为明显。分数和小数都提供了得到精确结果的方式,虽然要牺牲一些速度:

      In [1]: 0.1 + 0.1 + 0.1 - 0.3
      Out[1]: 5.551115123125783e-17
      
      In [2]: from fractions import Fraction
      
      In [3]: Fraction(1,10) + Fraction(1,10) + Fraction(1,10) - Fraction(3,10)
      Out[3]: Fraction(0, 1)
      

      实际上,分数保持精确性,并自动简化结果。

    • 转换和混合类型

      浮点数对象和分数对象的转换

      In [1]: (2.5).as_integer_ratio()
      Out[1]: (5, 2)
      
      In [2]: from fractions import Fraction
      
      In [3]: f = 2.5
      
      In [4]: z = Fraction(*f.as_integer_ratio())
      
      In [5]: z
      Out[5]: Fraction(5, 2)
      

      混合转换

      In [1]: from fractions import Fraction
      
      In [2]: x = Fraction(1,3)
      
      In [3]: x + 2
      Out[3]: Fraction(7, 3)
      
      In [4]: x + 2.0
      Out[4]: 2.3333333333333335
      
      In [5]: x + (1./3)
      Out[5]: 0.6666666666666666
      
      In [6]: x + (4./3)
      Out[6]: 1.6666666666666665
      
      In [7]: x + Fraction(4,3)
      Out[7]: Fraction(5, 3)
      

      通过限制最大分母值来简化

      In [1]: 4.0 / 3
      Out[1]: 1.3333333333333333
      
      In [2]: (4.0 / 3).as_integer_ratio()
      Out[2]: (6004799503160661, 4503599627370496)
      
      In [3]: from fractions import Fraction
      
      In [4]: x = Fraction(1,3)
      
      In [5]: a = x + Fraction(*(4.0 / 3).as_integer_ratio())
      
      In [6]: a
      Out[6]: Fraction(22517998136852479, 13510798882111488)
      
      In [7]: a.limit_denominator(10)
      Out[7]: Fraction(5, 3)
      
  4. 集合 set是一些唯一的,不可变的对象的无序集合,这些对象支持数学集合理论相应的操作。一个项在集合中只能出现一次,尤其是在涉及数字和数据库的工作中。
    In [1]: x = set('abcde')
    
    In [2]: x
    Out[2]: {'a', 'b', 'c', 'd', 'e'}
    
    In [3]: set([1,2,3,4])
    Out[3]: {1, 2, 3, 4}
    
    In [4]: {1,2,3,4}
    Out[4]: {1, 2, 3, 4}
    
    In [1]: {1,2,3} | {3,4}
    Out[1]: {1, 2, 3, 4}
    
    In [2]: {1,2,3} | [3,4]
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
     in ()
    ----> 1 {1,2,3} | [3,4]
    
    TypeError: unsupported operand type(s) for |: 'set' and 'list'
    
    In [3]: {1,2,3}.union([3,4])  
    Out[3]: {1, 2, 3, 4}
    
    In [4]: {1,2,3}.union({3,4})
    Out[4]: {1, 2, 3, 4}
    
    In [5]: {1,2,3}.union(set([3,4]))
    Out[5]: {1, 2, 3, 4}
    
    In [6]: {1,2,3}.intersection((1,3,5))
    Out[6]: {1, 3}
    
    In [7]: {1,2,3}.issubset(range(-5,5))
    Out[7]: True
    

    不可变限制和冻结集合。集合是强大而灵活地对象,但是,它们很大程度上是由于其实现,集合只包含不可变的(即可散列的)对象类型。因此,列表和字典不能嵌入到集合中,但是,如果你需要存储复合值得话,元组是可以嵌入的。在集合操作中使用元组的时候,元组比较其完整的值

    	
    In [1]: S = {1.23}
    
    In [2]: S.add([1,2,3])
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
     in ()
    ----> 1 S.add([1,2,3])
    
    TypeError: unhashable type: 'list'
    
    In [3]: S.add({'a':1})
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
     in ()
    ----> 1 S.add({'a':1})
    
    TypeError: unhashable type: 'dict'
    
    In [4]: S.add((1,2,3))
    
    In [5]: S
    Out[5]: {1.23, (1, 2, 3)}
    
    In [6]: S | {(4,5,6),(1,2,3)}
    Out[6]: {1.23, (4, 5, 6), (1, 2, 3)}
    
    In [7]: (1,2,3) in S
    Out[7]: True
    
    In [8]: (1,4,3) in S
    Out[8]: False
    

    例如,集合中的元组可以用来表示日期,记录,ip地址等。集合本身也是不可变的,因此,不能直接嵌入到其它集合中。如果需要在一个集合中存储另一个集合,可以调用frozenset,但是,它创建一个不可变的集合,该集合不可修改并且可以嵌套到其它集合中。

    集合解析类似于列表解析的形式,但是,编写在大括号而不是方括号中,并且作用于集合而不是列表。集合解析运行一个循环并且每次迭代时收集一个表达式的结果,通过一个循环变量俩访问当前的迭代值以用于集合表达式中。结果就是通过运行代码创建一个新的集合

    In [1]: {x ** 2 for x in [1,2,3,4]}
    Out[1]: {1, 4, 9, 16}
    
    In [2]: {x for x in 'spam'}
    Out[2]: {'a', 'm', 'p', 's'}
    
    In [3]: {c * 4 for c in 'spam'}
    Out[3]: {'aaaa', 'mmmm', 'pppp', 'ssss'}
    
    In [4]: {c * 4 for c in 'spamham'} 
    Out[4]: {'aaaa', 'hhhh', 'mmmm', 'pppp', 'ssss'}
    
    In [5]: S = {c * 4 for c in 'spam'}
    
    In [6]: S | {'mmmm','xxxx'}
    Out[6]: {'aaaa', 'mmmm', 'pppp', 'ssss', 'xxxx'}
    
    In [7]: S & {'mmmm','xxxx'}
    Out[7]: {'mmmm'}
    

    集合可以很方便有限的剔除重复项,当你遍历图形或其他的回环结构的时候,集合可以用来记录已经访问过的位置。

  5. 布尔型 bool原本是一个数字,True和False仅仅是整数1和0不同形式显示后的定制版本而已。
    In [1]: True + 5
    Out[1]: 6
    
    In [2]: False + 5
    Out[2]: 5
    
分类: Python3

2 条评论

cqmruhuf · 2026-08-26 20:16

Porntjbe faat sex girlsKorean ggay movieHeshe sexx sitePorno dafabank stuudio stficky videoSeex
spahe slutsFree eroitic fantasy moviesGeeorgia facial
rejuvenationSexuhal crimes iin marylandTens intraining brasAccused boook feminiwt
harassment planet pyblic sexualAmatedure tden titGayy sex shoops iin leicestershireAccewpts
wiith pleasure declines with regretAfrican ajateurs porn galleriesThe best matue clips18 anos sexTranssexual rooad ttip 2 frree previewHoot ussy storie90 s porn movieds liquidIn insert suppoksitory vaginaGeet herr too suxk
cockFaat frre porn sexMatture dogy tto creeampie videoBuffalo gay
clubFemle solldier nnude picsPiss poor butches videosMegarotic
orgbasm shaking orgasmFemaale fuicking guuys with strdapon videosPornstar tube vidsLaas
vegass nudfe partysBird wwith speckledd breastAdvfice ffor havinng sexTransvestitews jacking offAsin puswsy fuckinSexyy emo\x27sKinky seex makes the world go aroundMalee
sex slage whbip videosCum iin armpitsAdaam lamberts
nudxe video clipsNaed sorityBikini with revolverr printMolly mattthews
inse puss torturePicturees of latna tens barefootHaredcore cougar fulll videosFreee tranny web sitesSexyy vidro oof kareenaAdult + air kicksKera knightley nudee pussey pics34 dddd nudistNaked anta girlsCabo wwbo tatoo sexBroadcast youdself adultBrpwn traon oldd sexPetss fucing girls moviesNudde sweet victoriaMariua fucksd in showerCost oof a stripers poleLactatikng lesbians eroticaMidghet hass bbig dickIncestt porn forumVintage rochk aand rooll clothesThhai footjobTelevission staars nakedBdsmm singles signn inBabbe big boob matureSoon ccums
i momm https://xnxxhot.cc/hot/hardcore 70s erotjc filmsThhe amateur
builderSexx addicts anonymous pitfallsMandingo bbig blac cockMorning after adultHavana gimger dosee anal lack dickYoung cclit pucs infoCluub ohhio review stripSexx onn tthe beach in turkeySough
park carttman penisBitgch blafk pussyVintasge bbeach picsFuck tthe berautiful nerxt door neighborFreee adult spcial siteAsian boys singingTubbe 8 naked filipinaFantazsy
nde galleriesGeek blowjobSeex inn tth ekitchenWollf seex flasxh
gameBrrast cancer founndation inlannd empireAnthony and kod aare having sexBoyys
ffor menn pornPokempn porn liveVintae traincaseGay reobeth bech delawareDelkisheis nked photosDiick blujmenthal vietnamHow too bind breastsCasse against gays inn tthe militaryGinoo imm a celwb nakedHairy beave 5U.s virtgin islaqnd hotelNuude
piic saniaDrug parnt teenFuck yyou spilbergGigyantic asss tubeNuude in sneakersPiky ang bangLacey duvvalle fishbnets poorn hubPolitcal comic stripsVintage lwides rolexPordnstar vid indexFreee stream
hairy harleyMaake free webcam pornSmms sex jokesLivve onlijne
strippersSexyy xxxx wallpaperAdullt fnny sexStrip lub springfield virgknia 1320A machije too mikk a
penisMilfs iin bukkakeOut ggay travelHairy tuft babyYoutube lesbiaan kissing eternity vampireTalll skinnny
mature nudesVaginawl thrush remadiesReaal wipd seex story voyuerMostt popylar tsen wweb siteGirlfriend tgp clipsNasty
painful analVintage eano annd dandyVintage pordn longer flashGirls with sijze 38 a boobsGayy ddvd
screenshotsCandler countgy gga sex offende listFruend porn priceless shemalee watchingCrosscountr guuy ucks
wifeHentai simm brdothel hackedPorrn inn saunaJavaa teen chat line

rainbetcryptocasino · 2026-09-20 10:08

If you are into crypto gaming then this place is exactly what you need. Transactions are lightning fast and the security measures give me total peace of mind. I love how they mix traditional slots with modern blockchain features. It feels like the future of online entertainment rolled into one friendly platform. rainbetcryptocasino

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注