Hey, 

PEP8 lässt grüßen ;)

Also bei genau deinem aufbau lässt sich gut eine Funktion benutzen in der die Abfrage stattfindent,

also so in etwa:

def get_number(id):
try:
output = input("Zahl %s:" % id)
int(output)
except (ValueError, NameError):
print "Invalid input"
return None
if output in xrange(1, 7):
return output
elif (int (output) >6):
print ("Die Zahl ist zu hoch! Sie muss zwischen 1 und 6 liegen!")
return None
elif (int (output) <1):
print ("Die Zahl ist zu niedrig! Sie muss zwischen 1 und 6 liegen!")
return None

print ("Tippe drei Zahlen zwischen 1 und 6")
results = {}
own_id = 1
while True:
number = get_number(id=own_id)
if number is None:
continue
results["zahl%s" % own_id] = number
if own_id == 3:
own_id = 1
else:
own_id += 1
print results

Den Teil denn ich Hinzugefügt habe ist Syntaktisch auf 2.7.11, sollte aber nicht schwer zu übertragen sein :)

Da ich nicht weiß was du genau vor hast, weiß ich nicht ob dir das so was bringt, funktionieren tut es ;) Ach und ich habe noch eingebaut das man nur Integer eintragen kann.

Bei Fragen Einfach melden :D
Hoffe das hilft.


EDIT: Und ich sehe gerade die einrückungen buggen rum :D

MfG
Freddy


...zur Antwort

Hey,

Also "Gooooooogle" trifft es soweit schon ganz gut. ;)
Das Problem steht ja schon in der Fehlermeldung:
du versuchst einen String (Zeichenfolge, z.B. a = "4") mit einem INT (Ganzzahl; z.B. b = 5) zu addieren oder subtrahieren, heißt, du musst deine Variablen einfach in den richtigen Typ (z.B. INT) konvertieren. Das lässt sich ganz einfach googlen ;)

Je nachdem wie du die Variablen befüllst gleich zu Anfang.

MfG
Freddy

...zur Antwort

Hey,

Du sagst einfach 

print var1 + " " + var2

zu empfehlen wäre es auch z.B. Platzhalter zu benutzen also:

print "%s %s" % (var1, var2)

der vorteil gegenüber + ist dass du das was in var1 und var2 steht direkt in ein string konvertierst (dafür steht das "s" in "%s")

Wenn du nämlich sagst var1 + var2, und in var1 ein int drin steht und in var 2 ein string, gibt es einen Fehler da du ja versuchst eine zahl mit einem String zu addieren.

MfG

Freddy

...zur Antwort

Hey,

Ganz einfach mit der build-in Funktion type?! :D

a = 4.2
print type(a)

Result: <type 'float' >

Wenn du aber wirklich direkt eine abfrage machen möchtest kannst du natürlich isinstance() benutzen wo du aber explicit den Dateitypen auswählen musst.

Also wenn du nur den Typ herausfinden willst ist type besser da du den Typ jeder Variable herausfinden kannst ;)

MfG
Freddy

...zur Antwort

Hiho,

Nochmal als anhang :D :

Also eigentlich sollte das so klappen solange bei test Groß- und Klein-schreibung beachtet ist. Das würde so z.B. auch nicht funktionieren wenn der Inhalt den du suchst nur test beinhaltet und nicht nur test ist also z.B steht in readlines() -> ["testuser", "admin",...] anstatt test dann klappt der einfache aufbau mit if "test" in ...readlines() nicht da bräuchtest du eine schleife ODER halt __contains.
Es kann auch sein das der Inhalt deines Files irgendwelche Escape Sequences beinhaltet (also \n \r \t usw. gehe ich jetzt aber mal nicht von aus)

Wenn kannste dir ja die Strings einfach mal mit repr("mystring") ausgeben lassen.

MfG 

Freddy

...zur Antwort

Hi,

Da gibt es mehrere Lösung je nachdem was genau in der Datei steht und wie Dynamisch das Ganze werden soll...

Wenn du z.B. spezielle Schlüsselwörter in den Zeilen hast

kannst du so etwas wie:

with open("example.txt", "r") as my_file:
    for line in my_file:
        if "something" in line:
            variable += line

Wenn du z.B. weißt in welcher Zeile/Zeilen sich dein Inhalt befindet würde Theoretisch auch:

with open("example.txt", "r") as my_file:
line_list = myfile.read().splitlines()

In line_list würde dann eine liste der Zeilen Stehen und du könntest drauf zugreifen und in eine variable schreiben um dann damit zu tuen was du möchtest

MfG Freddy

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.