Python 3 ja str.center()

print ( "[", str.center( 'aa', 10, '*' ), "]" )

Tulostaa [ ****aa**** ]

Koinka tuo saadaan niin, ettei reunoille jää välilyöntiä, siis näin [*****aa*****].
251679
Äänestä

Muut lukivat myös

Vastaukset 25

Vanhimmat

Pilkun syytä kaikki. Korvaa koodissasi pilkku plus -merkillä niin problem solved.

Äänestä
  • Näinhän se oli, pilkkuhan sen teki, nyt toimii oikein:

    print ( "[" str.center( 'aa', 10, '*' ) "]" )
    Nyt tulostaa niin kuin pitääkin: [****aa****]

    1Äänestä

Pythonissakin lienee trim()-funktio, joka poistaa tyhjät merkit merkkijonon päistä?

Äänestä
  • On kyllä tavallaan:
    strip()
    lstrip()
    rstrip()

    Mutta niistä ei tässä tapauksessa ole apua. Ehkä lähin voisi olla tämä:
    a = ( "[ " str.center( 'aa', 10, '*' ) " ]" )
    print( a.replace(" ", "") )
    tosin tuokaan ei korjaa kysyttyä tilannetta, jossa pilkun käyttö tuo nuo välilyönnit.

    Äänestä

  • Anonyymi kirjoitti:

    On kyllä tavallaan:
    strip()
    lstrip()
    rstrip()

    Mutta niistä ei tässä tapauksessa ole apua. Ehkä lähin voisi olla tämä:
    a = ( "[ " str.center( 'aa', 10, '*' ) " ]" )
    print( a.replace(" ", "") )
    tosin tuokaan ei korjaa kysyttyä tilannetta, jossa pilkun käyttö tuo nuo välilyönnit.

    Joo, jos ei halua välilyöntejä merkkijonoja yhdistellessä, niin pilkkujen tilalle silloin plussat.

    Äänestä

Ei tarvitse välttämättä erillistä funktiota.

print('[' 5*'*' 'aa' 5*'*' ']')

Äänestä

Python on kyllä hyvä merkkijonojen kanssa kikkailuun. Esimerkiksi merkkijonon kääntäminen onnistuu ilman erillistä funktiota.

a = 'abc'
a[::-1] -> 'cba'

Äänestä

Kuten taas tuolta alareunasta voi lukea:

Ketjusta on poistettu 2 sääntöjenvastaista viestiä.

Vaikka mitä korjauksia tekisivät tähän sivustoon, niin käyttäjän syyllistämistä eivät lopeta. Ei ole poistetuissa mitään "sääntöjenvastaista", moderointi ei vain toimi, mutta maailmalle pitää antaa kuva että käyttäjät ovat rikkoneet sääntöjä. Näistä jää aina pahamaku suuhun, kun käyttäjän on otettava vastuu, siitä että ylläpito ei osaa tehtäviään.

Äänestä
  • Mitähän lie tuossa kolmannessa poistetussa lukenut, tekikö käyttäjä jonkin rikoksen, näkikö kukaan.

    Äänestä

Ymmärtääkseni str.center() komennossa str on se ympäröitävä stringi. Toimii jostain syystä esittämälläsi tavallakin, mutten löydä sitä mistään tuon komennon määrittelyistä. Onko joku historiallinen jäänne jostain? Vaiko joku uutuus? Onko tarpeen käyttää dokumentoimattomalla tavalla?

s = 'aa'
print('[' s.center(10,'*') ']')

Äänestä
  • Jospa sillä str-etuliitteellä vain halutaan kertoa minkä kirjaston funktiota käytetään. Tässä yksi esimerkki sen käytöstä: https://s3.gifyu.com/images/Valinta_102.png Kirjastohan sisältää 42 tavallisinta ja käytetyintä funktiota.

    Esimerkki tehty ja testattu:
    Linux Mint 19 Xfce 64-bit ympäristössä.
    Python 3.6.8

    Äänestä

  • Näkyy kuuluvan "deprecated"-funktioihin.

    https://docs.python.org/2/library/string.html

    Sen sijaan pitäisi käyttää '^'-alignmentia format-metodille annettavan merkkijonon kanssa, esim. tässä tapauksessa:

    '{:*^10}'.format('aa')

    Äänestä

Kun nyt perl -palstalla on python-osaajia, niin käytetään tilaisuutta hyväksi:

#!/usr/bin/env python3
import datetime, time
loppu=4.274
floppu=datetime.timedelta(seconds=loppu)
print(loppu,"->",floppu)
loppu=20.0
floppu=datetime.timedelta(seconds=loppu)
print(loppu,"->",floppu)

4.274 -> 0:00:04.274000
20.0 -> 0:00:20

miten saisin jälkimmäisen olevan:
20.0 -> 0:00:20.000000

Äänestä
  • print("%0.6f"+%+20.00)20.000000Tuossa+6f+kertoo+tulostettavien+desimaalien+määrä.+Katso+lisää+print-komennon+tulostustavoista.+Kaikki+on+aina++tarkkaan+määriteltävissä.

    Äänestä

  • Anonyymi kirjoitti:

    print("%0.6f"+%+20.00)20.000000Tuossa+6f+kertoo+tulostettavien+desimaalien+määrä.+Katso+lisää+print-komennon+tulostustavoista.+Kaikki+on+aina++tarkkaan+määriteltävissä.

    ei tuo toimi kuin siihen saakka kuin sekunnit <60

    Äänestä

Ei ole valmista formaattia, on tehtävä oma funktio jolla homma hoituu.

Äänestä

S24:sen parasta antia.

Äänestä

Tässä on ammattimiehet asialla. Näitä tarvitaan lisää.

Äänestä

Lisää Pythonia, paljon lisää.

Äänestä

Näin meillä, mites teillä.

Äänestä

Voi myös deletellä paikata Wordin, jos rivi ei vaihdu. Ite lisäsin pakan lisää väriä ,nii mageempi maisema

Äänestä
  • Etkö voisi kirjoittaa salaamatta tekstiä.

    Äänestä

S24 tekee pilkkaa käyttäjistään, syyttämällä käyttäjiä sääntöjenvastaisista viesteistä. Viittaan tämänkin ketjun alareunassa olevaan huomautukseen.

"Ketjusta on poistettu 3 sääntöjenvastaista viestiä."

Äänestä

Minkähän vuoksi tätä ketjua ei ole poistettu?
Tässähän on selvästi asiaakin mukana.

Äänestä
  • TOTUUS ON TÄMÄ
    Ajattelepa näin; jos nämä asiaviestit poistettaisiin kokonaan, ja samaan aikaan kansa narisee keskustelujen huonosta tasosta joka ketjussa. Asiasta kiinnostuisi varmasti myös sellaiset tahot joiden sana painaa rivikansalaista enemmän, joten kyllä näillä harvoilla asiaa sisältävillä ketjuilla on vissi tarkoitus olemassa.

    Äänestä

Ketjusta on poistettu 4 sääntöjenvastaista viestiä.

Kommentoi aloitusta


Anonyymi kirjoitti:

print ( "[", str.center( 'aa', 10, '*' ), "]" )

Tulostaa [ ****aa**** ]

Koinka tuo saadaan niin, ettei reunoille jää välilyöntiä, siis näin [*****aa*****].

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu