Funktion mit jedem zweiten Buchstaben groß

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
phythonkid
User
Beiträge: 31
Registriert: Donnerstag 2. April 2020, 11:08

Die version 3 meine ich!
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Eben war es noch Version 2 was in meinem letzten Post Version 1 entspricht..
phythonkid
User
Beiträge: 31
Registriert: Donnerstag 2. April 2020, 11:08

Es sit Version 3!
Benutzeravatar
__blackjack__
User
Beiträge: 13137
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Zählen? Modulo? Unsinn! Ich biete:

Code: Alles auswählen

from itertools import cycle
text = "ich nehme gerade in der schule das thema python durch und habe mich da etwas ausprobiert"
print("".join(f(c) for f, c in zip(cycle([str.lower, str.upper]), text)))
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
phythonkid
User
Beiträge: 31
Registriert: Donnerstag 2. April 2020, 11:08

Vielen dank. Das hat mir sehr geholfen!
:)
Sirius3
User
Beiträge: 17768
Registriert: Sonntag 21. Oktober 2012, 17:20

@__backjack__: bis auf die doppelten statt einfachen Anführungszeichen, ist meine Lösung hier aufs Bit exakt gleich.
phythonkid
User
Beiträge: 31
Registriert: Donnerstag 2. April 2020, 11:08

Das stimmt, beide Lösungen haben mir geholfen! Vielen Dank
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

@pythonkid: Denk aber bitte daran, wenn du Lösungen aus dem Internet verwendest die Quelle anzugeben. Außerdem ist es sinnvoll nur Code abzugeben den man auch selber versteht, denn der Lehrer könnte auch nachfragen was genau der Codeschnipsel macht.
phythonkid
User
Beiträge: 31
Registriert: Donnerstag 2. April 2020, 11:08

Das werde ich tun ich habe diesen Code jedoch sehr gut verstanden!!
Benutzeravatar
snafu
User
Beiträge: 6745
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

__blackjack__ hat geschrieben: Donnerstag 2. April 2020, 14:08 Zählen? Modulo? Unsinn! Ich biete:

Code: Alles auswählen

from itertools import cycle
text = "ich nehme gerade in der schule das thema python durch und habe mich da etwas ausprobiert"
print("".join(f(c) for f, c in zip(cycle([str.lower, str.upper]), text)))
Oder wenn man nicht für jeden Buchstaben die lower() bzw upper() Methode aufrufen will:

Code: Alles auswählen

from itertools import chain

text = "ich nehme gerade in der schule das thema python durch und habe mich da etwas ausprobiert"
result = chain.from_iterable(zip(text[::2].lower(), text[1::2].upper()))
print("".join(result))
EDIT: Wobei /me hier bereits eine sehr ähnliche Lösung genannt hatte.
Antworten