Hallo, sehr geehrte Pythonier, für die Zeichencodierung bestehen offenbar noch nicht bekannte Zusammenhänge, die hier diskussiert werden sollen. Informationen werden als Zeichen übertragen (gesprochen oder in Buchstaben geschrieben). Für eine elektronische Übertragung ist allein das duale Prinzip geeignet, weil Computer nur die Ziffern "0 und 1 verstehen, an einer Speicherstelle als "bit" . Es gibt etwa 1.114.112 Zeichen. und demzufolge mindestens ebenso viele Bits. Wie soll mit dieser Menge gearbeitet werden? Die Menge nuss gegliedert (Struktur) und die Glieder müssen auch wiedergefunden werden (geeignetes System). Für diese Aufgabe bieten sich verschiedene Mögöichkeiten. Die Struktur wird mit einer Folge von 8-bit ("Byte") gegliedert und die Ordnung wird mit Zahlensystemen zur Basis 10 (dezimal) und 16 (hexadezimal) hergestellt. Diese Regeln liegen dem gesamten Unicode-Verfahren zugrunde. 1 Byte 8 bit 2^8 256 Zeichen 2 Byte 16 bit 2^16 65536 Zeichen 3 Byte 24 bit 2^24 16777216 Zeichen . . . . . . . . . . . . . . . . . . . . . . Die Wahl hätte auch anders ausfallen können: Als Struktureinheit wird eine Folge von 12-bit (Unit) angesetzt und als Ordnungsprinzip.das Zahlensystem zur Basis 4096 gewählti. 1 Unit 12 bit 2^12 4096 Zeichen 2 Unit 24 bit 2^24 16777216 Zeichen 3 Unit 32 bit 2^32 4294967296 Zeichen . . . . . . . . . . . . . . . . . . . . . . Werden Byte-Struktur beibehalten und das Zahlensystem zur Basis 4096 gegen die Systeme Basis 12,16 ausgetauscht, ergeben sich neue Grundlagen die im Programm “Keyboard-coding" angewendet werden. Das Zahlensystem zur Basis 4096 besteht aus folgenden 4096 Ziffern: ziffern = """123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġ ĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹ źŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNj njǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞ ȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶ ɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯͰͱͲͳʹͶͷͻͼͽͿΆΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛ ΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϴϵ϶ϷϸϹϺϻϼϽϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҊҋҌҍҎҏҐґҒғҔҕҖ ։ऄअआइईउऊऋऌऍऎएऐऑऒओऔकखगघङचछजझञटठड卑卒卓協单卖南単卙博卛ऴवशषसहऺऻ़क़ख़ग़ज़ड़ढ़फ़य़ॠ२३४५६७८९ॲॳॴॵॶॷॸॹॺ ॻॼॽॾঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহৎড়ঢ়য়০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸ਅਆਇਈਉਊਏਐਓਔ ૰૱ଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହଡ଼ଢ଼ୟୠୡ୧୨୩୪୫୬୭୮୯୰ୱ୲୳୴அஆஇஈஉஊஎஏஐஒஓஔ கஙசஜஞடணதநனபமயரறலளழவஶஷஸௐ௦௧௨௩௪௫௬௭௮௯௰௱௲௳௴అఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠ డఢణతథదధనపఫబభమయరఱలళఴవశషసౘౙౚౠ౨౩౪౫౬౭౮౯ಀಁಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡ ಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹೞೠ೦೧೨೩೪೫೬೭೮೯ೱഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞ ടഠഡഢണതഥദധനഩപഫബഭമയരറലളഴവശഷസഹൟൠ൪൫൬൭൮൯൰൱൲൳൴൵൹ൺൻർൽൾඅආඇඈඉඊඋඑඒඓඔඕඖකඛගඝඞ ඟචඡජඣඤඥඦටඨඩඪණඬතථදධනඳපඵබභමඹයරලවශෂසහළෆ෴กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษส หฬอฮฯ฿เแ๏๐๑๒๓๔๕๖๗๘๙๚๛ກຂງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮເແ໐໑໒໓໔໕໖໗໘໙ໜໝༀ༁༂༃༄༅༆༇༈༉༊་༌།༎༏༐༑༒༓༔༕༖༗ ༘༙ཀཁགགྷངཅཆཇཉཊཋཌཌྷཎཏཐདདྷནཔཕབབྷམཙཚཛཛྷཝཞཟའཡརལཤཥསཧཨཀྵཪཫཬ྾྿࿀࿁࿂࿃࿄࿅࿆࿇࿈࿉࿊࿋࿌࿔࿕࿖࿗࿘ကခဂဃငစဆဇဈဉညဋဌဍဎဏတထဒဓနပဖဗ ဘမယရလဝသဟဠအဢ၂၃၄၅၇၈၉၊။၏ၐၑၒၓၔၥၦၧၨၩၪၫၬၭၮၯၵၶၷၸၹၺၻၼၽၾၿႀႎႏ႐႑႒႓႔႕႖႗႘႙ႠႡႢႣႤႥႦႧႨႩ ႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅაბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶჷჸჹᄀᄁᄂᄃᄄᄅᄆᄇ ᄈᄉᄊᄋᄌᄍᄎᄏᄐᄑᄒᄓᄔᄕᄖᄗᄘᄙᄚᄛᄜᄝᄞᄟᄠᄡᄢᄣᄤᄥᄦᄧᄨᄩᄪᄫᄬᄭᄮᄯᄰᄱᄲᄳᄴᄵᄶᄷᄸᄹᄺᄻᄼᄽ ᄾᄿᅀᅁᅂᅃᅄᅅᅆᅇᅈᅉᅊᅋᅌᅍᅎᅏᅐᅑᅒᅓᅔᅕᅖᅗᅘᅙᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵᅶᅷᅸᅹᅺ ᅻᅼᅽᅾᅿᆀᆁᆂᆃᆄᆅᆆᆇᆈᆉᆊᆋᆌᆍᆎᆏᆐᆑᆒᆓᆔᆕᆖᆗᆘᆙᆚᆛᆜᆝᆞᆟᆠᆡᆢᆩᆪᆫᆬᆭᆮᆯᆰᆱᆲᆳᆴᆵᆶᆷ ᆸᆹᆺᆻᆼᆽᆾᆿᇀᇁᇂᇃᇄᇅᇆᇇᇈᇉᇊᇋᇌᇍᇎᇏᇐᇑᇒᇓᇔᇕᇖᇗᇘᇙᇚᇛᇜᇝᇞᇟᇠᇡᇢᇣᇤᇥᇦᇧᇨᇩᇪᇫᇬᇭᇮ ᇯᇰᇱᇲᇳᇴᇵᇶᇷᇸᇹሀሁሂሃሄህሆሇለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮ ፩፪፫፬፭፮፯፰፱፲፳፴፵፶፷፸፹፺፻፼ᎀᎁᎂᎃᎄᎅᎆᎇᎈᎉᎊᎋᎌᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿᏀᏁᏂᏃᏄ ᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯᏰᏱᏲᏳᏴᏵᏸᏹᏺᏻᏼᏽᐁᐂᐃᐄᐅᐆᐇᐈᐉᐊᐋᐌᐍᐎᐏ ᐐᐑᐒᐓᐔᐕᐖᐗᐘᐙᐚᐛᐜᐝᐞᐟᐠᐡᐢᐣᐤᐥᐦᐧᐨᐩᐪᐫᐬᐭᐮᐯᐰᐱᐲᐳᐴᐵᐶᐷᐸᐹᐺᐻᐼᐽᐾᐿᑀᑁᑂᑃᑄᑅᑆᑇᑈᑉᑊᑋᑌᑍᑎᑏᑐᑑᑒᑓᑔᑕᑖᑗᑘ ᑙᑚᑛᑜᑝᑞᑟᑠᑡᑢᑣᑤᑥᑦᑧᑨᑩᑪᑫᑬᑭᑮᑯᑰᑱᑲᑳᑴᑵᑶᑷᑸᑹᑺᑻᑼᑽᑾᑿᒀᒁᒂᒃᒄᒅᒆᒇᒈᒉᒊᒋᒌᒍᒎᒏᒐᒑᒒᒓᒔᒕᒖᒗᒘᒙᒚᒛᒜᒝᒞᒟ ᒠᒡᒢᒣᒤᒥᒦᒧᒨᒩᒪᒫᒬᒭᒮᒯᒰᒱᒲᒳᒴᒵᒶᒷᒸᒹᒺᒻᒼᒽᒾᒿᓀᓁᓂᓃᓄᓅᓆᓇᓈᓉᓊᓋᓌᓍᓎᓏᓐᓑᓒᓓᓔᓕᓖᓗᓘᓙᓚᓛᓜᓝᓞᓟᓠᓡᓢᓣ ᓤᓥᓦᓧᓨᓩᓪᓫᓬᓭᓮᓯᓰᓱᓲᓳᓴᓵᓶᓷᓸᓹᓺᓻᓼᓽᓾᓿᔀᔁᔂᔃᔄᔅᔆᔇᔈᔉᔊᔋᔌᔍᔎᔏᔐᔑᔒᔓᔔᔕᔖᔗᔘᔙᔚᔛᔜᔝᔞᔟᔠᔡᔢᔣᔤᔥᔦᔧᔨ ᔩᔪᔫᔬᔭᔮᔯᔰᔱᔲᔳᔴᔵᔶᔷᔸᔹᔺᔻᔼᔽᔾᔿᕀᕁᕂᕃᕄᕅᕆᕇᕈᕉᕊᕋᕌᕍᕎᕏᕐᕑᕒᕓᕔᕕᕖᕗᕘᕙᕚᕛᕜᕝᕞᕟᕠᕡᕢᕣᕤᕥᕦᕧᕨᕩᕪᕫᕬᕭᕮᕯᕰᕱ ᕲᕳᕴᕵᕶᕷᕸᕹᕺᕻᕼᕽᕾᕿᖀᖁᖂᖃᖄᖅᖆᖇᖈᖉᖊᖋᖌᖍᖎᖏᖐᖑᖒᖓᖔᖕᖖᖗᖘᖙᖚᖛᖜᖝᖞᖟᖠᖡᖢᖣᖤᖥᖦᖧᖨᖩᖪᖫᖬᖭᖮᖯᖰᖱᖲᖳᖴᖵᖶᖷᖸ ᖹᖺᖻᖼᖽᖾᖿᗀᗁᗂᗃᗄᗅᗆᗇᗈᗉᗊᗋᗌᗍᗎᗏᗐᗑᗒᗓᗔᗕᗖᗗᗘᗙᗚᗛᗜᗝᗞᗟᗠᗡᗢᗣᗤᗥᗦᗧᗨᗩᗪᗫᗬᗭᗮᗯᗰᗱᗲᗳᗴᗵᗶᗷᗸᗹᗺᗻᗼᗽᗾᗿᘀ ᙭᙮ᙯᙰᙱᙲᙳᙴᙵᙶᚌᚍᚎᚏᚕᚖᚗᚘᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕ ᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪᜀᜁᜂᜃᜄᜅᜆᜇᜈᜉᜊᜋᜌᜎᜏᜐᜠᜡᜢᜣᜤᜥᜦᜧᜨᜩᜪᜫᜬᜭᜮᜯᜰᜱᜲᜳ᜴᜵᜶ᝀᝁᝂᝃᝄᝅᝆᝇ ᝈᝉᝊᝋᝌᝍᝎᝏᝠᝡᝢᝣᝤᝥᝦᝧᝨᝩᝪᝫᝬᝮᝯកខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវឝឞសហឡអឣឤឥឦឧឨឩឪឫឬឭឮឯឰឱឲ ។៕៖ៗ៘៙៚ᢇᢈᢉᢊᢋᢌᢍᢎᢏᢐᢑᢒᢓᢔᢕᢖᢗᢘᢙᢚᢛᢜᢝᢞᢟᢠᢡᢢᢣᢤᢥᢦᢧᢨᢩᢪᤀᤁᤂᤃᤄᤅᤆᤇᤈᤉᤊᤋᤌᤍᤎᤏᤐᤑᤒᤓᤔᤕᤖᤗᤘᤙᤚᤛᤜᤝ᥄᥅᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ᥐᥑᥒ ᥓᥔᥕᥖᥗᥘᥙᥚᥛᥜᥝᥞᥟᥠᥡᥢᥣᥤᥥᥦᥧᥨᥩᥪᥫᥬᥭᥰᥱᥲᥳᥴᦀᦁᦂᦃᦄᦅᦆᦇᦈᦉᦊᦋᦌᦍᦎᦏᦐᦑᦒᦓᦔᦕᦖᦗᦘᦙᦚᦛᦜᦝᦞᦟᦠᦡᦢᦣᦤᦥᦦᦧᦨᦩᦪᦫᦰᦱᦲᦳᦴ ᦵᦶᦷᦸᦹᦺᦻᦼᦽᦾᦿᧀᧁᧂᧃᧄᧅᧆᧇᧈᧉ᧒᧓᧔᧕᧖᧗᧘᧙᧚᧞᧟᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧪᧫᧬᧭᧮ᨀᨁᨂᨃᨄᨅᨆᨇᨈᨉᨊᨋᨌᨍᨎᨏᨐᨑᨒᨓ ᨔᨕᨖ᨟ᨠᨡᨢᨣᨤᨥᨦᨧᨨᨩᨪᨫᨬᨭᨮᨯᨰᨱᨲᨳᨴᨵᨶᨷᨸᨹᨺᨻᨼᨽᨾᨿᩀᩁᩂᩃᩄᩅᩆᩇᩈᩉᩊᩋᩌᩍᩎᩏᩐᩑᩒᩓ᪀᪁᪂᪃᪄᪅᪆᪇᪈᪉᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙᪦ ᪧ᪨᪩᪪᪫᪬᪭ᬅᬆᬇᬈᬉᬊᬋᬌᬍᬎᬏᬐᬑᬒᬓᬔᬕᬖᬗᬘᬙᬚᬛᬜᬝᬞᬟᬠᬡᬢᬣᬤᬥᬦᬧᬨᬩᬪᬫᬬᬭᬮᬯᬰᬱᬲᭅᭆ ᭇᭈᭉᭊᭋ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙᭚᭜᭝᭞᭟᭠᭡᭢᭣᭤᭥᭦᭧᭨᭴᭵᭶᭷᭸᭹ᮃᮄᮅᮆᮇᮈᮉᮊᮋᮌᮍᮎᮏᮐᮑᮒᮓᮔᮕᮖᮗᮘᮙᮚᮛᮜᮝᮞᮟᮮᮯ᮰᮱᮲᮳ ᮴᮵᮶᮷᮸᮹ᮺᮻᮼᮽᮾᯀᯁᯂᯃᯄᯅᯆᯇᯈᯉᯊᯋᯌᯍᯎᯏᯐᯑᯒᯓᯔᯕᯖᯗᯘᯙᯚᯛᯜᯝᯞᯟᯠᯡᯢᯣᯤ᯼᯽᯾᯿ᰀᰁᰂᰃᰄᰅᰆ ᰇᰈᰉᰊᰋᰌᰍᰎᰏᰐᰑᰒᰓᰔᰕᰖᰗᰘᰙᰚᰛᰜᰝᰞᰟᰠᰡᰢ᰻᰼᰽᰾᰿᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ᱍᱎᱏ᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ᱚᱛᱜᱝᱞᱟᱠᱡᱢᱣᱤᱥᱦᱧᱨᱩᱪᱫᱬᱭᱮᱯᱰᱱᱲᱳᱴᱵ ᱶᱷ᱾᱿ᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᲤᲥᲦᲧᲨᲩᲪᲫᲬᲭᲮᲯᲰᲱᲲᲳᲴᲵᲶᲷᲸᲹᲺ〹〺〻〼〽〾〿ぁあぃいぅうぇえぉおかがきぎくぐけ げこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょ よらりるれろゎわゐゑをんゔゕゖ㈤㈥㈦㈧㈨㈩㈪㈫㈬㈭㈮㈯㈰㈱㈲㈳㈴㈵㈶㈷㈸㈹㈺㈻㈼㈽㈾㈿㉀㉁㉂㉃㉄㉅㉆㉇㉈㉉㉊ ㊉㊊㊋㊌㊍㊎㊏㊐㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾ ㊿㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬㋭㋮㋯㋰㋱㋲㋳㋴㋵㋶㋷㋸ ㋹㋺ꦄꦅꦆꦇꦉꦌꦍꦏꦐꦑꦒꦓꦔꦕꦖꦗꦘꦚꦛꦜꦝꦞꦟꦠꦡꦢꦣꦤꦥꦦꦧꦨꦩꦪꦫꦬꦭꦮꦯꦰꦱ꧆꧇꧈꧉𐀀𐀁𐀂𐀃𐀄𐀅𐀆𐀇𐀈 𐀉𐀊𐀋𐀍𐀎𐀏𐀐𐀑𐀒𐀓𐀔𐀕𐀖𐀗𐀘𐀙𐀚𐀛𐀜𐀝𐀞𐀟𐀠𐀡𐀢𐀣𐀤𐀥𐀦𐀨𐀩𐀪𐀫𐀬𐀭𐀮𐀯𐀰𐀱𐀲𐀳𐀴𐀵𐀶𐀷𐀸𐀹𐀺𐀼𐀽𐀿𐁀𐁁𐁂𐁃𐁄𐁅𐁆𐁇𐁈𐁉𐁊匸匹区医匼匽匾匿區十卂 千卄卅卆升午卉半卋卌华协卑卒卓協单卖南単卙博卛卜卝卞卟占卡卢卣卤卥卦卧卨卩ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓ ㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧭᧯ᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᱪᱫᱬᱭ ㄪㄫꆰꆱꆲꆳꆴꆵꆶꆷꆸꆹꆺꆻꆼꆽꆾꆿꇀꇁꇂꇃꇄꇅꇆꇇꇈꇉꇊꇋꇌꇍꇎꇏꇐꇑꇒꇓꇔꇕꇖꇗꇘꇙꇚꇛꇜꇝꇞꇟꇠꇡꇢꇣꇤꇥꇦꇧꇨꇩꇪꇫꇬꇭꇮꇯꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹ""" Für die Zeichenkodierung werden mit “Keyboard-coding" folgende Zeichen aufgerufen: 1 Byte 8 bit 2^8 256 Zeichen 2 Byte 16 bit 2^16 65536 Zeichen 3 Byte 24 bit 2^24 16777216 Zeichen . . . . . . . . . . . . . . . . . . . . . . Die Ergebnisse sind mit dem aktuellen Verfahren identisch. Nur die Ziffern zur Kodierung sind naturgemäß unterschiedlich. <point> aktuell <index> sys4096 Zif byte Zif byte f 15 15 ꇸ 4095 ff 256 256 fꇸ 65535 Die Umrechnung von <index> Ziffern nach <point> Ziffern geschieht mit folgendem Code: basis = 4096 syszahl = ꇸ digiset = System zur Basis 4096 def nachdez(basis,syszahl): digitset = ziffern umfang = digitset[:basis-1] zahl=0 ziffer = "" dezzahl = 0 laenge = len(syszahl) hoch = laenge for n in range(laenge): hoch -= 1 n += 1 ziffer = syszahl[n-1] if ziffer: zahl = umfang.find(ziffer)+1 else: zahl = int(ziffer)+1 dezzahl = dezzahl + zahl*basis**hoch return dezzahl dezzahl = 4095 Das Kodierungsproblem beginnt bereits bei der Tastatur (Eingabe). Für die ASCII-Tastatur wird das Zahlensystem zur Basis 16 eingesetzt, das eine Menge von 16 Ziffern umfasst. In der Unicode Tabelle ist jedem Zeichen eine dezimale Zahl(<point>) zugeordnet. Mit der ASCII-Tastatur werden 16 Ziffern (0 - 15) erfasst. Die höchste Ziffer (f) generiert 15 duale Zahlen und (ff) ergibt 256 duale Zahlen. Mit der "Touchscreen-Tastatur" (Modell) und dem Zahlensystem zur Basis 4096 werden durch markieren mit dem Cursor oder berühren mit dem Finger 4096 dezimale Zahlenwerte erzeugt, die als <point>Werte gleichviel Zeichen generieren. Mit der höchsten Ziffer (ꇸ) werden 4095 duale Zahlen, und mit (fꇸ) 65535 duale Zahlen generiert. Basis: 2 first system: 4096 second system: 2 insert first number: ꇸ second numberl: result: 111111111111 12 bit dezimal: 4095 Wer Einzelheiten testen möchte, kann das Programm "Keyboard-coding.py" per e-mail anfordern. Für weitere Erläuterungen steht der Author jederzeit gern zur Verfügung unter: eschnoor@multi-matrix.de
Hallo Herr Schnoor,
Das Zahlensystem zur Basis 4096 besteht aus folgenden 4096 Ziffern:
ziffern = """123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġ ... ㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧭᧯ᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᱪᱫᱬᱭ ㄪㄫꆰꆱꆲꆳꆴꆵꆶꆷꆸꆹꆺꆻꆼꆽꆾꆿꇀꇁꇂꇃꇄꇅꇆꇇꇈꇉꇊꇋꇌꇍꇎꇏꇐꇑꇒꇓꇔꇕꇖꇗꇘꇙꇚꇛꇜꇝꇞꇟꇠꇡꇢꇣꇤꇥꇦꇧꇨꇩꇪꇫꇬꇭꇮꇯꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹ"""
Ein Ziffernstring eines Zahlensystems zur Basis b enthält b VERSCHIEDENE DRUCKBARE Zeichen. Ausgeschlossen sind somit whitespace-Zeichen (Tabulatoren, Zeilenumbrüche, Leerzeichen) und Steuerzeichen. Ihr Mehrzeilenstring <ziffern> erfüllt diese elementaren Anforderungen nicht. Er enthält fast 70 Zeichen mehrfach, darunter 56 Zeilenumbrüche und ein Leerzeichen. Dies sieht man so: z = ziffern num1 = len(z) num2 = len(set(z)) # set(z) = Menge der Zeichen in z print(num1, num2, num1 - num2) # >> 4115 3983 132 mehrfach = sorted( set( [ x for x in z if (z.count(x) > 1 or x in "\t\n ") ] ) ) for i, ch in enumerate(mehrfach): print("[%d] >%s< %6d (%d-mal)" % (i+1, ch, ord(ch), z.count(ch))) Da müsste nachgebessert werden. W. Buechel
Hallo, liebe Pythonier, sehr geehrter Herr Buechel, Allen zur Information: Die Ziffern des Zahlensystems zur Basis 4096 sind in Python 3.12.2 programmiert. Sie werden mit den Begrenzungszeichen “”” am Anfang und am Ende in einem einheitlichen String “ziffern” gespeichert. Ihr Wert bestimmt sich aus ihrer Position im String (0 bis 4096). Die Auslegung “mehrzeilenstring” ist nicht zutreffend. Der Umfang des Strings “ziffern” wird durch die Abfrage: umfang = len(ziffern) = 4096 einwandfrei bestätigt. Wo soll da noch nachgebessert werden? Mit internetten Grüßen Erich
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Keyboard coding Datum: 19. Juli 2024 um 19:50:01 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Hallo Herr Schnoor,
Das Zahlensystem zur Basis 4096 besteht aus folgenden 4096 Ziffern:
ziffern = """123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġ ... ㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧭᧯ᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᱪᱫᱬᱭ ㄪㄫꆰꆱꆲꆳꆴꆵꆶꆷꆸꆹꆺꆻꆼꆽꆾꆿꇀꇁꇂꇃꇄꇅꇆꇇꇈꇉꇊꇋꇌꇍꇎꇏꇐꇑꇒꇓꇔꇕꇖꇗꇘꇙꇚꇛꇜꇝꇞꇟꇠꇡꇢꇣꇤꇥꇦꇧꇨꇩꇪꇫꇬꇭꇮꇯꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹ"""
Ein Ziffernstring eines Zahlensystems zur Basis b enthält b VERSCHIEDENE DRUCKBARE Zeichen. Ausgeschlossen sind somit whitespace-Zeichen (Tabulatoren, Zeilenumbrüche, Leerzeichen) und Steuerzeichen.
Ihr Mehrzeilenstring <ziffern> erfüllt diese elementaren Anforderungen nicht. Er enthält fast 70 Zeichen mehrfach, darunter 56 Zeilenumbrüche und ein Leerzeichen.
Dies sieht man so:
z = ziffern num1 = len(z) num2 = len(set(z)) # set(z) = Menge der Zeichen in z print(num1, num2, num1 - num2) # >> 4115 3983 132
mehrfach = sorted( set( [ x for x in z if (z.count(x) > 1 or x in "\t\n ") ] ) )
for i, ch in enumerate(mehrfach): print("[%d] >%s< %6d (%d-mal)" % (i+1, ch, ord(ch), z.count(ch)))
Da müsste nachgebessert werden.
W. Buechel _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de

