abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 20:11 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. V Týdnu v GNOME je zmíněn flatpak balíček pro GIMP 0.54.1 z roku 1996. Jedná se o poslední verzi GIMPu postavenou nad toolkitem Motif.

    Ladislav Hagara | Komentářů: 0
    dnes 19:11 | Nová verze

    Home Assistant Operating System, tj. linuxová distribuce optimalizována pro hostování Home Assistanta a jeho aplikací, byl vydán v nové major verzi 18.0.

    Ladislav Hagara | Komentářů: 0
    dnes 18:11 | Komunita

    Po šestiletém úsilí byla z jádra Linux odstraněna funkce strncpy(). Všechna předchozí volání této funkce byla převedena na bezpečnější alternativy.

    Ladislav Hagara | Komentářů: 1
    dnes 17:22 | Nová verze

    Byla vydána nová verze 261 správce systému a služeb systemd (Wikipedie, GitHub). Z novinek lze vypíchnout nový subsystém IMDS (Cloud "Instance Metadata Service"), nový příkaz storagectl nebo novou komponentu systemd-sysinstall.

    Ladislav Hagara | Komentářů: 2
    dnes 12:00 | Nová verze

    Vývojové prostředí Qt Creator bylo vydáno ve verzi 20 (seznam změn). Novinky zahrnují hlavně rozšíření pro integraci LLM agentů nebo minimalistický editační režim uživatelského rozhraní („zen mode“).

    |🇵🇸 | Komentářů: 0
    včera 10:22 | Humor

    Už jste se prolétli na webu Google Earth? Přibyl tam Simulátor letu (Nástroje / Simulátor letu). Funguje i bez účtu Google [𝕏].

    Ladislav Hagara | Komentářů: 0
    včera 09:55 | Nová verze

    Byla vydána nová verze 4.7 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 3
    18.6. 13:33 | Nová verze

    Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    18.6. 12:44 | IT novinky

    V Edici CZ.NIC, knižní řady správce české národní domény, vychází nová kniha Martina Malého Kódy, buildy, firmwary. Autor po půl roce od vydání předchozího titulu přichází se svou již sedmou knihou, tentokrát zaměřenou na vývoj programového vybavení pro embedded zařízení. Publikace s podtitulem Základy vývojářského řemesla pro tvůrce hobby elektroniky nabízí praktického průvodce pro všechny, kdo své projekty vytvořené s Arduinem

    … více »
    Ladislav Hagara | Komentářů: 0
    18.6. 11:44 | Komunita

    V Brně na FIT VUT probíhá dvoudenní open source komunitní konference DevConf.CZ 2026. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (3%)
     (15%)
     (26%)
    Celkem 1949 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník
    Štítky: není přiřazen žádný štítek


    Dotaz: Dělení stringu Python

    pdp7 avatar 13.5.2025 16:34 pdp7 | skóre: 33 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Dělení stringu Python
    Přečteno: 1607×
    Ahoj, je nějaký elegantní způsob jak to v Pythonu zapsat:

    Mám dejme tomu string "9000" a určím, že počet celých čísel bude např. 4 a desetinných např. 2 a potřebuji aby výstup byl "90.0"

    To samé pro příklad "19000" kde výstupem bude "190.0"

    Zrovnatak třeba "111900" pro výstup "1119.0"

    Zrovnatak třeba "111920" pro výstup "1119.20"

    Já to prostě neumím vyjádřit, je pro mě problém ta proměnlivá délka vstupního stringu. Nechce se mi sem dávat kód, určitě byste se smáli :D

    Řešení dotazu:


    Odpovědi

    13.5.2025 17:27 Xerces
    Rozbalit Rozbalit vše Re: Dělení stringu Python
    V principu jde o to, vložit tečku na n-tou pozici z prava, kde n je požadovaný počet desetinných míst. Lze na to použít slices a sestavit výsledek pomocí [:-n] + '.' + [-n:]. Nějak jsem ale nepochopil, jak by se měl výsledek omezit v případě, že zadáte počet celých čísel menší, než je ve vstupním řetězci a proč je pro 19000 a požadovaná 2 desetinná místa výstup 190.0 a nikoliv 190.00. :-)
    pdp7 avatar 13.5.2025 18:00 pdp7 | skóre: 33 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: Dělení stringu Python
    Jasně jestli 190.0 nebo 190.00 je už jedno.
    #/usr/bin/python3
    string = "X19020"
    X = string[1:]
    print(len(X), X)
    
    integer_digits = 4
    decimal_digits = 2
    integersX = str(X[:integer_digits])
    decimalsX = str(X[-decimal_digits:])
    
    print("X" + integersX + "." + decimalsX)
    tohle vypíše:
    5 19020
    X1902.20
    ale potřebuji:
    5 19020
    X190.20
    Řešení 1× (karkar)
    13.5.2025 17:38 karkar | skóre: 14 | blog: Kartrolling
    Rozbalit Rozbalit vše Re: Dělení stringu Python
    s = '1911200'
    # adding character at specific position
    pos=4
    s2 = s[:pos] + "." + s[pos:]
    print(s2, type(s2))
    num1= float(s2)
    print(num1,type(num1))
    pdp7 avatar 13.5.2025 18:03 pdp7 | skóre: 33 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: Dělení stringu Python
    Super to mi stačí.
    13.5.2025 18:11 X
    Rozbalit Rozbalit vše Re: Dělení stringu Python
    Pokracovani? ;) Pripadne napis a doplnim to na Git.
    pdp7 avatar 14.5.2025 08:08 pdp7 | skóre: 33 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: Dělení stringu Python
    Tak nějak, asi doplním funkcionalitu na čtení souřadnic které jsou bez desetiné tečky s určením počtu číslic (jak to v excellonu, nebo i gerberu) často bývá.
    28.5.2025 11:13 kaaja
    Rozbalit Rozbalit vše Re: Dělení stringu Python
    A nebude nejjednodušší převést no na číslo a pak dělit mocninou 10?

    pos = 2

    exp = (10.0**pos)

    # exp spoctu jednou a pak pou69v8m

    a = "123546"

    b = float (a)/exp
    Řešení 1× (Andrej)
    2.6.2025 16:02 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Dělení stringu Python

    Slavný nizozemský informatik Johan van der Praase ve svých Spisech uvádí:

    def decode_fixed_point(s, i, d):
      head = s[max(0, len(s) - i - d):-d].lstrip('0')
      tail = s[-d:].rstrip('0')
      return f'{head:0>1}.{tail:0<1}'
    
    assert decode_fixed_point('9000', 4, 2) == '90.0'
    assert decode_fixed_point('19000', 4, 2) == '190.0'
    assert decode_fixed_point('111900', 4, 2) == '1119.0'
    assert decode_fixed_point('111920', 4, 2) == '1119.2'
    
    assert decode_fixed_point('123456', 3, 3) == '123.456'
    assert decode_fixed_point('123450', 3, 3) == '123.45'
    assert decode_fixed_point('123400', 3, 3) == '123.4'
    assert decode_fixed_point('123000', 3, 3) == '123.0'
    assert decode_fixed_point('003456', 3, 3) == '3.456'
    assert decode_fixed_point('000400', 3, 3) == '0.4'
    assert decode_fixed_point('000000', 3, 3) == '0.0'
    
    pdp7 avatar 2.6.2025 20:10 pdp7 | skóre: 33 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: Dělení stringu Python
    Já moc nerozumím programátorským vtípkům, nejsem z zrovna z této branže, pochopitelně kdokoliv kdo tomu rozumí, by to napsal líp. Pro mě je hlavní, že jsem potřebný nástroj s pomocí spíchnul a slouží účelu.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.