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

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.
Antworten
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

: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
Benutzeravatar
__blackjack__
User
Beiträge: 13110
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

__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 .... :/ :?
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

habe ich gerade auch entdeckt ... im Entwurf sind die Einrueckungen alle da .... :X
Benutzeravatar
__blackjack__
User
Beiträge: 13110
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

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!
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Entwurf ja, aber NICHT die Darstellung hier. Ist halt so, siehst du doch selbst. Darum gibt es die code-Tags.
Benutzeravatar
__blackjack__
User
Beiträge: 13110
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@c.burkes: Ich weiss jetzt nicht ob das jetzt klar war/ist: Beide Varianten funktionieren letztendlich *nicht*!
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

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
Zuletzt geändert von c.burkes am Montag 4. Februar 2019, 18:36, insgesamt 2-mal geändert.
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist jetzt nicht wirklich besser lesbar... ist es wirklich so viel verlangt, im vollständigen Editor auf einen Knopf zu drücken?
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

wenn man weiss welchen, nicht =) .... sieht huebsch aus xD
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

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 🤷‍♂️
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

Alles gut - schoenen Abend Dir
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

@__blackjack__ ... d.h., man kann den Inhalt von Funktionen nicht mit Inhalt von Variablen vergleichen?
Zuletzt geändert von c.burkes am Montag 4. Februar 2019, 19:44, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Funktionen sind im weitesten Sinne ja auch Variablen. Aber wann ist eine Funktion größer als eine Zahl?
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

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?
Benutzeravatar
__blackjack__
User
Beiträge: 13110
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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()`.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

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
Antworten