hallo @all die das lesen
ich wollte mal so ne cardbase für mtg (wers kennt) machen. wie dem auch sei, ich möchte, dass wenn ich z.b. ne karte, kethis, habe und als eingabe ket habe, dass er mir alles ausgibt was ket irgendwo im namen hat. also genau ket nich ke t. also ne eingabe testen in schon in nem ordener vorgegebne strings wo das vorkommt
wenn ihrs versteht. weiteres beispiel:
der ordner enthält eine, mein, klei, hoche, maie. ich gebe 'ein' ein und bekomme dann eine, mein ausgegeben.
es wäre echt nett wenn ihr mir helft danke
Anfängerfrage, strings
Mit dem "in" Operator kann man testen, ob ein Teilstring in einem String enthalten ist.
Du musst also deine Datenstruktur durchlaufen und für die einzelnen Elemente prüfen ob das zutrifft.
Code: Alles auswählen
>>> "al" in "Hallo"
True
nochmal ne frage:
ich hab jz nen dokument das heißt karten.py
da steht
cards = kethis,kenrith,ulamorg
also die karten, die ich in der database haben möchte.
wie importiere und nutze ich das?
gibts nen konkretes beispiel?
ich hab jz nen dokument das heißt karten.py
da steht
cards = kethis,kenrith,ulamorg
also die karten, die ich in der database haben möchte.
wie importiere und nutze ich das?
gibts nen konkretes beispiel?
Was verbirgt sich denn hinter den drei Namen, die Du in das tuple cards steckst? Und wohin möchtest Du cards denn importieren? Wenn Du innerhalb karten.py die Zeile
stehen hast und karten.py von wo aus immer auch importierst, dann hast Du dort das tuple cards. Versuch' das doch einfach in Deiner Pythonshell:
Welche Ausgabe bekommst Du? Sollte eine Fehlermeldung erscheinen, dann recherchiere die Bedeutung und Du wirst sicher ein paar Schritte weiter kommen...
Code: Alles auswählen
cards = kethis,kenrith,ulamorg
Code: Alles auswählen
>>> import karten
>>> karten.cards
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
Die Grundlagen der Sprache - und der Index-Zugriff auf Listen gehört da sicherlich zu - solltest du dir erarbeiten, indem du das Tutorial in der Dokumentation durch gehst.
cards = ['kethis, the hidden hand','kenrith, the returned king','ulamorg, the careless hunger','jeskai elder','uro, titan of natures wrath','umori the collector','inspired ultimatum','savai triome','lurrus of the dream-den','crystalline giant']
enough = False
while not enough:
k = input('Kartenname: ')
n = 0
while n < len(cards):
if 'k' in cards[n]:
print(cards[n])
else:
pass
n = n + 1
kann mir wer sagen, wo der Fehler liegt?
enough = False
while not enough:
k = input('Kartenname: ')
n = 0
while n < len(cards):
if 'k' in cards[n]:
print(cards[n])
else:
pass
n = n + 1
kann mir wer sagen, wo der Fehler liegt?
- __blackjack__
- User
- Beiträge: 13122
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@19mareut: Welcher Fehler? Was hast Du erwartet was der Code macht, und was macht er stattdessen?
Allgemeine Anmerkungen: `enough` ist überflüssig weil das nie irgendwo geändert wird, da kann man also gleich ``while True:`` schreiben.
`k` ist ein schlechter Variablenname weil der nicht beschreibt was der Wert für eine Bedeutung hat.
Die innere ``while``-Schleife ist das falsche Werkzeug. Man verwendet eine ``for``-Schleife wenn man über alle Elemente einer Liste iterieren möchte.
Das ``else: pass`` ist unsinnig weil das nix tut. Warum steht das da?
Die ``cards = …``-Zeile ist ein *bisschen* zu lang.
Allgemeine Anmerkungen: `enough` ist überflüssig weil das nie irgendwo geändert wird, da kann man also gleich ``while True:`` schreiben.
`k` ist ein schlechter Variablenname weil der nicht beschreibt was der Wert für eine Bedeutung hat.
Die innere ``while``-Schleife ist das falsche Werkzeug. Man verwendet eine ``for``-Schleife wenn man über alle Elemente einer Liste iterieren möchte.
Das ``else: pass`` ist unsinnig weil das nix tut. Warum steht das da?
Die ``cards = …``-Zeile ist ein *bisschen* zu lang.
Code: Alles auswählen
#!/usr/bin/env python3
def main():
cards = [
"kethis, the hidden hand",
"kenrith, the returned king",
"ulamorg, the careless hunger",
"jeskai elder",
"uro, titan of natures wrath",
"umori the collector",
"inspired ultimatum",
"savai triome",
"lurrus of the dream-den",
"crystalline giant",
]
while True:
search_term = input("Kartenname: ")
for card in cards:
if "k" in card:
print(card)
if __name__ == "__main__":
main()
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
und ich wollte ja eig ket eingeben und dann nur das rausbekommen wo das ket drinne ist
oder ich gebe hidde ein und bekomme auch nur kethis raus
also ich gebe etwas ein dasprogramm sucht alle strings durch ob das in dem string vorkommst und wenn ja spuckt es mir den string aus
oder ich gebe hidde ein und bekomme auch nur kethis raus
also ich gebe etwas ein dasprogramm sucht alle strings durch ob das in dem string vorkommst und wenn ja spuckt es mir den string aus
- __blackjack__
- User
- Beiträge: 13122
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@19mareut: Tja, Dein Code stimmt halt mit dem was Du beschreibst nicht überein. Und das mit dem ``else: pass`` kann nicht stimmen, denn das bewirkt rein gar nichts. Deswegen ist es ja überflüssig und sollte da nicht stehen.
Das hat auch nicht die ersten drei Zeichenketten ausgegeben sondern die ersten beiden und die vierte, denn nur in denen ist ein k enthalten.
Das hat auch nicht die ersten drei Zeichenketten ausgegeben sondern die ersten beiden und die vierte, denn nur in denen ist ein k enthalten.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman