gpt4 book ai didi

python - 什么时候两次使用 swapcase 不会返回相同的答案?

转载 作者:IT老高 更新时间:2023-10-28 22:18:44 25 4
gpt4 key购买 nike

str.swapcase() 的 Python 文档说:

Note that it is not necessarily true that s.swapcase().swapcase() == s.

我猜这与 Unicode 有关;但是,我无法生成恰好在两次应用 swapcase() 后发生变化的字符串。什么样的字符串不会产生相同的结果?

这是我测试的(获得 here):

>>> testString = '''Bãcoл ípѕüϻ Ꮷ߀ɭor sìt ämét qûìs àɭïɋüíp cülρä, ϻagnâ èх ѕêԁ ѕtríρ stêãk iл ԁò ut sålámí éхèrcìtátïoл pòrƙ ɭ߀in. Téԉԁërɭ߀ín tùrkèϒ ѕáûsáɢè лùɭɭå pɑrïátûr, ƃáll típ âԁiρïѕicïԉǥ ɑᏧ c߀ԉsêquät ϻâgлã véлïsoл. Míлím àutë ѵ߀ɭüρtåte mòɭɭít tri-tíρ dèsêrùԉt. Occãècát vëԉis߀ԉ êХ eiùѕm߀d séᏧ láborüϻ pòrƙ lòïл àliɋûå ìлcíԁìԁúԉt. Sed còmϻ߀Ꮷ߀ յoɰl offícíä pòrƙ ƅèɭly témρòr lâƅòrùϻ tâiɭ sρårê ríbs toлǥue ϻêátɭòáf måɢnä.

Kièɭbàѕã in còлѕêctêtur ѵëлíàϻ pâríɑtùr p߀rk ɭ߀in êxêrcìtâtiòл älìɋúíρ câρicolɑ ρork tòлɢüê düis ԁ߀ɭoré rêpréhéԉᏧérït. Tènԁèrloiԉ ëх rèρréհeԉԁérït fûgíãt ädipìsiciԉg gr߀ünᏧ roúлd, ƅaɭɭ típ հàϻƃûrǥèr ѕɦòùlder ɭåb߀rûϻ têmρor ríƃêyë. Eѕsè hàϻ ѵëԉiam, åɭíɋùɑ ìrüre ρòrƙ cɦop ԁò ԁ߀ɭoré frânkfürter nülla påsträϻí sàusàgè sèᏧ. Eӽcêptêür ѕëd t-b߀лë հɑϻ, esѕë ut ɭàƅoríѕ ƃáll tíρ nostrúԁ sհ߀üldêr ïn shòrt ríƅs ρástrámï. Essé hamƅûrǥër ɭäƅòré, fatƃàcƙ teԉderlòïn sհ߀rt rïbs ρròìdént riƅêye ɭab߀rum. Nullɑ türԁùcƙèn л߀n, sρarè rìƅs eӽceρteur ádïρìѕìcïԉǥ êt ѕɦort ɭòin dolorë änïm dêѕêrùлt. Sհäлƙlè cúpïԁätát pork lòïn méåtbäll, ԉ߀strud réprèհéԉԁêrìt ɦɑϻburǥêr ѕâɭɑϻí Ꮷol߀rè ɑd lêberƙãs.

Boûdiл toлǥuê c߀ԉsèqûåt eà rümρ ƅálɭ tíρ ѕρâré rìbѕ ín pròiᏧent dûiѕ ϻíлïm èíuѕmòᏧ c߀rԉêᏧ ƃèèf ƅɑc߀л d߀lorè. Cornèd ƅëèf drûmsticƙ cùlpa, éлïm baɭɭ tìp ϻéatbâlɭ lab߀rê tri-tïp vënisoԉ ǥroùԉԁ ròùлԁ հɑm iл èä bãcòn. Eѕѕé ìᏧ ѕúԉt, sհoùldér ƙïeɭƃäѕà ãԁiρisïcïԉɢ ɦaϻbûrgêr út ԁòɭ߀re fåtbäcƙ ԁ߀ɭòr äлïm trï-típ. EíùsϻòᏧ nülɭã läbòruϻ лíѕi êxcéptèúr. Occåécåt Ꮷüíѕ ԁèserüлt toԉǥue ϳ߀wɭ. Rèρréɦëԉԁêrit áɭïqúíp fûǥiàt tùrkey véniãϻ qüìѕ.'''
>>> testString.swapcase().swapcase() == testString
True

最佳答案

当多个字母是同一个字母的小写时就是这种情况。

例如,微字符µ (U+00B5)和 mu 字符 μ (U+03BC) :

>>> u'\xb5'.swapcase()
u'\u039c'
>>> u'\u03bc'.swapcase()
u'\u039c'

这两个是不同的字符,但它们的大写字母是相同的。这意味着当 str.swapcase() 被应用时,它们返回相同的字符。但是,再次执行此操作不能(也不会)返回两个字母。

>>> u'\xb5'.swapcase().swapcase()
u'\u03bc'

关于python - 什么时候两次使用 swapcase 不会返回相同的答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20696923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com