Seite 1 von 1

wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 17:27
von c.burkes
:wink: wenn das zu trivial ist, duerft Ihr mich gerne abwuergen :oops: hab naemlich schlimmstenfalls noch sone Frage auf Lager :roll: :oops: :oops: :oops: :roll:



def get_user_guess():
guess = int(raw_input("Input ur guess: "))
return guess

def roll_dice(number_of_sides):
first_roll = randint(1, number_of_sides)
second_roll = randint(1, number_of_sides)
max_val = number_of_sides * 2
print "the maximum possible value is %d" % max_val
guess = get_user_guess()
if guess > max_val:

print "u stupid idiot. U should guess a number less than or equal to 12"
else:
print "Rolling ..."
sleep(2)
print "the first dice shows %d" % (first_roll)
sleep(1)
print "the second dice shows %d" % (second_roll)
sleep(1)
total_roll = first_roll + second_roll
print "the total of both dices is %d" % (total_roll)
print "The result ..."
sleep(1)
if guess == total_roll:
print "U have won !! Ur guess matches with the rolled value"
else:
print "Nah ... better luck next time"

roll_dice(6)




Why isnt it possible to write the code in that way …

print "the maximum possible value is %d" % max_val
if get_user_guess > max_val:
print "u stupid idiot. U should guess a number less than or equal to 12“

… or …

print "the maximum possible value is %d" % max_val
if get_user_guess() > max_val:
print "u stupid idiot. U should guess a number less than or equal to 12"



Das wuerde doch ne komplette Zeile einsparen und trotzdem alle Infos beinhalten? T-T

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 17:33
von __blackjack__
@c.burkes: Gute Frage die Du Dir selber beantworten kannst in dem Du es einfach mal ausprobierst was dann nicht mehr funktioniert. Denn syntaktisch korrekt sind beide Varianten.

Warum verwendest Du noch Python 2?

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 17:45
von c.burkes
__blackjack__ hat geschrieben: Montag 4. Februar 2019, 17:33 @c.burkes: Gute Frage die Du Dir selber beantworten kannst in dem Du es einfach mal ausprobierst was dann nicht mehr funktioniert. Denn syntaktisch korrekt sind beide Varianten.

Warum verwendest Du noch Python 2?
??? Also ne, auch nach nochmaligem Versuch .... er spuckt, ohne eine User-Eingabe abzuwarten instant beide prints raus ...

Und Python 2, weil man mir sagte, dass drei auf dem freien Markt noch nicht implementiert sei, da zu viele Inkompatibilitaeten zu aelteren Versionen und ich daher zum Anfang mit 2 gut beraten sei?

Jetzt tun sich mir gleich zwei Fragen auf .... :/ :?

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 17:50
von __deets__
Bitte benutz in Zukunft beim posten von Code die dazu notwendigen Tags. Sonst kann man deinen Code nicht entziffern, weil die in Python imminent wichtigen Einrueckungen verloren gehen.

Und in weniger als einem Jahr https://pythonclock.org/ wird Python 2 abgeklemmt. Du sitzt auf dem falschen Pferd, und solltest deine Experten mal in Frage stellen.

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 17:52
von c.burkes
habe ich gerade auch entdeckt ... im Entwurf sind die Einrueckungen alle da .... :X

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 17:56
von __blackjack__
@c.burkes: Du hast da ja *zwei* Varianten gezeigt. Was Du dann beschreibst (keine Benutzereingabe abwartend) betrifft aber nur eine der beiden Varianten. In Python 3 passiert da übrigens etwas anderes. Das hilft Dir vielleicht besser zu verstehen was Du da versuchst miteinander zu vergleichen.

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 18:01
von c.burkes
hm .... AMAZING!! ... die Klammern habe ich offensichtlich noch nicht zur Gaenze verstanden .... :oops: :oops:

