Forum » Programiranje » Python leposlovje
Python leposlovje
ozbolt ::
Zanima me, kako bi na bolj eleganten in berljiv nacin napisal tole:
Ideja je bila, da bi napisal tako:
Ampak ne dela.
PS: zaradi berljivosti bi raje delal direktno z vec spremenljivkami, kot pa z enim dictionarjem ali cem podobnim
if str1 != 'no_decoration': str1 = "**" + str1 + "**" if str2 != 'no_decoration': str2 = "**" + str2 + "**" if str3 ...
Ideja je bila, da bi napisal tako:
for item in (str1, str2, str3,...): if item != "no_decoration": item = "**" + item + "**"
Ampak ne dela.
PS: zaradi berljivosti bi raje delal direktno z vec spremenljivkami, kot pa z enim dictionarjem ali cem podobnim
OrkAA ::
Dejmo najprej pokazat najbolj neberljiv nacin :)
["** %s **" % x for x in (str1, str2, str3) if x != "no_decoration"]
Zgodovina sprememb…
- spremenil: Mavrik ()
joze67 ::
def no_decoration(str): if str == "no decoration" return str return "** %s **" % (str) str1, str2, str3 = map(no_decoration, [str1, str2, str3])
Zgodovina sprememb…
- spremenilo: joze67 ()
Mavrik ::
Tole z map je lepo ja :)
Lahko tudi z lambdo:
Morda manj pregledno :)
Lahko tudi z lambdo:
str1,str2,str3 = map(lambda str: str if str == "no decoration" else "** %s **" % (str,), [str1, str2, str3])
Morda manj pregledno :)
The truth is rarely pure and never simple.
morbo ::
Dejmo najprej pokazat najbolj neberljiv nacin :)
["** %s **" % x for x in (str1, str2, str3) if x != "no_decoration"]
List comprehension one-liner FTW! Ko se navadiš ni bistveno manj berljivo od if bloka in je obenem bolj slick looking.
Zgodovina sprememb…
- spremenil: morbo ()
joze67 ::
Dejmo najprej pokazat najbolj neberljiv nacin :)
["** %s **" % x for x in (str1, str2, str3) if x != "no_decoration"]
Off topic: damn, nisem vedel, da je python podprt v st.koda; v navodilih ni.
(trenutno so podprti c, php, java, javascript, vb, perl, pascal in html)
On topic: zgornja koda naredi vse, razen:
- prireditve novih vrednosti
- ne izpiše nespremenjenih nizov ("no_decoration")
OrkAA ::
(str1, str2, str3) = ["** %s **" % x if x != "no_decoration" else x for x in (str1, str2, str3)]
Evo, zdaj je popravljeno, da podpira celotno funkcionalnost :)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Pošljite nam vašo najboljšo kodoOddelek: Programiranje | 2171 (1416) | AndrejO |
» | Ali obstaja možnost ?Oddelek: Pomoč in nasveti | 1589 (955) | mojca |
» | [C] struct in int[] (strani: 1 2 )Oddelek: Programiranje | 7288 (6361) | MrBrdo |
» | PHP - stringiOddelek: Izdelava spletišč | 1776 (1599) | pehape |
» | c++ urejanjeOddelek: Programiranje | 1202 (1149) | mchaber |