Hallo Herr Schnoor, ein Mehrzeilenstring (MZS) ist ein String, der über mehrere Zeilen geht, eingeschlossen in Dreifach-Anführungszeichen (einfache ''' oder doppelte """). Auch wenn Sie den Ausdruck, den Begriff oder die Sache nicht kennen -- ziffern ist ein solcher MZS. Das manchmal Erwünschte, hier aber Unerwünschte ist folgendes: ALLE Zeilenumbrüche (durch die Tastatur eingefügt mittels ENTER) sind Teil des Strings, werden mit ausgedruckt, und mitgezählt bei der Längenberechnung durch len(). Daher zieht Ihr Argument mit der Ausgabe Ihres Programms nicht. Infos zu MZS : https://stackabuse.com/three-ways-to-create-multiline-strings-in-python/ Offensichtlich haben Sie die Ausgabe meines Versuchs, die Defekte des MZS <ziffern> sichtbar zu machen durch mein MiniProg z = ziffern num1 = len(z) num2 = len(set(z)) # set(z) = Menge der VERSCHIEDENEN Zeichen in z print(num1, num2, num1 - num2) # >> 4115 3983 132 mehrfach = sorted( set( [ x for x in z if (z.count(x) > 1 or x in "\t\n ") ] ) ) for i, ch in enumerate(mehrfach): print("[%d] >%s< %6d (%d-mal)" % (i+1, ch, ord(ch), z.count(ch))) bislang nicht zu sehen bekommen. Daher präsentiere ich diese Ausgabe hier: 4115 3983 132 ## Kommentar: ziffern enthält 4115 Zeichen, davon 3983 verschiedene, die Differenz zwischen beiden Zahlen ist 132. [1] > < 10 (56-mal) [2] > < 32 (1-mal) [3] >क< 2325 (2-mal) [4] >ख< 2326 (2-mal) [5] >ग< 2327 (2-mal) [6] >ज< 2332 (2-mal) [7] >ड< 2337 (2-mal) [8] >़< 2364 (9-mal) [9] >ড< 2465 (2-mal) [10] >ঢ< 2466 (2-mal) [11] >য< 2479 (2-mal) [12] >়< 2492 (3-mal) [13] >ଡ< 2849 (2-mal) [14] >ଢ< 2850 (2-mal) [15] >଼< 2876 (2-mal) [16] >ཀ< 3904 (2-mal) [17] >ག< 3906 (2-mal) [18] >ཌ< 3916 (2-mal) [19] >ད< 3921 (2-mal) [20] >བ< 3926 (2-mal) [21] >ཛ< 3931 (2-mal) [22] >ྷ< 4023 (5-mal) [23] >᧠< 6624 (2-mal) [24] >᧡< 6625 (2-mal) [25] >᧢< 6626 (2-mal) [26] >᧣< 6627 (2-mal) [27] >᧤< 6628 (2-mal) [28] >᧥< 6629 (2-mal) [29] >᧦< 6630 (2-mal) [30] >᧧< 6631 (2-mal) [31] >᧨< 6632 (2-mal) [32] >᧩< 6633 (2-mal) [33] >᧭< 6637 (2-mal) [34] >ᱪ< 7274 (2-mal) [35] >ᱫ< 7275 (2-mal) [36] >ᱬ< 7276 (2-mal) [37] >ᱭ< 7277 (2-mal) [38] >Ა< 7312 (2-mal) [39] >Ბ< 7313 (2-mal) [40] >Გ< 7314 (2-mal) [41] >Დ< 7315 (2-mal) [42] >Ე< 7316 (2-mal) [43] >Ვ< 7317 (2-mal) [44] >Ზ< 7318 (2-mal) [45] >Თ< 7319 (2-mal) [46] >Ი< 7320 (2-mal) [47] >Კ< 7321 (2-mal) [48] >Ლ< 7322 (2-mal) [49] >Მ< 7323 (2-mal) [50] >Ნ< 7324 (2-mal) [51] >Ო< 7325 (2-mal) [52] >Პ< 7326 (2-mal) [53] >Ჟ< 7327 (2-mal) [54] >Რ< 7328 (2-mal) [55] >Ს< 7329 (2-mal) [56] >Ტ< 7330 (2-mal) [57] >Უ< 7331 (2-mal) [58] >卑< 21329 (2-mal) [59] >卒< 21330 (2-mal) [60] >卓< 21331 (2-mal) [61] >協< 21332 (2-mal) [62] >单< 21333 (2-mal) [63] >卖< 21334 (2-mal) [64] >南< 21335 (2-mal) [65] >単< 21336 (2-mal) [66] >卙< 21337 (2-mal) [67] >博< 21338 (2-mal) [68] >卛< 21339 (2-mal) MIt diesem Ziffernstring, der knapp 70 Zeichen mehrfach enthält, kann man kein gültiges 4096-Zahlensystem "betreiben". Nachbessern bedeutet folglich: 1) die Mehrfachzeichen tilgen (dann sind noch 3982 Zeichen vorhanden) 2) die Zeichenliste so erweitern, dass Zahlen zur Basis 4096 (wie vorgeblich intendiert) korrekt kodiert und dekodiert werden können. Sie können natürlich auch alles so belassen, wie es ist. Dann haben Sie allerdings KEIN fehlerfrei arbeitendes 4096-Zahlensystem. Denn der Ziffernstring eines Zahlensystems darf jedes Ziffernzeichen nur GENAU EINMAL enthalten. Info zu Stellenwertsystemen : https://mathepedia.de/Positionssysteme.html W. Buechel
Hallo, Herr Buechel und alle Pythonier hier meine Stellungnahmne: https://automatetheboringstuff.com/chapter6/ "Multiline Strings with Triple Quotes While you can use the \n escape character to put a newline into a string, it is often easier to use multiline strings. A multiline string in Python begins and ends with either three single quotes or three double quotes. Any quotes, tabs, or newlines in between the “triple quotes” are considered part of the string. Python’s indentation rules for blocks do not apply to lines inside a multiline string." Das sollte doch eigentlich alles klären ! mfg Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 20. Juli 2024 um 16:15:01 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Hallo Herr Schnoor,
ein Mehrzeilenstring (MZS) ist ein String, der über mehrere Zeilen geht, eingeschlossen in Dreifach-Anführungszeichen (einfache ''' oder doppelte """). Auch wenn Sie den Ausdruck, den Begriff oder die Sache nicht kennen -- ziffern ist ein solcher MZS. Das manchmal Erwünschte, hier aber Unerwünschte ist folgendes: ALLE Zeilenumbrüche (durch die Tastatur eingefügt mittels ENTER) sind Teil des Strings, werden mit ausgedruckt, und mitgezählt bei der Längenberechnung durch len(). Daher zieht Ihr Argument mit der Ausgabe Ihres Programms nicht.
Infos zu MZS : https://stackabuse.com/three-ways-to-create-multiline-strings-in-python/
Offensichtlich haben Sie die Ausgabe meines Versuchs, die Defekte des MZS <ziffern> sichtbar zu machen durch mein MiniProg
z = ziffern num1 = len(z) num2 = len(set(z)) # set(z) = Menge der VERSCHIEDENEN Zeichen in z print(num1, num2, num1 - num2) # >> 4115 3983 132 mehrfach = sorted( set( [ x for x in z if (z.count(x) > 1 or x in "\t\n ") ] ) ) for i, ch in enumerate(mehrfach): print("[%d] >%s< %6d (%d-mal)" % (i+1, ch, ord(ch), z.count(ch)))
bislang nicht zu sehen bekommen. Daher präsentiere ich diese Ausgabe hier:
4115 3983 132 ## Kommentar: ziffern enthält 4115 Zeichen, davon 3983 verschiedene, die Differenz zwischen beiden Zahlen ist 132. [1] > < 10 (56-mal) [2] > < 32 (1-mal) [3] >क< 2325 (2-mal) [4] >ख< 2326 (2-mal) [5] >ग< 2327 (2-mal) [6] >ज< 2332 (2-mal) [7] >ड< 2337 (2-mal) [8] >़< 2364 (9-mal) [9] >ড< 2465 (2-mal) [10] >ঢ< 2466 (2-mal) [11] >য< 2479 (2-mal) [12] >়< 2492 (3-mal) [13] >ଡ< 2849 (2-mal) [14] >ଢ< 2850 (2-mal) [15] >଼< 2876 (2-mal) [16] >ཀ< 3904 (2-mal) [17] >ག< 3906 (2-mal) [18] >ཌ< 3916 (2-mal) [19] >ད< 3921 (2-mal) [20] >བ< 3926 (2-mal) [21] >ཛ< 3931 (2-mal) [22] >ྷ< 4023 (5-mal) [23] >᧠< 6624 (2-mal) [24] >᧡< 6625 (2-mal) [25] >᧢< 6626 (2-mal) [26] >᧣< 6627 (2-mal) [27] >᧤< 6628 (2-mal) [28] >᧥< 6629 (2-mal) [29] >᧦< 6630 (2-mal) [30] >᧧< 6631 (2-mal) [31] >᧨< 6632 (2-mal) [32] >᧩< 6633 (2-mal) [33] >᧭< 6637 (2-mal) [34] >ᱪ< 7274 (2-mal) [35] >ᱫ< 7275 (2-mal) [36] >ᱬ< 7276 (2-mal) [37] >ᱭ< 7277 (2-mal) [38] >Ა< 7312 (2-mal) [39] >Ბ< 7313 (2-mal) [40] >Გ< 7314 (2-mal) [41] >Დ< 7315 (2-mal) [42] >Ე< 7316 (2-mal) [43] >Ვ< 7317 (2-mal) [44] >Ზ< 7318 (2-mal) [45] >Თ< 7319 (2-mal) [46] >Ი< 7320 (2-mal) [47] >Კ< 7321 (2-mal) [48] >Ლ< 7322 (2-mal) [49] >Მ< 7323 (2-mal) [50] >Ნ< 7324 (2-mal) [51] >Ო< 7325 (2-mal) [52] >Პ< 7326 (2-mal) [53] >Ჟ< 7327 (2-mal) [54] >Რ< 7328 (2-mal) [55] >Ს< 7329 (2-mal) [56] >Ტ< 7330 (2-mal) [57] >Უ< 7331 (2-mal) [58] >卑< 21329 (2-mal) [59] >卒< 21330 (2-mal) [60] >卓< 21331 (2-mal) [61] >協< 21332 (2-mal) [62] >单< 21333 (2-mal) [63] >卖< 21334 (2-mal) [64] >南< 21335 (2-mal) [65] >単< 21336 (2-mal) [66] >卙< 21337 (2-mal) [67] >博< 21338 (2-mal) [68] >卛< 21339 (2-mal)
MIt diesem Ziffernstring, der knapp 70 Zeichen mehrfach enthält, kann man kein gültiges 4096-Zahlensystem "betreiben".
Nachbessern bedeutet folglich:
1) die Mehrfachzeichen tilgen (dann sind noch 3982 Zeichen vorhanden) 2) die Zeichenliste so erweitern, dass Zahlen zur Basis 4096 (wie vorgeblich intendiert) korrekt kodiert und dekodiert werden können.
Sie können natürlich auch alles so belassen, wie es ist. Dann haben Sie allerdings KEIN fehlerfrei arbeitendes 4096-Zahlensystem. Denn der Ziffernstring eines Zahlensystems darf jedes Ziffernzeichen nur GENAU EINMAL enthalten.
Info zu Stellenwertsystemen : https://mathepedia.de/Positionssysteme.html
W. Buechel _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
Hallo herr Schnoor, in der Tat: Der folgende Satz klärt -- für den Verständigen -- die Sache mit den problematischen 56 newline-Zeichen ('\n') in <ziffern> vollkommen: "Any quotes, tabs, or newlines in between the “triple quotes” are considered part of the string." Nichts anderes habe ich auch geschrieben. Zusätzlich zu den new lines haben Sie noch etliche andere Mehrfachzeichen (2-, 5-, 9-fache) in den Ziffernstring <ziffern> eingefügt -- absichtlich oder versehentlich? Könnten Sie erklären, welchen Zweck solche Mehrfachzeichen in einem Ziffernstring eines Zahlensystems haben? Klappt damit das Kodieren und Dekodieren solcher Superzahlen besser? Geht's schneller? Ist das gar ein selbst-fehlerkorrigierendes System? Das wäre ja fantastisch. Bislang kannte ich -- und vermutlich alle anderen Mathematiker ebenfalls -- nur den folgenden Satz über Zahlensysteme zu einer ganzzahligen Basis b > 1: "Die b-adische Darstellung einer Zahl verwendet genau b verschiedene Ziffern." Und so ist es ja auch bei den Systemen mit einem b aus der Menge {2,8,10,12,16}. Aber man lernt ja nie aus;-) W. Buechel
Sehr geehrter Herr Buechel, die Ziffern in meinem Programm habe ich alle mit folgenddm code aus dem Internet entnommen: "extract from List of Unicode Symbols (◕-◕) Complete Unicode Character Table on >One Page< Unicode-Block (nur Ziffern) wählen mit >cursor< und speichern mit >ENTER< Daten werden direkt ins Programm übernommen.” Die einzelnen Zeichen habe ich nicht geprüft. Ob Mehrfachzeichen dazwischen sind, kann ich nicht beurteilen. Das muss an der jeweiligen Sprache liegen. Jedenfalls in meinen Programmen arbeitet alles ohne Probleme und Schwierigkeiten. Sie können ja ein Programm zum Testen bei mir anfordern. mfg Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 20. Juli 2024 um 20:33:10 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Hallo herr Schnoor,
in der Tat: Der folgende Satz klärt -- für den Verständigen -- die Sache mit den problematischen 56 newline-Zeichen ('\n') in <ziffern> vollkommen:
"Any quotes, tabs, or newlines in between the “triple quotes” are considered part of the string."
Nichts anderes habe ich auch geschrieben. Zusätzlich zu den new lines haben Sie noch etliche andere Mehrfachzeichen (2-, 5-, 9-fache) in den Ziffernstring <ziffern> eingefügt -- absichtlich oder versehentlich?
Könnten Sie erklären, welchen Zweck solche Mehrfachzeichen in einem Ziffernstring eines Zahlensystems haben? Klappt damit das Kodieren und Dekodieren solcher Superzahlen besser? Geht's schneller? Ist das gar ein selbst-fehlerkorrigierendes System? Das wäre ja fantastisch.
Bislang kannte ich -- und vermutlich alle anderen Mathematiker ebenfalls -- nur den folgenden Satz über Zahlensysteme zu einer ganzzahligen Basis b > 1:
"Die b-adische Darstellung einer Zahl verwendet genau b verschiedene Ziffern."
Und so ist es ja auch bei den Systemen mit einem b aus der Menge {2,8,10,12,16}.
Aber man lernt ja nie aus;-)
W. Buechel _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
Hallo Herr Schnoor, woher Sie die Zeichen für <ziffern> haben, ist doch vollkommen irrelevant. Es geht lediglich um eine ganz einfache FRAGE: Ist dieser Ziffernstring geeignet zur Koderung und Dekodierung von Zahlen zur Basis 4096? ANTWORT: NEIN. Begründung: Er enthält (mindestens ein) Zeichen mehrfach. Um diese Frage zu beantworten, müssen Sie die einzelnen Zeichen nicht prüfen (auf was denn?). Ob Zeichen darin mehrfach vorkommen, läßt sich mit Python ganz leicht prüfen. Ein simples Beispiel (mit IDLE): s = "aaabcdef" len(s)
8 set(s) {'f', 'a', 'b', 'e', 'd', 'c'} len(set(s)) 6
Die Länge des Strings s ist 8, aber die Zahl der VERSCHIEDENEN Zeichen in s ist lediglich 6, nämlich gleich der 'Länge' der MENGE von Zeichen in s: set(s). Diese Prüfung habe ich auch für den String <ziffern> durchgeführt und festgestellt, daß darin ebenfalls knapp 70 Zeichen mehrfach vorkommen. In der Ausgabe meines Miniprogs sind diese Zeichen selbst samt ihrer Ordnungszahl UND mit ihrer Frequenz angegeben. Werfen Sie doch einfach mal einen interesselosen Blick darauf. Und verzichten Sie auf wilde Spekulationen (= Ausreden) wie "Das muss an der jeweiligen Sprache liegen." Eine letzte Frage für heute: Halten Sie es für einen ZUFALL, daß die bekannten Zahlensysteme (zu den Basen 2, 8, 10, 16) jeweils mit einer Ziffernliste arbeiten, in denen jede Ziffer GENAU EINMAL vorkommt? Und halten Sie es für pure Schikane oder Unfug, wenn in jedem Lehrbuch über Zahlensysteme und zugehörige Ziffernlisten geschrieben steht, ... na was schon ... "Die b-adische Darstellung einer Zahl verwendet genau b verschiedene Ziffern." W. Büchel
Hallo, sehr geehrte Pythonier, Herr Wolfgang Büchel, hier meine Strellungnahme: Der Ziffernstring wurde mit einem Spezialprogramm auf mehrfache Ziffern (Zeichen) getestet. Hier das Ergebnis (in Auszügen): Umfang: 4098 chr ord pos anz 1 49 0 1 2 50 1 1 3 51 2 1 4 52 3 1 5 53 4 1 6 54 5 1 7 55 6 1 8 56 7 1 9 57 8 1 a 97 9 1 b 98 10 1 c 99 11 1 d 100 12 1 e 101 13 1 f 102 14 1 g 103 15 1 h 104 16 1 i 105 17 1 j 106 18 1 k 107 19 1 l 108 20 1 m 109 21 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ꇲ 41458 4088 1 ꇳ 41459 4089 1 ꇴ 41460 4090 1 ꇵ 41461 4091 1 ꇶ 41462 4092 1 ꇷ 41463 4093 1 ꇸ 41464 4094 1 ꇹ 41465 4095 1 Kein Zeichen mehrfach. Für weitere Erläuterungen bin ich jederzeit bereit. mfg Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 21. Juli 2024 um 00:40:02 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Hallo Herr Schnoor,
woher Sie die Zeichen für <ziffern> haben, ist doch vollkommen irrelevant.
Es geht lediglich um eine ganz einfache
FRAGE: Ist dieser Ziffernstring geeignet zur Koderung und Dekodierung von Zahlen zur Basis 4096? ANTWORT: NEIN. Begründung: Er enthält (mindestens ein) Zeichen mehrfach.
Um diese Frage zu beantworten, müssen Sie die einzelnen Zeichen nicht prüfen (auf was denn?).
Ob Zeichen darin mehrfach vorkommen, läßt sich mit Python ganz leicht prüfen. Ein simples Beispiel (mit IDLE):
s = "aaabcdef" len(s)
8 set(s) {'f', 'a', 'b', 'e', 'd', 'c'} len(set(s)) 6
Die Länge des Strings s ist 8, aber die Zahl der VERSCHIEDENEN Zeichen in s ist lediglich 6, nämlich gleich der 'Länge' der MENGE von Zeichen in s: set(s).
Diese Prüfung habe ich auch für den String <ziffern> durchgeführt und festgestellt, daß darin ebenfalls knapp 70 Zeichen mehrfach vorkommen. In der Ausgabe meines Miniprogs sind diese Zeichen selbst samt ihrer Ordnungszahl UND mit ihrer Frequenz angegeben. Werfen Sie doch einfach mal einen interesselosen Blick darauf. Und verzichten Sie auf wilde Spekulationen (= Ausreden) wie "Das muss an der jeweiligen Sprache liegen."
Eine letzte Frage für heute: Halten Sie es für einen ZUFALL, daß die bekannten Zahlensysteme (zu den Basen 2, 8, 10, 16) jeweils mit einer Ziffernliste arbeiten, in denen jede Ziffer GENAU EINMAL vorkommt?
Und halten Sie es für pure Schikane oder Unfug, wenn in jedem Lehrbuch über Zahlensysteme und zugehörige Ziffernlisten geschrieben steht, ... na was schon ...
"Die b-adische Darstellung einer Zahl verwendet genau b verschiedene Ziffern."
W. Büchel _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
Hallo Herr Schnoor, ein unvollständiger kurzer Auszug (zwei und ein halbes Dutzend Daten) aus einer 4100+ langen Liste hat natürlich keinerlei Beweiskraft. Zudem fehlt der Python-Code des Programms, mit dem der Auszug erstellt wurde, und natürlich der Input. Von Ihrem Programm habe ich bislang lediglich den kürzlich hier publizierten <ziffern>String unter die Lupe genommen. Diesen String veröffentliche ich hier noch einmal, so dass jeder mit eigenen Augen SEHEN kann, dass <ziffern> sehr viele (exakt 56) Zeilenumbrüche (New Lines, '\n', Ordnungsnummer 10 in ASCII und Unicode/UTF8) enthält: ############## ziffern = """123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġ ĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹ źŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNj njǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞ ȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶ ɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯͰͱͲͳʹͶͷͻͼͽͿΆΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛ ΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϴϵ϶ϷϸϹϺϻϼϽϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҊҋҌҍҎҏҐґҒғҔҕҖ ։ऄअआइईउऊऋऌऍऎएऐऑऒओऔकखगघङचछजझञटठड卑卒卓協单卖南単卙博卛ऴवशषसहऺऻ़क़ख़ग़ज़ड़ढ़फ़य़ॠ२३४५६७८९ॲॳॴॵॶॷॸॹॺ ॻॼॽॾঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহৎড়ঢ়য়০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸ਅਆਇਈਉਊਏਐਓਔ ૰૱ଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହଡ଼ଢ଼ୟୠୡ୧୨୩୪୫୬୭୮୯୰ୱ୲୳୴அஆஇஈஉஊஎஏஐஒஓஔ கஙசஜஞடணதநனபமயரறலளழவஶஷஸௐ௦௧௨௩௪௫௬௭௮௯௰௱௲௳௴అఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠ డఢణతథదధనపఫబభమయరఱలళఴవశషసౘౙౚౠ౨౩౪౫౬౭౮౯ಀಁಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡ ಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹೞೠ೦೧೨೩೪೫೬೭೮೯ೱഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞ ടഠഡഢണതഥദധനഩപഫബഭമയരറലളഴവശഷസഹൟൠ൪൫൬൭൮൯൰൱൲൳൴൵൹ൺൻർൽൾඅආඇඈඉඊඋඑඒඓඔඕඖකඛගඝඞ ඟචඡජඣඤඥඦටඨඩඪණඬතථදධනඳපඵබභමඹයරලවශෂසහළෆ෴กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษส หฬอฮฯ฿เแ๏๐๑๒๓๔๕๖๗๘๙๚๛ກຂງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮເແ໐໑໒໓໔໕໖໗໘໙ໜໝༀ༁༂༃༄༅༆༇༈༉༊་༌།༎༏༐༑༒༓༔༕༖༗ ༘༙ཀཁགགྷངཅཆཇཉཊཋཌཌྷཎཏཐདདྷནཔཕབབྷམཙཚཛཛྷཝཞཟའཡརལཤཥསཧཨཀྵཪཫཬ྾྿࿀࿁࿂࿃࿄࿅࿆࿇࿈࿉࿊࿋࿌࿔࿕࿖࿗࿘ကခဂဃငစဆဇဈဉညဋဌဍဎဏတထဒဓနပဖဗ ဘမယရလဝသဟဠအဢ၂၃၄၅၇၈၉၊။၏ၐၑၒၓၔၥၦၧၨၩၪၫၬၭၮၯၵၶၷၸၹၺၻၼၽၾၿႀႎႏ႐႑႒႓႔႕႖႗႘႙ႠႡႢႣႤႥႦႧႨႩ ႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅაბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶჷჸჹᄀᄁᄂᄃᄄᄅᄆᄇ ᄈᄉᄊᄋᄌᄍᄎᄏᄐᄑᄒᄓᄔᄕᄖᄗᄘᄙᄚᄛᄜᄝᄞᄟᄠᄡᄢᄣᄤᄥᄦᄧᄨᄩᄪᄫᄬᄭᄮᄯᄰᄱᄲᄳᄴᄵᄶᄷᄸᄹᄺᄻᄼᄽ ᄾᄿᅀᅁᅂᅃᅄᅅᅆᅇᅈᅉᅊᅋᅌᅍᅎᅏᅐᅑᅒᅓᅔᅕᅖᅗᅘᅙᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵᅶᅷᅸᅹᅺ ᅻᅼᅽᅾᅿᆀᆁᆂᆃᆄᆅᆆᆇᆈᆉᆊᆋᆌᆍᆎᆏᆐᆑᆒᆓᆔᆕᆖᆗᆘᆙᆚᆛᆜᆝᆞᆟᆠᆡᆢᆩᆪᆫᆬᆭᆮᆯᆰᆱᆲᆳᆴᆵᆶᆷ ᆸᆹᆺᆻᆼᆽᆾᆿᇀᇁᇂᇃᇄᇅᇆᇇᇈᇉᇊᇋᇌᇍᇎᇏᇐᇑᇒᇓᇔᇕᇖᇗᇘᇙᇚᇛᇜᇝᇞᇟᇠᇡᇢᇣᇤᇥᇦᇧᇨᇩᇪᇫᇬᇭᇮ ᇯᇰᇱᇲᇳᇴᇵᇶᇷᇸᇹሀሁሂሃሄህሆሇለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮ ፩፪፫፬፭፮፯፰፱፲፳፴፵፶፷፸፹፺፻፼ᎀᎁᎂᎃᎄᎅᎆᎇᎈᎉᎊᎋᎌᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿᏀᏁᏂᏃᏄ ᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯᏰᏱᏲᏳᏴᏵᏸᏹᏺᏻᏼᏽᐁᐂᐃᐄᐅᐆᐇᐈᐉᐊᐋᐌᐍᐎᐏ ᐐᐑᐒᐓᐔᐕᐖᐗᐘᐙᐚᐛᐜᐝᐞᐟᐠᐡᐢᐣᐤᐥᐦᐧᐨᐩᐪᐫᐬᐭᐮᐯᐰᐱᐲᐳᐴᐵᐶᐷᐸᐹᐺᐻᐼᐽᐾᐿᑀᑁᑂᑃᑄᑅᑆᑇᑈᑉᑊᑋᑌᑍᑎᑏᑐᑑᑒᑓᑔᑕᑖᑗᑘ ᑙᑚᑛᑜᑝᑞᑟᑠᑡᑢᑣᑤᑥᑦᑧᑨᑩᑪᑫᑬᑭᑮᑯᑰᑱᑲᑳᑴᑵᑶᑷᑸᑹᑺᑻᑼᑽᑾᑿᒀᒁᒂᒃᒄᒅᒆᒇᒈᒉᒊᒋᒌᒍᒎᒏᒐᒑᒒᒓᒔᒕᒖᒗᒘᒙᒚᒛᒜᒝᒞᒟ ᒠᒡᒢᒣᒤᒥᒦᒧᒨᒩᒪᒫᒬᒭᒮᒯᒰᒱᒲᒳᒴᒵᒶᒷᒸᒹᒺᒻᒼᒽᒾᒿᓀᓁᓂᓃᓄᓅᓆᓇᓈᓉᓊᓋᓌᓍᓎᓏᓐᓑᓒᓓᓔᓕᓖᓗᓘᓙᓚᓛᓜᓝᓞᓟᓠᓡᓢᓣ ᓤᓥᓦᓧᓨᓩᓪᓫᓬᓭᓮᓯᓰᓱᓲᓳᓴᓵᓶᓷᓸᓹᓺᓻᓼᓽᓾᓿᔀᔁᔂᔃᔄᔅᔆᔇᔈᔉᔊᔋᔌᔍᔎᔏᔐᔑᔒᔓᔔᔕᔖᔗᔘᔙᔚᔛᔜᔝᔞᔟᔠᔡᔢᔣᔤᔥᔦᔧᔨ ᔩᔪᔫᔬᔭᔮᔯᔰᔱᔲᔳᔴᔵᔶᔷᔸᔹᔺᔻᔼᔽᔾᔿᕀᕁᕂᕃᕄᕅᕆᕇᕈᕉᕊᕋᕌᕍᕎᕏᕐᕑᕒᕓᕔᕕᕖᕗᕘᕙᕚᕛᕜᕝᕞᕟᕠᕡᕢᕣᕤᕥᕦᕧᕨᕩᕪᕫᕬᕭᕮᕯᕰᕱ ᕲᕳᕴᕵᕶᕷᕸᕹᕺᕻᕼᕽᕾᕿᖀᖁᖂᖃᖄᖅᖆᖇᖈᖉᖊᖋᖌᖍᖎᖏᖐᖑᖒᖓᖔᖕᖖᖗᖘᖙᖚᖛᖜᖝᖞᖟᖠᖡᖢᖣᖤᖥᖦᖧᖨᖩᖪᖫᖬᖭᖮᖯᖰᖱᖲᖳᖴᖵᖶᖷᖸ ᖹᖺᖻᖼᖽᖾᖿᗀᗁᗂᗃᗄᗅᗆᗇᗈᗉᗊᗋᗌᗍᗎᗏᗐᗑᗒᗓᗔᗕᗖᗗᗘᗙᗚᗛᗜᗝᗞᗟᗠᗡᗢᗣᗤᗥᗦᗧᗨᗩᗪᗫᗬᗭᗮᗯᗰᗱᗲᗳᗴᗵᗶᗷᗸᗹᗺᗻᗼᗽᗾᗿᘀ ᙭᙮ᙯᙰᙱᙲᙳᙴᙵᙶᚌᚍᚎᚏᚕᚖᚗᚘᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕ ᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪᜀᜁᜂᜃᜄᜅᜆᜇᜈᜉᜊᜋᜌᜎᜏᜐᜠᜡᜢᜣᜤᜥᜦᜧᜨᜩᜪᜫᜬᜭᜮᜯᜰᜱᜲᜳ᜴᜵᜶ᝀᝁᝂᝃᝄᝅᝆᝇ ᝈᝉᝊᝋᝌᝍᝎᝏᝠᝡᝢᝣᝤᝥᝦᝧᝨᝩᝪᝫᝬᝮᝯកខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវឝឞសហឡអឣឤឥឦឧឨឩឪឫឬឭឮឯឰឱឲ ។៕៖ៗ៘៙៚ᢇᢈᢉᢊᢋᢌᢍᢎᢏᢐᢑᢒᢓᢔᢕᢖᢗᢘᢙᢚᢛᢜᢝᢞᢟᢠᢡᢢᢣᢤᢥᢦᢧᢨᢩᢪᤀᤁᤂᤃᤄᤅᤆᤇᤈᤉᤊᤋᤌᤍᤎᤏᤐᤑᤒᤓᤔᤕᤖᤗᤘᤙᤚᤛᤜᤝ᥄᥅᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ᥐᥑᥒ ᥓᥔᥕᥖᥗᥘᥙᥚᥛᥜᥝᥞᥟᥠᥡᥢᥣᥤᥥᥦᥧᥨᥩᥪᥫᥬᥭᥰᥱᥲᥳᥴᦀᦁᦂᦃᦄᦅᦆᦇᦈᦉᦊᦋᦌᦍᦎᦏᦐᦑᦒᦓᦔᦕᦖᦗᦘᦙᦚᦛᦜᦝᦞᦟᦠᦡᦢᦣᦤᦥᦦᦧᦨᦩᦪᦫᦰᦱᦲᦳᦴ ᦵᦶᦷᦸᦹᦺᦻᦼᦽᦾᦿᧀᧁᧂᧃᧄᧅᧆᧇᧈᧉ᧒᧓᧔᧕᧖᧗᧘᧙᧚᧞᧟᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧪᧫᧬᧭᧮ᨀᨁᨂᨃᨄᨅᨆᨇᨈᨉᨊᨋᨌᨍᨎᨏᨐᨑᨒᨓ ᨔᨕᨖ᨟ᨠᨡᨢᨣᨤᨥᨦᨧᨨᨩᨪᨫᨬᨭᨮᨯᨰᨱᨲᨳᨴᨵᨶᨷᨸᨹᨺᨻᨼᨽᨾᨿᩀᩁᩂᩃᩄᩅᩆᩇᩈᩉᩊᩋᩌᩍᩎᩏᩐᩑᩒᩓ᪀᪁᪂᪃᪄᪅᪆᪇᪈᪉᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙᪦ ᪧ᪨᪩᪪᪫᪬᪭ᬅᬆᬇᬈᬉᬊᬋᬌᬍᬎᬏᬐᬑᬒᬓᬔᬕᬖᬗᬘᬙᬚᬛᬜᬝᬞᬟᬠᬡᬢᬣᬤᬥᬦᬧᬨᬩᬪᬫᬬᬭᬮᬯᬰᬱᬲᭅᭆ ᭇᭈᭉᭊᭋ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙᭚᭜᭝᭞᭟᭠᭡᭢᭣᭤᭥᭦᭧᭨᭴᭵᭶᭷᭸᭹ᮃᮄᮅᮆᮇᮈᮉᮊᮋᮌᮍᮎᮏᮐᮑᮒᮓᮔᮕᮖᮗᮘᮙᮚᮛᮜᮝᮞᮟᮮᮯ᮰᮱᮲᮳ ᮴᮵᮶᮷᮸᮹ᮺᮻᮼᮽᮾᯀᯁᯂᯃᯄᯅᯆᯇᯈᯉᯊᯋᯌᯍᯎᯏᯐᯑᯒᯓᯔᯕᯖᯗᯘᯙᯚᯛᯜᯝᯞᯟᯠᯡᯢᯣᯤ᯼᯽᯾᯿ᰀᰁᰂᰃᰄᰅᰆ ᰇᰈᰉᰊᰋᰌᰍᰎᰏᰐᰑᰒᰓᰔᰕᰖᰗᰘᰙᰚᰛᰜᰝᰞᰟᰠᰡᰢ᰻᰼᰽᰾᰿᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ᱍᱎᱏ᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ᱚᱛᱜᱝᱞᱟᱠᱡᱢᱣᱤᱥᱦᱧᱨᱩᱪᱫᱬᱭᱮᱯᱰᱱᱲᱳᱴᱵ ᱶᱷ᱾᱿ᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᲤᲥᲦᲧᲨᲩᲪᲫᲬᲭᲮᲯᲰᲱᲲᲳᲴᲵᲶᲷᲸᲹᲺ〹〺〻〼〽〾〿ぁあぃいぅうぇえぉおかがきぎくぐけ げこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょ よらりるれろゎわゐゑをんゔゕゖ㈤㈥㈦㈧㈨㈩㈪㈫㈬㈭㈮㈯㈰㈱㈲㈳㈴㈵㈶㈷㈸㈹㈺㈻㈼㈽㈾㈿㉀㉁㉂㉃㉄㉅㉆㉇㉈㉉㉊ ㊉㊊㊋㊌㊍㊎㊏㊐㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾ ㊿㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬㋭㋮㋯㋰㋱㋲㋳㋴㋵㋶㋷㋸ ㋹㋺ꦄꦅꦆꦇꦉꦌꦍꦏꦐꦑꦒꦓꦔꦕꦖꦗꦘꦚꦛꦜꦝꦞꦟꦠꦡꦢꦣꦤꦥꦦꦧꦨꦩꦪꦫꦬꦭꦮꦯꦰꦱ꧆꧇꧈꧉𐀀𐀁𐀂𐀃𐀄𐀅𐀆𐀇𐀈 𐀉𐀊𐀋𐀍𐀎𐀏𐀐𐀑𐀒𐀓𐀔𐀕𐀖𐀗𐀘𐀙𐀚𐀛𐀜𐀝𐀞𐀟𐀠𐀡𐀢𐀣𐀤𐀥𐀦𐀨𐀩𐀪𐀫𐀬𐀭𐀮𐀯𐀰𐀱𐀲𐀳𐀴𐀵𐀶𐀷𐀸𐀹𐀺𐀼𐀽𐀿𐁀𐁁𐁂𐁃𐁄𐁅𐁆𐁇𐁈𐁉𐁊匸匹区医匼匽匾匿區十卂 千卄卅卆升午卉半卋卌华协卑卒卓協单卖南単卙博卛卜卝卞卟占卡卢卣卤卥卦卧卨卩ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓ ㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧭᧯ᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᱪᱫᱬᱭ ㄪㄫꆰꆱꆲꆳꆴꆵꆶꆷꆸꆹꆺꆻꆼꆽꆾꆿꇀꇁꇂꇃꇄꇅꇆꇇꇈꇉꇊꇋꇌꇍꇎꇏꇐꇑꇒꇓꇔꇕꇖꇗꇘꇙꇚꇛꇜꇝꇞꇟꇠꇡꇢꇣꇤꇥꇦꇧꇨꇩꇪꇫꇬꇭꇮꇯꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹ""" ############## Haben Sie Ihren "häuslichen" <ziffern>String (der sich möglicherweise von dem hier publizierten unterscheidet? -- Dann aber bitte umgehend Richtigstellung) mal mit meinem MiniProg getestet. Da erwarte ich eigentlich seit Tagen eine "Stellungnahme" von Ihnen. Ich habe mein Miniprog (MEIN Testprogramm) etwas erweitert, es spuckt jetzt auch die Indizes (die Positionen) der gefundenen Mehrfachzeichen aus: z = ziffern num1 = len(z) num2 = len(set(z)) # set(z) = Menge der Zeichen in z print("Zeichen in z total : %d" % (num1)) print("Zeichen in z verschiedene : %d" % (num2)) mehrfach = sorted( set( [ x for x in z if (z.count(x) > 1 or x in "\t\n ") ] ) ) for i, ch in enumerate(mehrfach): indexCh = [ x for x, ch2 in enumerate(z) if ch2 == ch ] # sammelt die Indizes der Mehrfachzeichen in z print("[%2d]\t>%s<\t%6d (%d-mal) ; Positionen : %s" % (i+1, ch, ord(ch), z.count(ch), indexCh)) Das Prog produziert -- für jeden nachprüfbar -- aus dem Input <ziffern> (s.o.) folgenden Output: ######################### Zeichen in z total : 4115 Zeichen in z verschiedene : 3983 [ 1] > < 10 (56-mal) Indizes : [77, 159, 248, 331, 415, 503, 591, 679, 755, 834, 920, 1009, 1091, 1158, 1225, 1285, 1351, 1432, 1518, 1615, 1687, 1766, 1821, 1876, 1932, 1988, 2047, 2118, 2192, 2266, 2338, 2407, 2477, 2551, 2623, 2696, 2769, 2838, 2913, 3002, 3084, 3152, 3230, 3286, 3357, 3417, 3502, 3574, 3629, 3684, 3739, 3794, 3851, 3925, 3978, 4038] [ 2] > < 32 (1-mal) Indizes : [4037] [ 3] >क< 2325 (2-mal) Indizes : [853, 886] [ 4] >ख< 2326 (2-mal) Indizes : [854, 888] [ 5] >ग< 2327 (2-mal) Indizes : [855, 890] [ 6] >ज< 2332 (2-mal) Indizes : [860, 892] [ 7] >ड< 2337 (2-mal) Indizes : [865, 894] [ 8] >़< 2364 (9-mal) Indizes : [885, 887, 889, 891, 893, 895, 897, 899, 901] [ 9] >ড< 2465 (2-mal) Indizes : [953, 974] [10] >ঢ< 2466 (2-mal) Indizes : [954, 976] [11] >য< 2479 (2-mal) Indizes : [966, 978] [12] >়< 2492 (3-mal) Indizes : [975, 977, 979] [13] >ଡ< 2849 (2-mal) Indizes : [1036, 1058] [14] >ଢ< 2850 (2-mal) Indizes : [1037, 1060] [15] >଼< 2876 (2-mal) Indizes : [1059, 1061] [16] >ཀ< 3904 (2-mal) Indizes : [1521, 1566] [17] >ག< 3906 (2-mal) Indizes : [1523, 1524] [18] >ཌ< 3916 (2-mal) Indizes : [1533, 1534] [19] >ད< 3921 (2-mal) Indizes : [1539, 1540] [20] >བ< 3926 (2-mal) Indizes : [1545, 1546] [21] >ཛ< 3931 (2-mal) Indizes : [1551, 1552] [22] >ྷ< 4023 (5-mal) Indizes : [1525, 1535, 1541, 1547, 1553] [23] >᧠< 6624 (2-mal) Indizes : [3117, 4001] [24] >᧡< 6625 (2-mal) Indizes : [3118, 4002] [25] >᧢< 6626 (2-mal) Indizes : [3119, 4003] [26] >᧣< 6627 (2-mal) Indizes : [3120, 4004] [27] >᧤< 6628 (2-mal) Indizes : [3121, 4005] [28] >᧥< 6629 (2-mal) Indizes : [3122, 4006] [29] >᧦< 6630 (2-mal) Indizes : [3123, 4007] [30] >᧧< 6631 (2-mal) Indizes : [3124, 4008] [31] >᧨< 6632 (2-mal) Indizes : [3125, 4009] [32] >᧩< 6633 (2-mal) Indizes : [3126, 4010] [33] >᧭< 6637 (2-mal) Indizes : [3130, 4011] [34] >ᱪ< 7274 (2-mal) Indizes : [3490, 4033] [35] >ᱫ< 7275 (2-mal) Indizes : [3491, 4034] [36] >ᱬ< 7276 (2-mal) Indizes : [3492, 4035] [37] >ᱭ< 7277 (2-mal) Indizes : [3493, 4036] [38] >Ა< 7312 (2-mal) Indizes : [3507, 4013] [39] >Ბ< 7313 (2-mal) Indizes : [3508, 4014] [40] >Გ< 7314 (2-mal) Indizes : [3509, 4015] [41] >Დ< 7315 (2-mal) Indizes : [3510, 4016] [42] >Ე< 7316 (2-mal) Indizes : [3511, 4017] [43] >Ვ< 7317 (2-mal) Indizes : [3512, 4018] [44] >Ზ< 7318 (2-mal) Indizes : [3513, 4019] [45] >Თ< 7319 (2-mal) Indizes : [3514, 4020] [46] >Ი< 7320 (2-mal) Indizes : [3515, 4021] [47] >Კ< 7321 (2-mal) Indizes : [3516, 4022] [48] >Ლ< 7322 (2-mal) Indizes : [3517, 4023] [49] >Მ< 7323 (2-mal) Indizes : [3518, 4024] [50] >Ნ< 7324 (2-mal) Indizes : [3519, 4025] [51] >Ო< 7325 (2-mal) Indizes : [3520, 4026] [52] >Პ< 7326 (2-mal) Indizes : [3521, 4027] [53] >Ჟ< 7327 (2-mal) Indizes : [3522, 4028] [54] >Რ< 7328 (2-mal) Indizes : [3523, 4029] [55] >Ს< 7329 (2-mal) Indizes : [3524, 4030] [56] >Ტ< 7330 (2-mal) Indizes : [3525, 4031] [57] >Უ< 7331 (2-mal) Indizes : [3526, 4032] [58] >卑< 21329 (2-mal) Indizes : [866, 3938] [59] >卒< 21330 (2-mal) Indizes : [867, 3939] [60] >卓< 21331 (2-mal) Indizes : [868, 3940] [61] >協< 21332 (2-mal) Indizes : [869, 3941] [62] >单< 21333 (2-mal) Indizes : [870, 3942] [63] >卖< 21334 (2-mal) Indizes : [871, 3943] [64] >南< 21335 (2-mal) Indizes : [872, 3944] [65] >単< 21336 (2-mal) Indizes : [873, 3945] [66] >卙< 21337 (2-mal) Indizes : [874, 3946] [67] >博< 21338 (2-mal) Indizes : [875, 3947] [68] >卛< 21339 (2-mal) Indizes : [876, 3948] #################################### Was man sehr schön SEHEN kann (wenn man es denn sehen möchte) ist der Zeilenumbruch durch das New Line Zeichen mit der Ordnungsnummer 10 am Anfang des Outputs mit der Nummer [1]. Zum Abschluss für heute (?) ein kurzer Impuls zum längeren oder kürzeren Nachdenken, bevor Sie wieder eine Stellungnahme verfassen: Ich hatte Ihnen die Prüfung des Strings s auf (1) die Anzahl der Zeichen und (2) die Anzahl der VERSCHIEDENEN Zeichen gezeigt mit Hilfe von set(s): s = "aaabcdef" len(s)
8 set(s) {'f', 'a', 'b', 'e', 'd', 'c'} len(set(s)) 6
Wenn Sie persönlich den gleichen Test mit Ihrem persönlichen "häuslichen" <ziffern>String durchführen würden -- was würden Sie dann feststellen? W. Buechel PS: Sie "beklagen" sich in Ihrer Antwort auf Herrn Gellerts Posting. "Niemand hat bisher ein Programm angefordert und getestet." Ich möchte Sie in aller Bescheidenheit darauf hinweisen -- falls es Ihnen entgangen sein sollte --, dass ich zwar nicht Ihr Programm angefordert oder gar in toto, untersucht habe, wohl aber eine wichtige, hier publizierte Komponente davon gründlich getestet habe. Ihre Reaktion auf meine "Funde" ist ... na, sagen wir mal, ... recht eigenartig: Bestreitung meiner Funde (es gibt keine Mehrfachzeichen) und Nichtbeachtung meiner Begründungen. Wenn Sie Ihr Programm hier promoten wollen, würde sich -- meines Erachtens -- eine andere Umgehensweise mit Einwänden und Kritik empfehlen.
Hallo, Herr Buechel, vielen Dank für Ihre Ausführungen. Ich will und muss hier nichts promoten Ihren Anforderungen nachzukommen, fehlt mir leider die erforderliche Zeit (Altersqueersumme: 11) Servus Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 21. Juli 2024 um 16:43:16 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Hallo Herr Schnoor,
ein unvollständiger kurzer Auszug (zwei und ein halbes Dutzend Daten) aus einer 4100+ langen Liste hat natürlich keinerlei Beweiskraft. Zudem fehlt der Python-Code des Programms, mit dem der Auszug erstellt wurde, und natürlich der Input.
Von Ihrem Programm habe ich bislang lediglich den kürzlich hier publizierten <ziffern>String unter die Lupe genommen. Diesen String veröffentliche ich hier noch einmal, so dass jeder mit eigenen Augen SEHEN kann, dass <ziffern> sehr viele (exakt 56) Zeilenumbrüche (New Lines, '\n', Ordnungsnummer 10 in ASCII und Unicode/UTF8) enthält:
############## ziffern = """123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġ ĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹ źŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNj njǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞ ȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶ ɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯͰͱͲͳʹͶͷͻͼͽͿΆΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛ ΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳ ϴϵ϶ϷϸϹϺϻϼϽϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп рстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҊҋҌҍҎҏҐґҒғҔҕҖ ։ऄअआइईउऊऋऌऍऎएऐऑऒओऔकखगघङचछजझञटठड卑卒卓協单卖南単卙博卛ऴवशषसहऺऻ़क़ख़ग़ज़ड़ढ़फ़य़ॠ२३४५६७८९ॲॳॴॵॶॷॸॹॺ ॻॼॽॾঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহৎড়ঢ়য়০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸ਅਆਇਈਉਊਏਐਓਔ ૰૱ଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହଡ଼ଢ଼ୟୠୡ୧୨୩୪୫୬୭୮୯୰ୱ୲୳୴அஆஇஈஉஊஎஏஐஒஓஔ கஙசஜஞடணதநனபமயரறலளழவஶஷஸௐ௦௧௨௩௪௫௬௭௮௯௰௱௲௳௴అఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠ డఢణతథదధనపఫబభమయరఱలళఴవశషసౘౙౚౠ౨౩౪౫౬౭౮౯ಀಁಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡ ಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹೞೠ೦೧೨೩೪೫೬೭೮೯ೱഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞ ടഠഡഢണതഥദധനഩപഫബഭമയരറലളഴവശഷസഹൟൠ൪൫൬൭൮൯൰൱൲൳൴൵൹ൺൻർൽൾඅආඇඈඉඊඋඑඒඓඔඕඖකඛගඝඞ ඟචඡජඣඤඥඦටඨඩඪණඬතථදධනඳපඵබභමඹයරලවශෂසහළෆ෴กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษส หฬอฮฯ฿เแ๏๐๑๒๓๔๕๖๗๘๙๚๛ກຂງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮເແ໐໑໒໓໔໕໖໗໘໙ໜໝༀ༁༂༃༄༅༆༇༈༉༊་༌།༎༏༐༑༒༓༔༕༖༗ ༘༙ཀཁགགྷངཅཆཇཉཊཋཌཌྷཎཏཐདདྷནཔཕབབྷམཙཚཛཛྷཝཞཟའཡརལཤཥསཧཨཀྵཪཫཬ྾྿࿀࿁࿂࿃࿄࿅࿆࿇࿈࿉࿊࿋࿌࿔࿕࿖࿗࿘ကခဂဃငစဆဇဈဉညဋဌဍဎဏတထဒဓနပဖဗ ဘမယရလဝသဟဠအဢ၂၃၄၅၇၈၉၊။၏ၐၑၒၓၔၥၦၧၨၩၪၫၬၭၮၯၵၶၷၸၹၺၻၼၽၾၿႀႎႏ႐႑႒႓႔႕႖႗႘႙ႠႡႢႣႤႥႦႧႨႩ ႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅაბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶჷჸჹᄀᄁᄂᄃᄄᄅᄆᄇ ᄈᄉᄊᄋᄌᄍᄎᄏᄐᄑᄒᄓᄔᄕᄖᄗᄘᄙᄚᄛᄜᄝᄞᄟᄠᄡᄢᄣᄤᄥᄦᄧᄨᄩᄪᄫᄬᄭᄮᄯᄰᄱᄲᄳᄴᄵᄶᄷᄸᄹᄺᄻᄼᄽ ᄾᄿᅀᅁᅂᅃᅄᅅᅆᅇᅈᅉᅊᅋᅌᅍᅎᅏᅐᅑᅒᅓᅔᅕᅖᅗᅘᅙᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵᅶᅷᅸᅹᅺ ᅻᅼᅽᅾᅿᆀᆁᆂᆃᆄᆅᆆᆇᆈᆉᆊᆋᆌᆍᆎᆏᆐᆑᆒᆓᆔᆕᆖᆗᆘᆙᆚᆛᆜᆝᆞᆟᆠᆡᆢᆩᆪᆫᆬᆭᆮᆯᆰᆱᆲᆳᆴᆵᆶᆷ ᆸᆹᆺᆻᆼᆽᆾᆿᇀᇁᇂᇃᇄᇅᇆᇇᇈᇉᇊᇋᇌᇍᇎᇏᇐᇑᇒᇓᇔᇕᇖᇗᇘᇙᇚᇛᇜᇝᇞᇟᇠᇡᇢᇣᇤᇥᇦᇧᇨᇩᇪᇫᇬᇭᇮ ᇯᇰᇱᇲᇳᇴᇵᇶᇷᇸᇹሀሁሂሃሄህሆሇለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮ ፩፪፫፬፭፮፯፰፱፲፳፴፵፶፷፸፹፺፻፼ᎀᎁᎂᎃᎄᎅᎆᎇᎈᎉᎊᎋᎌᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿᏀᏁᏂᏃᏄ ᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯᏰᏱᏲᏳᏴᏵᏸᏹᏺᏻᏼᏽᐁᐂᐃᐄᐅᐆᐇᐈᐉᐊᐋᐌᐍᐎᐏ ᐐᐑᐒᐓᐔᐕᐖᐗᐘᐙᐚᐛᐜᐝᐞᐟᐠᐡᐢᐣᐤᐥᐦᐧᐨᐩᐪᐫᐬᐭᐮᐯᐰᐱᐲᐳᐴᐵᐶᐷᐸᐹᐺᐻᐼᐽᐾᐿᑀᑁᑂᑃᑄᑅᑆᑇᑈᑉᑊᑋᑌᑍᑎᑏᑐᑑᑒᑓᑔᑕᑖᑗᑘ ᑙᑚᑛᑜᑝᑞᑟᑠᑡᑢᑣᑤᑥᑦᑧᑨᑩᑪᑫᑬᑭᑮᑯᑰᑱᑲᑳᑴᑵᑶᑷᑸᑹᑺᑻᑼᑽᑾᑿᒀᒁᒂᒃᒄᒅᒆᒇᒈᒉᒊᒋᒌᒍᒎᒏᒐᒑᒒᒓᒔᒕᒖᒗᒘᒙᒚᒛᒜᒝᒞᒟ ᒠᒡᒢᒣᒤᒥᒦᒧᒨᒩᒪᒫᒬᒭᒮᒯᒰᒱᒲᒳᒴᒵᒶᒷᒸᒹᒺᒻᒼᒽᒾᒿᓀᓁᓂᓃᓄᓅᓆᓇᓈᓉᓊᓋᓌᓍᓎᓏᓐᓑᓒᓓᓔᓕᓖᓗᓘᓙᓚᓛᓜᓝᓞᓟᓠᓡᓢᓣ ᓤᓥᓦᓧᓨᓩᓪᓫᓬᓭᓮᓯᓰᓱᓲᓳᓴᓵᓶᓷᓸᓹᓺᓻᓼᓽᓾᓿᔀᔁᔂᔃᔄᔅᔆᔇᔈᔉᔊᔋᔌᔍᔎᔏᔐᔑᔒᔓᔔᔕᔖᔗᔘᔙᔚᔛᔜᔝᔞᔟᔠᔡᔢᔣᔤᔥᔦᔧᔨ ᔩᔪᔫᔬᔭᔮᔯᔰᔱᔲᔳᔴᔵᔶᔷᔸᔹᔺᔻᔼᔽᔾᔿᕀᕁᕂᕃᕄᕅᕆᕇᕈᕉᕊᕋᕌᕍᕎᕏᕐᕑᕒᕓᕔᕕᕖᕗᕘᕙᕚᕛᕜᕝᕞᕟᕠᕡᕢᕣᕤᕥᕦᕧᕨᕩᕪᕫᕬᕭᕮᕯᕰᕱ ᕲᕳᕴᕵᕶᕷᕸᕹᕺᕻᕼᕽᕾᕿᖀᖁᖂᖃᖄᖅᖆᖇᖈᖉᖊᖋᖌᖍᖎᖏᖐᖑᖒᖓᖔᖕᖖᖗᖘᖙᖚᖛᖜᖝᖞᖟᖠᖡᖢᖣᖤᖥᖦᖧᖨᖩᖪᖫᖬᖭᖮᖯᖰᖱᖲᖳᖴᖵᖶᖷᖸ ᖹᖺᖻᖼᖽᖾᖿᗀᗁᗂᗃᗄᗅᗆᗇᗈᗉᗊᗋᗌᗍᗎᗏᗐᗑᗒᗓᗔᗕᗖᗗᗘᗙᗚᗛᗜᗝᗞᗟᗠᗡᗢᗣᗤᗥᗦᗧᗨᗩᗪᗫᗬᗭᗮᗯᗰᗱᗲᗳᗴᗵᗶᗷᗸᗹᗺᗻᗼᗽᗾᗿᘀ ᙭᙮ᙯᙰᙱᙲᙳᙴᙵᙶᚌᚍᚎᚏᚕᚖᚗᚘᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕ ᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪᜀᜁᜂᜃᜄᜅᜆᜇᜈᜉᜊᜋᜌᜎᜏᜐᜠᜡᜢᜣᜤᜥᜦᜧᜨᜩᜪᜫᜬᜭᜮᜯᜰᜱᜲᜳ᜴᜵᜶ᝀᝁᝂᝃᝄᝅᝆᝇ ᝈᝉᝊᝋᝌᝍᝎᝏᝠᝡᝢᝣᝤᝥᝦᝧᝨᝩᝪᝫᝬᝮᝯកខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវឝឞសហឡអឣឤឥឦឧឨឩឪឫឬឭឮឯឰឱឲ ។៕៖ៗ៘៙៚ᢇᢈᢉᢊᢋᢌᢍᢎᢏᢐᢑᢒᢓᢔᢕᢖᢗᢘᢙᢚᢛᢜᢝᢞᢟᢠᢡᢢᢣᢤᢥᢦᢧᢨᢩᢪᤀᤁᤂᤃᤄᤅᤆᤇᤈᤉᤊᤋᤌᤍᤎᤏᤐᤑᤒᤓᤔᤕᤖᤗᤘᤙᤚᤛᤜᤝ᥄᥅᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ᥐᥑᥒ ᥓᥔᥕᥖᥗᥘᥙᥚᥛᥜᥝᥞᥟᥠᥡᥢᥣᥤᥥᥦᥧᥨᥩᥪᥫᥬᥭᥰᥱᥲᥳᥴᦀᦁᦂᦃᦄᦅᦆᦇᦈᦉᦊᦋᦌᦍᦎᦏᦐᦑᦒᦓᦔᦕᦖᦗᦘᦙᦚᦛᦜᦝᦞᦟᦠᦡᦢᦣᦤᦥᦦᦧᦨᦩᦪᦫᦰᦱᦲᦳᦴ ᦵᦶᦷᦸᦹᦺᦻᦼᦽᦾᦿᧀᧁᧂᧃᧄᧅᧆᧇᧈᧉ᧒᧓᧔᧕᧖᧗᧘᧙᧚᧞᧟᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧪᧫᧬᧭᧮ᨀᨁᨂᨃᨄᨅᨆᨇᨈᨉᨊᨋᨌᨍᨎᨏᨐᨑᨒᨓ ᨔᨕᨖ᨟ᨠᨡᨢᨣᨤᨥᨦᨧᨨᨩᨪᨫᨬᨭᨮᨯᨰᨱᨲᨳᨴᨵᨶᨷᨸᨹᨺᨻᨼᨽᨾᨿᩀᩁᩂᩃᩄᩅᩆᩇᩈᩉᩊᩋᩌᩍᩎᩏᩐᩑᩒᩓ᪀᪁᪂᪃᪄᪅᪆᪇᪈᪉᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙᪦ ᪧ᪨᪩᪪᪫᪬᪭ᬅᬆᬇᬈᬉᬊᬋᬌᬍᬎᬏᬐᬑᬒᬓᬔᬕᬖᬗᬘᬙᬚᬛᬜᬝᬞᬟᬠᬡᬢᬣᬤᬥᬦᬧᬨᬩᬪᬫᬬᬭᬮᬯᬰᬱᬲᭅᭆ ᭇᭈᭉᭊᭋ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙᭚᭜᭝᭞᭟᭠᭡᭢᭣᭤᭥᭦᭧᭨᭴᭵᭶᭷᭸᭹ᮃᮄᮅᮆᮇᮈᮉᮊᮋᮌᮍᮎᮏᮐᮑᮒᮓᮔᮕᮖᮗᮘᮙᮚᮛᮜᮝᮞᮟᮮᮯ᮰᮱᮲᮳ ᮴᮵᮶᮷᮸᮹ᮺᮻᮼᮽᮾᯀᯁᯂᯃᯄᯅᯆᯇᯈᯉᯊᯋᯌᯍᯎᯏᯐᯑᯒᯓᯔᯕᯖᯗᯘᯙᯚᯛᯜᯝᯞᯟᯠᯡᯢᯣᯤ᯼᯽᯾᯿ᰀᰁᰂᰃᰄᰅᰆ ᰇᰈᰉᰊᰋᰌᰍᰎᰏᰐᰑᰒᰓᰔᰕᰖᰗᰘᰙᰚᰛᰜᰝᰞᰟᰠᰡᰢ᰻᰼᰽᰾᰿᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ᱍᱎᱏ᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ᱚᱛᱜᱝᱞᱟᱠᱡᱢᱣᱤᱥᱦᱧᱨᱩᱪᱫᱬᱭᱮᱯᱰᱱᱲᱳᱴᱵ ᱶᱷ᱾᱿ᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᲤᲥᲦᲧᲨᲩᲪᲫᲬᲭᲮᲯᲰᲱᲲᲳᲴᲵᲶᲷᲸᲹᲺ〹〺〻〼〽〾〿ぁあぃいぅうぇえぉおかがきぎくぐけ げこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょ よらりるれろゎわゐゑをんゔゕゖ㈤㈥㈦㈧㈨㈩㈪㈫㈬㈭㈮㈯㈰㈱㈲㈳㈴㈵㈶㈷㈸㈹㈺㈻㈼㈽㈾㈿㉀㉁㉂㉃㉄㉅㉆㉇㉈㉉㉊ ㊉㊊㊋㊌㊍㊎㊏㊐㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾ ㊿㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬㋭㋮㋯㋰㋱㋲㋳㋴㋵㋶㋷㋸ ㋹㋺ꦄꦅꦆꦇꦉꦌꦍꦏꦐꦑꦒꦓꦔꦕꦖꦗꦘꦚꦛꦜꦝꦞꦟꦠꦡꦢꦣꦤꦥꦦꦧꦨꦩꦪꦫꦬꦭꦮꦯꦰꦱ꧆꧇꧈꧉𐀀𐀁𐀂𐀃𐀄𐀅𐀆𐀇𐀈 𐀉𐀊𐀋𐀍𐀎𐀏𐀐𐀑𐀒𐀓𐀔𐀕𐀖𐀗𐀘𐀙𐀚𐀛𐀜𐀝𐀞𐀟𐀠𐀡𐀢𐀣𐀤𐀥𐀦𐀨𐀩𐀪𐀫𐀬𐀭𐀮𐀯𐀰𐀱𐀲𐀳𐀴𐀵𐀶𐀷𐀸𐀹𐀺𐀼𐀽𐀿𐁀𐁁𐁂𐁃𐁄𐁅𐁆𐁇𐁈𐁉𐁊匸匹区医匼匽匾匿區十卂 千卄卅卆升午卉半卋卌华协卑卒卓協单卖南単卙博卛卜卝卞卟占卡卢卣卤卥卦卧卨卩ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓ ㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧭᧯ᲐᲑᲒᲓᲔᲕᲖᲗᲘᲙᲚᲛᲜᲝᲞᲟᲠᲡᲢᲣᱪᱫᱬᱭ ㄪㄫꆰꆱꆲꆳꆴꆵꆶꆷꆸꆹꆺꆻꆼꆽꆾꆿꇀꇁꇂꇃꇄꇅꇆꇇꇈꇉꇊꇋꇌꇍꇎꇏꇐꇑꇒꇓꇔꇕꇖꇗꇘꇙꇚꇛꇜꇝꇞꇟꇠꇡꇢꇣꇤꇥꇦꇧꇨꇩꇪꇫꇬꇭꇮꇯꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹ""" ##############
Haben Sie Ihren "häuslichen" <ziffern>String (der sich möglicherweise von dem hier publizierten unterscheidet? -- Dann aber bitte umgehend Richtigstellung) mal mit meinem MiniProg getestet. Da erwarte ich eigentlich seit Tagen eine "Stellungnahme" von Ihnen.
Ich habe mein Miniprog (MEIN Testprogramm) etwas erweitert, es spuckt jetzt auch die Indizes (die Positionen) der gefundenen Mehrfachzeichen aus:
z = ziffern num1 = len(z) num2 = len(set(z)) # set(z) = Menge der Zeichen in z print("Zeichen in z total : %d" % (num1)) print("Zeichen in z verschiedene : %d" % (num2))
mehrfach = sorted( set( [ x for x in z if (z.count(x) > 1 or x in "\t\n ") ] ) )
for i, ch in enumerate(mehrfach): indexCh = [ x for x, ch2 in enumerate(z) if ch2 == ch ] # sammelt die Indizes der Mehrfachzeichen in z print("[%2d]\t>%s<\t%6d (%d-mal) ; Positionen : %s" % (i+1, ch, ord(ch), z.count(ch), indexCh))
Das Prog produziert -- für jeden nachprüfbar -- aus dem Input <ziffern> (s.o.) folgenden Output:
######################### Zeichen in z total : 4115 Zeichen in z verschiedene : 3983 [ 1] > < 10 (56-mal) Indizes : [77, 159, 248, 331, 415, 503, 591, 679, 755, 834, 920, 1009, 1091, 1158, 1225, 1285, 1351, 1432, 1518, 1615, 1687, 1766, 1821, 1876, 1932, 1988, 2047, 2118, 2192, 2266, 2338, 2407, 2477, 2551, 2623, 2696, 2769, 2838, 2913, 3002, 3084, 3152, 3230, 3286, 3357, 3417, 3502, 3574, 3629, 3684, 3739, 3794, 3851, 3925, 3978, 4038] [ 2] > < 32 (1-mal) Indizes : [4037] [ 3] >क< 2325 (2-mal) Indizes : [853, 886] [ 4] >ख< 2326 (2-mal) Indizes : [854, 888] [ 5] >ग< 2327 (2-mal) Indizes : [855, 890] [ 6] >ज< 2332 (2-mal) Indizes : [860, 892] [ 7] >ड< 2337 (2-mal) Indizes : [865, 894] [ 8] >़< 2364 (9-mal) Indizes : [885, 887, 889, 891, 893, 895, 897, 899, 901] [ 9] >ড< 2465 (2-mal) Indizes : [953, 974] [10] >ঢ< 2466 (2-mal) Indizes : [954, 976] [11] >য< 2479 (2-mal) Indizes : [966, 978] [12] >়< 2492 (3-mal) Indizes : [975, 977, 979] [13] >ଡ< 2849 (2-mal) Indizes : [1036, 1058] [14] >ଢ< 2850 (2-mal) Indizes : [1037, 1060] [15] >଼< 2876 (2-mal) Indizes : [1059, 1061] [16] >ཀ< 3904 (2-mal) Indizes : [1521, 1566] [17] >ག< 3906 (2-mal) Indizes : [1523, 1524] [18] >ཌ< 3916 (2-mal) Indizes : [1533, 1534] [19] >ད< 3921 (2-mal) Indizes : [1539, 1540] [20] >བ< 3926 (2-mal) Indizes : [1545, 1546] [21] >ཛ< 3931 (2-mal) Indizes : [1551, 1552] [22] >ྷ< 4023 (5-mal) Indizes : [1525, 1535, 1541, 1547, 1553] [23] >᧠< 6624 (2-mal) Indizes : [3117, 4001] [24] >᧡< 6625 (2-mal) Indizes : [3118, 4002] [25] >᧢< 6626 (2-mal) Indizes : [3119, 4003] [26] >᧣< 6627 (2-mal) Indizes : [3120, 4004] [27] >᧤< 6628 (2-mal) Indizes : [3121, 4005] [28] >᧥< 6629 (2-mal) Indizes : [3122, 4006] [29] >᧦< 6630 (2-mal) Indizes : [3123, 4007] [30] >᧧< 6631 (2-mal) Indizes : [3124, 4008] [31] >᧨< 6632 (2-mal) Indizes : [3125, 4009] [32] >᧩< 6633 (2-mal) Indizes : [3126, 4010] [33] >᧭< 6637 (2-mal) Indizes : [3130, 4011] [34] >ᱪ< 7274 (2-mal) Indizes : [3490, 4033] [35] >ᱫ< 7275 (2-mal) Indizes : [3491, 4034] [36] >ᱬ< 7276 (2-mal) Indizes : [3492, 4035] [37] >ᱭ< 7277 (2-mal) Indizes : [3493, 4036] [38] >Ა< 7312 (2-mal) Indizes : [3507, 4013] [39] >Ბ< 7313 (2-mal) Indizes : [3508, 4014] [40] >Გ< 7314 (2-mal) Indizes : [3509, 4015] [41] >Დ< 7315 (2-mal) Indizes : [3510, 4016] [42] >Ე< 7316 (2-mal) Indizes : [3511, 4017] [43] >Ვ< 7317 (2-mal) Indizes : [3512, 4018] [44] >Ზ< 7318 (2-mal) Indizes : [3513, 4019] [45] >Თ< 7319 (2-mal) Indizes : [3514, 4020] [46] >Ი< 7320 (2-mal) Indizes : [3515, 4021] [47] >Კ< 7321 (2-mal) Indizes : [3516, 4022] [48] >Ლ< 7322 (2-mal) Indizes : [3517, 4023] [49] >Მ< 7323 (2-mal) Indizes : [3518, 4024] [50] >Ნ< 7324 (2-mal) Indizes : [3519, 4025] [51] >Ო< 7325 (2-mal) Indizes : [3520, 4026] [52] >Პ< 7326 (2-mal) Indizes : [3521, 4027] [53] >Ჟ< 7327 (2-mal) Indizes : [3522, 4028] [54] >Რ< 7328 (2-mal) Indizes : [3523, 4029] [55] >Ს< 7329 (2-mal) Indizes : [3524, 4030] [56] >Ტ< 7330 (2-mal) Indizes : [3525, 4031] [57] >Უ< 7331 (2-mal) Indizes : [3526, 4032] [58] >卑< 21329 (2-mal) Indizes : [866, 3938] [59] >卒< 21330 (2-mal) Indizes : [867, 3939] [60] >卓< 21331 (2-mal) Indizes : [868, 3940] [61] >協< 21332 (2-mal) Indizes : [869, 3941] [62] >单< 21333 (2-mal) Indizes : [870, 3942] [63] >卖< 21334 (2-mal) Indizes : [871, 3943] [64] >南< 21335 (2-mal) Indizes : [872, 3944] [65] >単< 21336 (2-mal) Indizes : [873, 3945] [66] >卙< 21337 (2-mal) Indizes : [874, 3946] [67] >博< 21338 (2-mal) Indizes : [875, 3947] [68] >卛< 21339 (2-mal) Indizes : [876, 3948] ####################################
Was man sehr schön SEHEN kann (wenn man es denn sehen möchte) ist der Zeilenumbruch durch das New Line Zeichen mit der Ordnungsnummer 10 am Anfang des Outputs mit der Nummer [1].
Zum Abschluss für heute (?) ein kurzer Impuls zum längeren oder kürzeren Nachdenken, bevor Sie wieder eine Stellungnahme verfassen:
Ich hatte Ihnen die Prüfung des Strings s auf (1) die Anzahl der Zeichen und (2) die Anzahl der VERSCHIEDENEN Zeichen gezeigt mit Hilfe von set(s):
s = "aaabcdef" len(s)
8 set(s) {'f', 'a', 'b', 'e', 'd', 'c'} len(set(s)) 6
Wenn Sie persönlich den gleichen Test mit Ihrem persönlichen "häuslichen" <ziffern>String durchführen würden -- was würden Sie dann feststellen?
W. Buechel
PS: Sie "beklagen" sich in Ihrer Antwort auf Herrn Gellerts Posting.
"Niemand hat bisher ein Programm angefordert und getestet."
Ich möchte Sie in aller Bescheidenheit darauf hinweisen -- falls es Ihnen entgangen sein sollte --, dass ich zwar nicht Ihr Programm angefordert oder gar in toto, untersucht habe, wohl aber eine wichtige, hier publizierte Komponente davon gründlich getestet habe.
Ihre Reaktion auf meine "Funde" ist ... na, sagen wir mal, ... recht eigenartig: Bestreitung meiner Funde (es gibt keine Mehrfachzeichen) und Nichtbeachtung meiner Begründungen.
Wenn Sie Ihr Programm hier promoten wollen, würde sich -- meines Erachtens -- eine andere Umgehensweise mit Einwänden und Kritik empfehlen. _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
Sehr geehrter Herr Schnoor, dass Sie Ihr Programm NICHT promoten wollen und müssen, finde ich hervorragend. Denn dann können wir uns ausschließlich auf die SACHE konzentrieren, ohne Störung durch irgendwelcher PR-Mätzchen. Wann 'liefern' Sie Ihr Testprogramm zum Nachweis, dass <ziffern> keine Mehrfachzeichen enthält? Mit freundlichen Grüßen W. Büchel
Sehr geehrter Herr Schnoor, Sie haben Ihr persönliches "Spezialprogramm" zur Prüfung des Strings <ziffern> auf Mehrfachzeichen bisher nicht vorgelegt. Andererseits hat bislang keiner der Mitforisten an meinem Nachweis genau dieses Defekts von <ziffern> Kritik geübt. Wie es scheint, sind Sie als einziger davon überzeugt, dass Ihr <ziffern>String ein taugliches Gebilde zur fehlerfreien Kodierung und Dekodierung von Zahlen zur Basis 4096 ist. Anyway. Machen wir ein neues Faß auf. Untersuchen wir die Frage: Was ist problematisch, wenn ein solcher Ziffernstring ein Zeichen mehrfach enthält? (1) Als Beispiel betrachte ich Hexzahlen mit dem Standard-Ziffernstring ziffern = '0123456789ABCDEF'. Als Studienobjekt wähle ich – angregt durch wikipedia – die Dezimalzahl z1 = 45054 (eine Palindromzahl), umgewandelt in HexForm ergibt sich z2 = hex(z1)[2:].upper() = 'AFFE'. Konvertiert man z2 zurück in eine Dezimalzahl, erhält man mit z3 = int(z2, 16) = 45054 die Ausgangszahl z1. Wenn <ziffern> OK ist, hat man eine "Reise" von z1 zu z2, von z2 zu z3 absolviert. Und prüft abschließend, ob z1 und z3 gleich sind, ob man also ein Rundreise absolviert hat. Das Umgekehrte gilt auch: Wenn die Reise eine Rundreise war, ist <ziffern> OK. Man kann dies kompakt so formulieren: int(hex(z1)[2:].upper(), 16) == z1, mit dem Output True. (2) Jetzt sei <ziffern> defekt, enthalte aber weiterhin 16 Zeichen, jedoch eines doppelt, etwa statt D ein F, also ziffern2 = '0123456789ABCFEF', kurz Hexgestört. Jetzt benötigt man zum Kodieren und Dekodieren zwei selbstgestrickte Funktionen. Man kann sich freilich jetzt schon klar machen: Die Kodierung von Dezimal z1 via Hexgestört zu z2 geht ohne Probleme. Denn zum Kodieren einer Dezimalzahl nach einer anderen Basis wird der Euklidische Divisionsalgorithmus verwendet. Der berechnet aus z1 iteriert die Reste bei Division von z1 durch 16 (rest = z1 % 16), wobei z1 schrittweise ebenfalls verkleinert wird durch Ganzzahldivision z1 = z1 // 16. Daraus folgt für den Kodierschritt: Auch mit einem defekten Ziffernstring geht das problemlos. Mit der folgenden Funktion def dezToBase(basis, zahl, ziffern=None): # https://stackoverflow.com/questions/2267362/how-to-convert-an-integer-to-a-s... # etwas erweitert. if zahl == 0: if ziffern: return '0' else: return [0] # Methode: Euklidischer Divisionsalgorithmus reste = [] while zahl: reste.append(zahl % basis) zahl //= basis reste = reste[::-1] # Reihenfolge der Reste umkehren if ziffern: return ''.join([ ziffern[x] for x in reste ]) else: return reste und basis = len(ziffern2) ergibt sich z2 = zahl2Base(basis, z1, ziffern2) = 'AFFE'. (3) Beim Dekodierschritt stößt man auf ein mögliches Problem: Hier wird z2 zu einer (Pseudo-)Dezimalzahl z3 = A*16**3 + F*16**2 + F*16**1 + E*16**0 umgewandelt. Man sieht, wo das Problem (für den Algorithmus) liegt: Welchen Wert für F nehme ich aus <ziffern2>? Das linke F (der Ersatzspieler für D) hat den Index-Wert 13, das rechte (=richtige) F hat weiterhin den Index-Wert 15. Wegen der Wahl des Buchstabens aus <ziffern2> mittels ziffern2.index(.) fällt die Wahl des Algorithmus auf das linke F (weil der Indexwert 13 < 15 ist). Mit der Funktion def bas2dez(basis, zahl, ziffern): z10 = 0 for i in range(len(zahl)): z10 = z10*basis + ziffern.index(zahl[i]) return z10 ergibt sich z3 = 44510 != z1, also eine Fehl-Dekodierung (4) Wie prüft man das gesamte Zahlensystem (aus <ziffern> und davon abgeleiteter basis) auf Korrektheit? Dazu genügt es, jede Zahl im Intervall [0, basis] zu Kodieren und zu Dekodieren, und die Ergebnisse auf Gleichheit zu prüfen. Etwa so: for z1 in range(basis): z2 = dezToBase(basis, z1, ziffern) z3 = bas2dez(basis, z2, ziffern) if z1 != z3: print("%s == %s" % (z1, z3)) Für das defekte <ziffern2> oben ergibt sich damit: 45054 == 44510 # eine richtige Fehl-Dekodierung (5) Man könnte jetzt noch weitere Defekte durchspielen (E ersetzen durch F, C ersetzen durch D, ...). Es mag sein, dass in EINZELFÄLLEN z1 gleich z3 resultiert. Schön, aber irrelevant. Es geht einzig um die Frage: Arbeitet das System in ALLEN Fällen korrekt? (6) Zusammenfassung: Ein Zahlensystem zu einer "höheren" Basis mit einem Nicht-Standard-Ziffernstring funktioniert nur genau dann (in ALLEN Fällen) korrekt, wenn dieser Ziffernstring kein Zeichen mehrfach enthält. (7) Prüft man das System ziffern4096 von Ihnen, Herr Schnoor, -- hier publiziert, von Ihnen bis heute als tauglich und insbesondere frei von Mehrfachzeichen behauptet -- so ergibt sich (nach Tilgung der untauglichen, da unsichtbaren whitespace-Zeichen, unter Beibehaltung der 60+ Mehrfachzeichen, und unter Voranstellung der (bislang fehlenden) Ziffer '0', folgender Output mit 77 Fehl-Dekodierungen: Basis : 4059 # bewirkt durch die eben beschriebenen "Reinigungsmaßnahmen" ziffern : "0123456789 ... ꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹ" [ 1] 877 == 844 [ 2] 878 == 876 [ 3] 879 == 845 [ 4] 880 == 876 [ 5] 881 == 846 [ 6] 882 == 876 [ 7] 883 == 851 [ 8] 884 == 876 [ 9] 885 == 856 [10] 886 == 876 [11] 888 == 876 [12] 890 == 876 [13] 892 == 876 [14] 964 == 943 [15] 966 == 944 [16] 967 == 965 [17] 968 == 956 [18] 969 == 965 [19] 1047 == 1025 [20] 1049 == 1026 [21] 1050 == 1048 [22] 1506 == 1505 [23] 1516 == 1515 [24] 1517 == 1507 [25] 1522 == 1521 [26] 1523 == 1507 [27] 1528 == 1527 [28] 1529 == 1507 [29] 1534 == 1533 [30] 1535 == 1507 [31] 1548 == 1503 [32] 3885 == 857 [33] 3886 == 858 [34] 3887 == 859 [35] 3888 == 860 [36] 3889 == 861 [37] 3890 == 862 [38] 3891 == 863 [39] 3892 == 864 [40] 3893 == 865 [41] 3894 == 866 [42] 3895 == 867 [43] 3947 == 3077 [44] 3948 == 3078 [45] 3949 == 3079 [46] 3950 == 3080 [47] 3951 == 3081 [48] 3952 == 3082 [49] 3953 == 3083 [50] 3954 == 3084 [51] 3955 == 3085 [52] 3956 == 3086 [53] 3957 == 3090 [54] 3959 == 3461 [55] 3960 == 3462 [56] 3961 == 3463 [57] 3962 == 3464 [58] 3963 == 3465 [59] 3964 == 3466 [60] 3965 == 3467 [61] 3966 == 3468 [62] 3967 == 3469 [63] 3968 == 3470 [64] 3969 == 3471 [65] 3970 == 3472 [66] 3971 == 3473 [67] 3972 == 3474 [68] 3973 == 3475 [69] 3974 == 3476 [70] 3975 == 3477 [71] 3976 == 3478 [72] 3977 == 3479 [73] 3978 == 3480 [74] 3979 == 3445 [75] 3980 == 3446 [76] 3981 == 3447 [77] 3982 == 3448 Erst nach Tilgung der Mehrfachzeichen durch ziffern = ''.join(sorted(list(set(ziffern)))) gibt es keine Fehler mehr. Dafür hat man aber auch die Basis 4096 "verloren" und gegen die Basis 3982 getauscht. Will man die Wunschbasis 4096 wiederhaben, muß man halt – wie schon früher gesagt – nachbessern. W. Büchel
Sehr geehrter Herr Buechel, i ch habe alles überprüft. Es sind versehentlich einige chinesische Zeichen doppelt erfasst. Das wird derzeit berichtig. Ich komme darauf zurück mfg Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 23. Juli 2024 um 17:44:11 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Sehr geehrter Herr Schnoor,
Sie haben Ihr persönliches "Spezialprogramm" zur Prüfung des Strings <ziffern> auf Mehrfachzeichen bisher nicht vorgelegt. Andererseits hat bislang keiner der Mitforisten an meinem Nachweis genau dieses Defekts von <ziffern> Kritik geübt. Wie es scheint, sind Sie als einziger davon überzeugt, dass Ihr <ziffern>String ein taugliches Gebilde zur fehlerfreien Kodierung und Dekodierung von Zahlen zur Basis 4096 ist.
Anyway.
Machen wir ein neues Faß auf. Untersuchen wir die Frage: Was ist problematisch, wenn ein solcher Ziffernstring ein Zeichen mehrfach enthält?
(1) Als Beispiel betrachte ich Hexzahlen mit dem Standard-Ziffernstring ziffern = '0123456789ABCDEF'. Als Studienobjekt wähle ich – angregt durch wikipedia – die Dezimalzahl z1 = 45054 (eine Palindromzahl), umgewandelt in HexForm ergibt sich z2 = hex(z1)[2:].upper() = 'AFFE'.
Konvertiert man z2 zurück in eine Dezimalzahl, erhält man mit z3 = int(z2, 16) = 45054 die Ausgangszahl z1.
Wenn <ziffern> OK ist, hat man eine "Reise" von z1 zu z2, von z2 zu z3 absolviert. Und prüft abschließend, ob z1 und z3 gleich sind, ob man also ein Rundreise absolviert hat. Das Umgekehrte gilt auch: Wenn die Reise eine Rundreise war, ist <ziffern> OK.
Man kann dies kompakt so formulieren: int(hex(z1)[2:].upper(), 16) == z1, mit dem Output True.
(2) Jetzt sei <ziffern> defekt, enthalte aber weiterhin 16 Zeichen, jedoch eines doppelt, etwa statt D ein F, also ziffern2 = '0123456789ABCFEF', kurz Hexgestört.
Jetzt benötigt man zum Kodieren und Dekodieren zwei selbstgestrickte Funktionen.
Man kann sich freilich jetzt schon klar machen: Die Kodierung von Dezimal z1 via Hexgestört zu z2 geht ohne Probleme. Denn zum Kodieren einer Dezimalzahl nach einer anderen Basis wird der Euklidische Divisionsalgorithmus verwendet. Der berechnet aus z1 iteriert die Reste bei Division von z1 durch 16 (rest = z1 % 16), wobei z1 schrittweise ebenfalls verkleinert wird durch Ganzzahldivision z1 = z1 // 16.
Daraus folgt für den Kodierschritt: Auch mit einem defekten Ziffernstring geht das problemlos.
Mit der folgenden Funktion
def dezToBase(basis, zahl, ziffern=None): # https://stackoverflow.com/questions/2267362/how-to-convert-an-integer-to-a-s... # etwas erweitert. if zahl == 0: if ziffern: return '0' else: return [0]
# Methode: Euklidischer Divisionsalgorithmus reste = [] while zahl: reste.append(zahl % basis) zahl //= basis reste = reste[::-1] # Reihenfolge der Reste umkehren if ziffern: return ''.join([ ziffern[x] for x in reste ]) else: return reste
und basis = len(ziffern2)
ergibt sich z2 = zahl2Base(basis, z1, ziffern2) = 'AFFE'.
(3) Beim Dekodierschritt stößt man auf ein mögliches Problem: Hier wird z2 zu einer (Pseudo-)Dezimalzahl
z3 = A*16**3 + F*16**2 + F*16**1 + E*16**0
umgewandelt. Man sieht, wo das Problem (für den Algorithmus) liegt: Welchen Wert für F nehme ich aus <ziffern2>? Das linke F (der Ersatzspieler für D) hat den Index-Wert 13, das rechte (=richtige) F hat weiterhin den Index-Wert 15. Wegen der Wahl des Buchstabens aus <ziffern2> mittels ziffern2.index(.) fällt die Wahl des Algorithmus auf das linke F (weil der Indexwert 13 < 15 ist).
Mit der Funktion
def bas2dez(basis, zahl, ziffern): z10 = 0 for i in range(len(zahl)): z10 = z10*basis + ziffern.index(zahl[i]) return z10
ergibt sich z3 = 44510 != z1, also eine Fehl-Dekodierung
(4) Wie prüft man das gesamte Zahlensystem (aus <ziffern> und davon abgeleiteter basis) auf Korrektheit? Dazu genügt es, jede Zahl im Intervall [0, basis] zu Kodieren und zu Dekodieren, und die Ergebnisse auf Gleichheit zu prüfen. Etwa so:
for z1 in range(basis): z2 = dezToBase(basis, z1, ziffern) z3 = bas2dez(basis, z2, ziffern) if z1 != z3: print("%s == %s" % (z1, z3))
Für das defekte <ziffern2> oben ergibt sich damit:
45054 == 44510 # eine richtige Fehl-Dekodierung
(5) Man könnte jetzt noch weitere Defekte durchspielen (E ersetzen durch F, C ersetzen durch D, ...). Es mag sein, dass in EINZELFÄLLEN z1 gleich z3 resultiert. Schön, aber irrelevant. Es geht einzig um die
Frage: Arbeitet das System in ALLEN Fällen korrekt?
(6) Zusammenfassung: Ein Zahlensystem zu einer "höheren" Basis mit einem Nicht-Standard-Ziffernstring funktioniert nur genau dann (in ALLEN Fällen) korrekt, wenn dieser Ziffernstring kein Zeichen mehrfach enthält.
(7) Prüft man das System ziffern4096 von Ihnen, Herr Schnoor, -- hier publiziert, von Ihnen bis heute als tauglich und insbesondere frei von Mehrfachzeichen behauptet -- so ergibt sich (nach Tilgung der untauglichen, da unsichtbaren whitespace-Zeichen, unter Beibehaltung der 60+ Mehrfachzeichen, und unter Voranstellung der (bislang fehlenden) Ziffer '0', folgender Output mit 77 Fehl-Dekodierungen:
Basis : 4059 # bewirkt durch die eben beschriebenen "Reinigungsmaßnahmen" ziffern : "0123456789 ... ꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹ"
[ 1] 877 == 844 [ 2] 878 == 876 [ 3] 879 == 845 [ 4] 880 == 876 [ 5] 881 == 846 [ 6] 882 == 876 [ 7] 883 == 851 [ 8] 884 == 876 [ 9] 885 == 856 [10] 886 == 876 [11] 888 == 876 [12] 890 == 876 [13] 892 == 876 [14] 964 == 943 [15] 966 == 944 [16] 967 == 965 [17] 968 == 956 [18] 969 == 965 [19] 1047 == 1025 [20] 1049 == 1026 [21] 1050 == 1048 [22] 1506 == 1505 [23] 1516 == 1515 [24] 1517 == 1507 [25] 1522 == 1521 [26] 1523 == 1507 [27] 1528 == 1527 [28] 1529 == 1507 [29] 1534 == 1533 [30] 1535 == 1507 [31] 1548 == 1503 [32] 3885 == 857 [33] 3886 == 858 [34] 3887 == 859 [35] 3888 == 860 [36] 3889 == 861 [37] 3890 == 862 [38] 3891 == 863 [39] 3892 == 864 [40] 3893 == 865 [41] 3894 == 866 [42] 3895 == 867 [43] 3947 == 3077 [44] 3948 == 3078 [45] 3949 == 3079 [46] 3950 == 3080 [47] 3951 == 3081 [48] 3952 == 3082 [49] 3953 == 3083 [50] 3954 == 3084 [51] 3955 == 3085 [52] 3956 == 3086 [53] 3957 == 3090 [54] 3959 == 3461 [55] 3960 == 3462 [56] 3961 == 3463 [57] 3962 == 3464 [58] 3963 == 3465 [59] 3964 == 3466 [60] 3965 == 3467 [61] 3966 == 3468 [62] 3967 == 3469 [63] 3968 == 3470 [64] 3969 == 3471 [65] 3970 == 3472 [66] 3971 == 3473 [67] 3972 == 3474 [68] 3973 == 3475 [69] 3974 == 3476 [70] 3975 == 3477 [71] 3976 == 3478 [72] 3977 == 3479 [73] 3978 == 3480 [74] 3979 == 3445 [75] 3980 == 3446 [76] 3981 == 3447 [77] 3982 == 3448
Erst nach Tilgung der Mehrfachzeichen durch
ziffern = ''.join(sorted(list(set(ziffern))))
gibt es keine Fehler mehr.
Dafür hat man aber auch die Basis 4096 "verloren" und gegen die Basis 3982 getauscht. Will man die Wunschbasis 4096 wiederhaben, muß man halt – wie schon früher gesagt – nachbessern.
W. Büchel _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
Sehr geehrter Herr Schnoor, Mehrfachzeichen in ziffern sind nicht lediglich "einige chinesische Zeichen" und auch nicht bloß "doppelt", sondern insgesamt 66 Zeichen aus folgenden Schriftsystemen: DEVANAGARI : 6 BENGALI : 4 ORIYA : 3 TIBETAN : 7 KHMER : 11 OL CHIKI : 4 GEORGIAN : 20 CJK : 11 Dies kann man mit dem Python-Modul unicodedata herausfinden: import unicodedata # Python-Doku: https://docs.python.org/3/library/unicodedata.html # extrahiere aus ziffern : Mehrfachzeichen, Zeilenumbrüche, Leerzeichen mehrfach = sorted(list(set([ x for x in ziffern if ziffern.count(x) > 1 or x in "\n\t " ]))) Names = dict() for i, ch in enumerate(mehrfach): try: chName = unicodedata.name(ch) except: chName = unicodedata.category(ch) language = chName.split()[0] if 'OL' in language: language = ' '.join(chName.split()[:2]) Names[language] = Names.get(language, 0) + 1 # print("[%2d] >%s<\t%5d\t%s" % (i+1, ch, ord(ch), chName)) for k, v in Names.items(): print("%s \t: %2d" % (k, v)) W. Buechel
Hallo, liebe Pythonier, sehr geehrter Herr Buechel, die zitierten Ergebnisse entstammen den ersten Versionen meine Entwicklungen. Sie sind inzwischen überholt. Wer neue Ergebnisse erhalten möchte, kann die neuesten Entwicklungen per e-mail abrufen: eschnoor@multi-matrix.de Mit freundlichen Grüßen Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 24. Juli 2024 um 17:55:03 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Sehr geehrter Herr Schnoor,
Mehrfachzeichen in ziffern sind nicht lediglich "einige chinesische Zeichen" und auch nicht bloß "doppelt", sondern insgesamt 66 Zeichen aus folgenden Schriftsystemen:
DEVANAGARI : 6 BENGALI : 4 ORIYA : 3 TIBETAN : 7 KHMER : 11 OL CHIKI : 4 GEORGIAN : 20 CJK : 11
Dies kann man mit dem Python-Modul unicodedata herausfinden:
import unicodedata # Python-Doku: https://docs.python.org/3/library/unicodedata.html
# extrahiere aus ziffern : Mehrfachzeichen, Zeilenumbrüche, Leerzeichen mehrfach = sorted(list(set([ x for x in ziffern if ziffern.count(x) > 1 or x in "\n\t " ])))
Names = dict() for i, ch in enumerate(mehrfach): try: chName = unicodedata.name(ch) except: chName = unicodedata.category(ch)
language = chName.split()[0] if 'OL' in language: language = ' '.join(chName.split()[:2]) Names[language] = Names.get(language, 0) + 1
# print("[%2d] >%s<\t%5d\t%s" % (i+1, ch, ord(ch), chName))
for k, v in Names.items(): print("%s \t: %2d" % (k, v))
W. Buechel _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
Hallo Herr Schnoor, ich muss gestehen, dass ich die Diskussion zwischen Ihnen und Herrn Büchel mit einiger Belustigung verfolgt habe, ich mich nun aber doch auch beteiligen möchte: Herr Schnoor, würden Sie auch in einem Blumengeschäft versuchen neue Kuchenrezepte zu diskutieren? Sie bieten hier seit Jahren (Jahrzehnten?) immer mal wieder ihr in Python geschriebenes Programm zur Codierung von Text an, zuletzt hat es auf mich gewirkt, als wenn sie einen neuen verbesserten Standard zur Codierung von Zeichen aus dem Unicodezeichensatz vorstellen möchten. Damit sind Sie in der deutschen Python Mailingliste falsch, von hier aus wird ihr neuer Standard niemals zum „neuen Weltstandard zur Zeichencodierung“ werden. Dafür sollten Sie sich an https://www.iso.org wenden. Allerdings sollten Sie dann auch eine gut ausformulierte englischsprachige Begründung mitliefern, warum eine Abweichung von der Gruppierung von Bits in 8 Bit, oder einem vielfachen von 8 (16, 32, 64) Bit Blöcken, sinnvoll ist, obwohl die meisten Prozessormodelle genau darauf optimiert sind. Sollte es Ihnen, entgegen Ihrer Aussage, doch darum gehen ihr Programm zu vermarkten, so sollten Sie eine Marktanalyse starten, und sich direkt an potentielle Kunden richten. Diese Mailingliste, nehme ich so wahr, ist ein deutschsprachiges Forum, um Hilfestellungen bei Verständnisproblemen bei der Entwicklung von Pythonscripten zu erhalten oder zu geben, um die Verbreitung von Python zu fördern. Das scheinen Sie nicht zu benötigen, da Ihr Programm, Ihrer Angabe nach, ja nun tadellos funktioniert. Sollten Sie das Bedürfnis verspüren mir zu antworten, dann (und: Bitte, nur dann!) erklären Sie doch mal was Sie mit Ihren regelmäßigen Angeboten alle paar Monate eigentlich bezwecken wollen. Mit freundlichen Grüßen Christian Baier -- Diese EMail habe ich mit meinem "Streichel"-Telefon geschrieben. Bitte verzeihen sie mir, wenn ich wortkarg, rechtschreibschwach und grammatikalisch seltsam geschrieben habe!
Am 25.07.2024 um 12:58 schrieb Erich Schnoor über python-de <python-de@python.org>:
Hallo, liebe Pythonier, sehr geehrter Herr Buechel,
die zitierten Ergebnisse entstammen den ersten Versionen meine Entwicklungen. Sie sind inzwischen überholt. Wer neue Ergebnisse erhalten möchte, kann die neuesten Entwicklungen per e-mail abrufen: eschnoor@multi-matrix.de Mit freundlichen Grüßen Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 24. Juli 2024 um 17:55:03 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Sehr geehrter Herr Schnoor,
Mehrfachzeichen in ziffern sind nicht lediglich "einige chinesische Zeichen" und auch nicht bloß "doppelt", sondern insgesamt 66 Zeichen aus folgenden Schriftsystemen:
DEVANAGARI : 6 BENGALI : 4 ORIYA : 3 TIBETAN : 7 KHMER : 11 OL CHIKI : 4 GEORGIAN : 20 CJK : 11
Dies kann man mit dem Python-Modul unicodedata herausfinden:
import unicodedata # Python-Doku: https://docs.python.org/3/library/unicodedata.html
# extrahiere aus ziffern : Mehrfachzeichen, Zeilenumbrüche, Leerzeichen mehrfach = sorted(list(set([ x for x in ziffern if ziffern.count(x) > 1 or x in "\n\t " ])))
Names = dict() for i, ch in enumerate(mehrfach): try: chName = unicodedata.name(ch) except: chName = unicodedata.category(ch)
language = chName.split()[0] if 'OL' in language: language = ' '.join(chName.split()[:2]) Names[language] = Names.get(language, 0) + 1
# print("[%2d] >%s<\t%5d\t%s" % (i+1, ch, ord(ch), chName))
for k, v in Names.items(): print("%s \t: %2d" % (k, v))
W. Buechel _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
_______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: chrbaier@gmx.de
Sehr geehrter Herr Schnoor, meine Bewunderung gilt den Kollegen, die sich darum bemühen, ihren Vorschlägen auf den Grund zu gehen, ohne dass Sie bisher an dieser Stelle ein Stückchen verständlichen Code preisgegeben haben und ohne dass Sie eine plausible Erklärung dafür gegeben haben, worin der Vorteil einer Zeichen-Codierung zur Basis 4096 besteht (Anwendungsbereiche??). Ich muss gestehen, dass ich bis zu einem gewissen Punkt den Antworten zu Ihren Ausführungen mit Vergnügen gefolgt bin, in der Hoffnung, dass nun endlich mal von Ihrer Seite etwas Substantielles angeboten wird. Stattdessen werden meine Erwartungen mit ausweichenden Formulierungen wie
die zitierten Ergebnisse entstammen den ersten Versionen meine Entwicklungen. Sie sind inzwischen überholt.
oder ähnlichen Ausflüchten enttäuscht. Können Sie nicht einmal ganz systematisch Ihre Intentionen (Anforderungen, Entwicklungsstrategie, Code-Beispiele, Tests und Evaluierungen) darlegen. Warum erfolgt diese Geheimnistuerei (wer das Programm sehen möchte, soll es bei Ihnen persönlich anfordern)? Diese Liste lebt von der Community und von Diskussionen. Nach meinem Eindruck weichen Sie einer Diskussion massiv aus, was nicht gerade als ein Zeugnis der Standfestigkeit Ihres Programm-Entwurfs angesehen werden kann. Mit freundlichen Grüßen Frank Grellert Am 25.07.24 um 12:57 schrieb Erich Schnoor über python-de:
Hallo, liebe Pythonier, sehr geehrter Herr Buechel,
die zitierten Ergebnisse entstammen den ersten Versionen meine Entwicklungen. Sie sind inzwischen überholt. Wer neue Ergebnisse erhalten möchte, kann die neuesten Entwicklungen per e-mail abrufen: eschnoor@multi-matrix.de Mit freundlichen Grüßen Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de <python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 24. Juli 2024 um 17:55:03 MESZ An: python-de@python.org Antwort an: Wolli Buechel <wjb131@web.de>
Sehr geehrter Herr Schnoor,
Mehrfachzeichen in ziffern sind nicht lediglich "einige chinesische Zeichen" und auch nicht bloß "doppelt", sondern insgesamt 66 Zeichen aus folgenden Schriftsystemen:
DEVANAGARI : 6 BENGALI : 4 ORIYA : 3 TIBETAN : 7 KHMER : 11 OL CHIKI : 4 GEORGIAN : 20 CJK : 11
Dies kann man mit dem Python-Modul unicodedata herausfinden:
import unicodedata # Python-Doku: https://docs.python.org/3/library/unicodedata.html
# extrahiere aus ziffern : Mehrfachzeichen, Zeilenumbrüche, Leerzeichen mehrfach = sorted(list(set([ x for x in ziffern if ziffern.count(x) > 1 or x in "\n\t " ])))
Names = dict() for i, ch in enumerate(mehrfach): try: chName = unicodedata.name(ch) except: chName = unicodedata.category(ch)
language = chName.split()[0] if 'OL' in language: language = ' '.join(chName.split()[:2]) Names[language] = Names.get(language, 0) + 1
# print("[%2d] >%s<\t%5d\t%s" % (i+1, ch, ord(ch), chName))
for k, v in Names.items(): print("%s \t: %2d" % (k, v))
W. Buechel _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: grellert@web.de
On 2024-07-25 12:42, Frank GRELLERT <frank.grellert@gmail.com> wrote:
meine Bewunderung gilt den Kollegen, die sich darum bemühen, ihren Vorschlägen auf den Grund zu gehen, ohne dass Sie bisher an dieser Stelle ein Stückchen verständlichen Code preisgegeben haben und ohne dass Sie eine plausible Erklärung dafür gegeben haben, worin der Vorteil einer Zeichen-Codierung zur Basis 4096 besteht (Anwendungsbereiche??).
Vielleicht soll's ja auf einer PDP-8 laufen? Könnte halt mit dem Python-Interpreter ein bisschen schwierig werden. hp
Sehr geehrter Herr Schnoor, was ist denn das für eine Quellenangabe ("aus dem Internet entnommen")? - Adresse? - in welchem Format liegen die Daten vor? Ihren Angaben entnehme ich, dass Ihre Quelle dazu dient, einzelne Unicode-Zeichen auszuwählen, jedoch nicht dazu, mit dem gesamten Datensatz zu arbeiten. Da verbirgt sich ja schon eine enorme Fehlerquelle! mit freundlichen Grüßen Frank Grellert Am 20.07.24 um 21:27 schrieb Erich Schnoor über python-de:
Sehr geehrter Herr Buechel, die Ziffern in meinem Programm habe ich alle mit folgenddm code aus dem Internet entnommen:
"extract from List of Unicode Symbols (◕-◕) Complete Unicode Character Table on >One Page<
Unicode-Block (nur Ziffern) wählen mit >cursor< und speichern mit >ENTER< Daten werden direkt ins Programm übernommen.”
Die einzelnen Zeichen habe ich nicht geprüft. Ob Mehrfachzeichen dazwischen sind, kann ich nicht beurteilen. Das muss an der jeweiligen Sprache liegen. Jedenfalls in meinen Programmen arbeitet alles ohne Probleme und Schwierigkeiten. Sie können ja ein Programm zum Testen bei mir anfordern.
mfg Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de<python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 20. Juli 2024 um 20:33:10 MESZ An:python-de@python.org Antwort an: Wolli Buechel<wjb131@web.de>
Hallo herr Schnoor,
in der Tat: Der folgende Satz klärt -- für den Verständigen -- die Sache mit den problematischen 56 newline-Zeichen ('\n') in <ziffern> vollkommen:
"Any quotes, tabs, or newlines in between the “triple quotes” are considered part of the string."
Nichts anderes habe ich auch geschrieben. Zusätzlich zu den new lines haben Sie noch etliche andere Mehrfachzeichen (2-, 5-, 9-fache) in den Ziffernstring <ziffern> eingefügt -- absichtlich oder versehentlich?
Könnten Sie erklären, welchen Zweck solche Mehrfachzeichen in einem Ziffernstring eines Zahlensystems haben? Klappt damit das Kodieren und Dekodieren solcher Superzahlen besser? Geht's schneller? Ist das gar ein selbst-fehlerkorrigierendes System? Das wäre ja fantastisch.
Bislang kannte ich -- und vermutlich alle anderen Mathematiker ebenfalls -- nur den folgenden Satz über Zahlensysteme zu einer ganzzahligen Basis b > 1:
"Die b-adische Darstellung einer Zahl verwendet genau b verschiedene Ziffern."
Und so ist es ja auch bei den Systemen mit einem b aus der Menge {2,8,10,12,16}.
Aber man lernt ja nie aus;-)
W. Buechel _______________________________________________ python-de Mailingliste --python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht anpython-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse:eschnoor@multi-matrix.de
python-de Mailingliste --python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht anpython-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse:grellert@web.de
Hallo,sehr geehrter Herr Grellert, vielen Dank für Ihre Fragen. Aber eigentlich wollte ich über gefundene Lösumgen diskutieren, die in meinen Python Programmen realisiert sind. Niemand hat bisher ein Programm angefordert und getestet. Eine Versendung über diese Mailingliste ist auch nicht gestattet (Listen Regeln). Ein Programm kann jedoch jederzeit per e-mail unter: eschnoor@ multi-matrix.de <http://multi-matrix.de/> angefordert werden. Dann wird der Informationsaustausch leichter. Mit internetten Grüßen Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Frank GRELLERT <frank.grellert@gmail.com> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 21. Juli 2024 um 09:58:24 MESZ An: python-de@python.org
Sehr geehrter Herr Schnoor,
was ist denn das für eine Quellenangabe ("aus dem Internet entnommen")?
- Adresse?
- in welchem Format liegen die Daten vor?
Ihren Angaben entnehme ich, dass Ihre Quelle dazu dient, einzelne Unicode-Zeichen auszuwählen, jedoch nicht dazu, mit dem gesamten Datensatz zu arbeiten. Da verbirgt sich ja schon eine enorme Fehlerquelle!
mit freundlichen Grüßen Frank Grellert
Am 20.07.24 um 21:27 schrieb Erich Schnoor über python-de:
Sehr geehrter Herr Buechel, die Ziffern in meinem Programm habe ich alle mit folgenddm code aus dem Internet entnommen:
"extract from List of Unicode Symbols (◕-◕) Complete Unicode Character Table on >One Page<
Unicode-Block (nur Ziffern) wählen mit >cursor< und speichern mit >ENTER< Daten werden direkt ins Programm übernommen.”
Die einzelnen Zeichen habe ich nicht geprüft. Ob Mehrfachzeichen dazwischen sind, kann ich nicht beurteilen. Das muss an der jeweiligen Sprache liegen. Jedenfalls in meinen Programmen arbeitet alles ohne Probleme und Schwierigkeiten. Sie können ja ein Programm zum Testen bei mir anfordern.
mfg Erich Schnoor
Anfang der weitergeleiteten Nachricht:
Von: Wolli Buechel über python-de<python-de@python.org> Betreff: [Python-de] Re: Fwd: Keyboard coding Datum: 20. Juli 2024 um 20:33:10 MESZ An:python-de@python.org Antwort an: Wolli Buechel<wjb131@web.de>
Hallo herr Schnoor,
in der Tat: Der folgende Satz klärt -- für den Verständigen -- die Sache mit den problematischen 56 newline-Zeichen ('\n') in <ziffern> vollkommen:
"Any quotes, tabs, or newlines in between the “triple quotes” are considered part of the string."
Nichts anderes habe ich auch geschrieben. Zusätzlich zu den new lines haben Sie noch etliche andere Mehrfachzeichen (2-, 5-, 9-fache) in den Ziffernstring <ziffern> eingefügt -- absichtlich oder versehentlich?
Könnten Sie erklären, welchen Zweck solche Mehrfachzeichen in einem Ziffernstring eines Zahlensystems haben? Klappt damit das Kodieren und Dekodieren solcher Superzahlen besser? Geht's schneller? Ist das gar ein selbst-fehlerkorrigierendes System? Das wäre ja fantastisch.
Bislang kannte ich -- und vermutlich alle anderen Mathematiker ebenfalls -- nur den folgenden Satz über Zahlensysteme zu einer ganzzahligen Basis b > 1:
"Die b-adische Darstellung einer Zahl verwendet genau b verschiedene Ziffern."
Und so ist es ja auch bei den Systemen mit einem b aus der Menge {2,8,10,12,16}.
Aber man lernt ja nie aus;-)
W. Buechel _______________________________________________ python-de Mailingliste --python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht anpython-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse:eschnoor@multi-matrix.de
python-de Mailingliste --python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht anpython-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse:grellert@web.de
python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-leave@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: eschnoor@multi-matrix.de
participants (5)
-
Christian Baier
-
Erich Schnoor
-
Frank GRELLERT
-
Peter J. Holzer
-
Wolli Buechel