okay ... dann mal in Zukunft lieber mit der 3 weiter. Danke dafuer auf jeden Fall! Waer ja doch sehr bloede, erst ne Sprache zu lernen und wenn man 30% damit klar kommt umzusatteln ;D Da kam der Rat ja wenigstens noch ganz zu Anfang =)) Thx!

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 18:09
von __deets__
Entwurf ja, aber NICHT die Darstellung hier. Ist halt so, siehst du doch selbst. Darum gibt es die code-Tags.

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 18:16
von __blackjack__
@c.burkes: Ich weiss jetzt nicht ob das jetzt klar war/ist: Beide Varianten funktionieren letztendlich *nicht*!

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 18:26
von c.burkes
hm, ... also meine Konsole nimmt dise Version jetzt anstandslos an .... ich resete gerade nochmal .... :?

Code: Alles auswählen

"""NumberGuess compares the users guess to the result of two rolled dices"""

from random import randint
from time import sleep

def get_user_guess():
  guess = int(raw_input("Input ur guess: "))
  return guess

def roll_dice(number_of_sides):
  first_roll = randint(1, number_of_sides)
  second_roll = randint(1, number_of_sides)
  max_val = number_of_sides * 2
  print "the maximum possible value is %d" % max_val
  if get_user_guess() > max_val:
    print "u stupid idiot. U should guess a number less than or equal to 12"
  else:
    print "Rolling ..."
    sleep(2)
    print "the  first dice shows %d" % (first_roll)
    sleep(1)
    print "the second dice shows %d" % (second_roll)
    sleep(1)
    total_roll = first_roll + second_roll
    print "the total of both dices is %d" % (total_roll)
    print "The result ..."
    sleep(1)
    if guess == total_roll:
      print "U have won !! Ur guess matches with the rolled value"
    else:
      print "Nah ... better luck next time"

roll_dice(6)

... mhm, ... macht brav seinen job .... ah nee, Du hast Recht .... faengt gut an und endet in einem 'guess' not definded error ..... T-T .... jetzt bin ich wieder so klug, als wie zuvor .... T-T

die Tags habe ich noch nicht gefunden, darum an der Stelle grade mal so .... sorry ... ich werde weiter Sherlock Holmes spielen ... vielleicht findet sich ja aber auch ein Watson ;D

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 18:28
von __deets__
Das ist jetzt nicht wirklich besser lesbar... ist es wirklich so viel verlangt, im vollständigen Editor auf einen Knopf zu drücken?

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 18:38
von c.burkes
wenn man weiss welchen, nicht =) .... sieht huebsch aus xD

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 18:44
von __deets__
Gut, ich gebe es zu: 11 Knoepfe, von denen 6 oder so bekannt aus beliebten Textverarbeitungsprogrammen sind, mit den verbliebenen 5 man mal 2 Minuten rumspielt - das ist wirklich zu viel des guten. Da kann man schon mal gefrustet aufgeben nach wenigen Sekunden.

So wie ich nach nur 9 Posts von dir. So ist das halt, kann man halt nix machen 🤷‍♂️

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 18:47
von c.burkes
Alles gut - schoenen Abend Dir

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 19:41
von c.burkes
@__blackjack__ ... d.h., man kann den Inhalt von Funktionen nicht mit Inhalt von Variablen vergleichen?

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 19:43
von Sirius3
Funktionen sind im weitesten Sinne ja auch Variablen. Aber wann ist eine Funktion größer als eine Zahl?

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 19:52
von c.burkes
Hi :wink:

d.h.

Code: Alles auswählen

def get_user_guess():
  guess = int(raw_input("Input ur guess: "))
  return guess
versteht sich am Ende nicht als def get_user_guess = return guess, sondern die funktion versteht sich eher als einen eigenstaendigen Mechanismus, der das Ergebnis guess liefert?

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 20:41
von __blackjack__
@c.burkes: Genau. Und man kann auch die Funktion selbst als Wert irgendwo anders übergeben. Es gibt auch Funktionen die als Rückgabewert Funktionen haben. Zum Beispiel `functools.partial()` oder `operator.itemgetter()`.

Re: wahrscheinlich genauso silly und easy wie Nummer 1 ... fuer mich aber ????? Variablen in einer Funktion ....

Verfasst: Montag 4. Februar 2019, 21:53
von c.burkes
Danke dafuer :)

Ich weiß zwar noch nicht die Tragweite dieses Wissens abzuschaetzen, aber ich glaube, dass das wohl die Antwort auf einige Stolperer in den letzten Tagen sein wird. Das muss ich mir morgen mal mit frischem Kopf ansehen =)

Vielen Dank