Guessing Game / While Schleife

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
Dodolinsky
User
Beiträge: 3
Registriert: Samstag 21. Mai 2022, 18:45

Hallo zusammen. Ich habe eine Frage an euch.
Ich brauche Hilfe bei der Erstellung eines Codes und weiss nicht weiter.

Der User soll eine Nummer n eingeben. Wenn n nicht gerade ist oder es nicht ein Vielfaches von 10 ist, soll sich die Eingabeanforderung wiederholen.
Ansonsten sollen alle Zahlen im Bereich (n - 20, n + 20) gedruckt werden und die Schleife beendet werden.

Any ideas? :(
Danke für eure Hilfe
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Ideen müssen von dir kommen. Helfen könnten wir dir nur wenn Du konkrete Fragen zu konkreten Code hast.
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Die Bedingung für die gültige Eingabe kommt mir spontan auch etwas komisch vor.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Dodolinsky: Wo ist denn das konkrete Problem? Das Du eine ``while``-Schleife brauchst, steht ja bereits in Deinem Betreff. Kannst Du rein mathematisch erklären warum sparrow die Bedingung(en) komisch vorkommen könnten? Durch welche Zahl müssten denn gerade Zahlen teilbar sein? Und nenn doch mal eine ungerade Zahl ein vielfaches von 10 ist‽
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Dodolinsky
User
Beiträge: 3
Registriert: Samstag 21. Mai 2022, 18:45

Das habe ich. Ist aber nicht ganz korrekt denke ich...

import random

secretNumber = random.randint(1, 100)
print('Take a number between 1 and 100.')
for guessesTaken in range(1, 7):
print('Guess a number.')
guess = int(input())
if guess < secretNumber:
print('Number is too low.')
elif guess > secretNumber:
print('Number is too high.')
else:
break
if guess == secretNumber:
print('Well done! This is the number ' + str(guessesTaken) + ' guesses!')
else:
print('NO!!!. Game over! ' + str(secretNumber))
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du meinst du hast dir ein ähnliches Ratespiel aus dem Netz gezogen, wie zb hier https://www.reddit.com/r/learnpython/co ... r_appears/, und denkst jetzt bauen wir dir das um passend zu deiner Aufgabenstellung? Glaubst du ernsthaft, das bemerkt keiner?
Dodolinsky
User
Beiträge: 3
Registriert: Samstag 21. Mai 2022, 18:45

Danke, für diesen qualifizierten Beitrag.
Entweder möchtest du mir helfen, oder lässt es eben und trinkst weiter deine Dr.Pepper....
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Dodolinsky: es wäre ein guter Hinweis, von welcher Quelle Du den Code kopiert hast. Dann können wir hier abschätzen, ob das wirklich Deine eigenen Ideen waren oder nicht.

Dass Du auf die etwas provokante Frage von __deets__ mit Agression antwortest, läßt erkennen, dass Du aus irgendeinem Grund frustriert bist.

Das kann passieren, wenn man nicht weiß, wo man anfangen soll.
Erster Punkt in der Aufgabenstellung ist: Der User soll eine Nummer n eingeben.
Wie programmiert man das?
Zweiter Punkt: Wenn n nicht gerade ist oder es nicht ein Vielfaches von 10 ist.
Wie formuliert man so einen Vergleich?
Dritter Punkt:
Eingabeanforderung wiederholen
Wie wiederholt man etwas?
Diese drei Fragen kannst Du unabhängig voneinander beantworten und sollten daher auch gar nicht so schwierig sein.
Wenn Du an einer Stelle nicht weiter kommst, dann kannst Du hier gerne Deine Gedanken teilen, an welcher Stelle Du hängen bleibst und warum.
Einfach nur Code hinwerfen, ohne mehr dazu zu schreiben, haben wir hier nicht so gerne, weil es den Eindruck hinterläßt, dass der Fragende wenig Eigeninitiative zeigt. Der Eindruck kann falsch sein, dann Beweise das Gegenteil.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Dodolinsky hat geschrieben: Sonntag 22. Mai 2022, 13:07 Danke, für diesen qualifizierten Beitrag.
Entweder möchtest du mir helfen, oder lässt es eben und trinkst weiter deine Dr.Pepper....
Ich mag kein Dr Pepper. Genauso wenig wie ich es mag, verarscht zu werden. Was du hier ganz offensichtlich versuchst.

Entweder zeigst du die notwendige Initiative, und dann wird dir hier auch gerne geholfen. Bisher gab es aber keine inhaltliche Auseinandersetzung mit den gegebenen Antworten.

Oder du glaubst weiter, Dich durchmogeln zu können, und verkackst deine Abgabe.

Mir ist beides Recht, musst du selbst wissen.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

😇

Code: Alles auswählen

#!/usr/bin/env python3
import sys

from more_itertools import map_except


def main():
    number = next(
        filter(lambda n: n % 10 == 0, map_except(int, sys.stdin, ValueError))
    )
    sys.stdout.writelines(map("{0}\n".format, range(number - 20, number + 21)))


if __name__ == "__main__":
    main()
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten