ich besuche den Infokurs der 9. Klasse auf einem Gymnasium. Unser Thema momentan ist (wer hätte es gedacht) Python. Ich schreibe das nur, damit sich keiner über meinen "Programmierstil" wundert. Dementsprechend kenne ich mich auch natürlich nicht sehr gut in Python aus usw.
Ich habe ein Programm geschrieben, das dem Benutzer eine Matheaufgabe mit beliebeigen Operator stellt. Die beiden Zahlen dafür werden zufällig erzeugt. Jedoch sollten die gestellten Matheaufgaben immer eine glatte Lösung ergeben. Das Problem tritt natürlich nur bei der Division auf. Mein bisheriges Programm sieht so aus:
Code: Alles auswählen
# Python 3.2.3
# Import
from math import *
import sys
import random
############################################################### DEF ###############################################################
def plus(zahl1,zahl2):
print(zahl1,"+",zahl2,"=")
global ergebnis
ergebnis = zahl1+zahl2
durchlauf()
#################################
def mal(zahl1,zahl2):
print(zahl1,"*",zahl2,"=")
global ergebnis
ergebnis = zahl1*zahl2
durchlauf()
#################################
def durch(zahl1,zahl2):
print(zahl1,"/",zahl2,"=")
global ergebnis
ergebnis = zahl1/zahl2
durchlauf()
#################################
def minus(zahl1,zahl2):
print(zahl1,"-",zahl2,"=")
global ergebnis
ergebnis = zahl1-zahl2
durchlauf()
#################################################################################
def quizfrage(zahl1,zahl2,operator):
##########################
if operator=="*":
mal(zahl1,zahl2)
elif operator=="/":
durch(zahl1,zahl2)
elif operator=="+":
plus(zahl1,zahl2)
elif operator=="-":
minus(zahl1,zahl2)
###########################
def durchlauf():
antwort = input()
antwort = int(antwort)
if antwort == ergebnis:
print("Richtig!")
global punkte
punkte=punkte+1
else:
print("Falsch!")
########################################################## Hauptprogramm ##########################################################
name=input("""Hallo, dies ist ein Quiz, wie heisst du?
""")
print("Hallo", name)
operator=input("Welchen Rechenoperator moechtest du benutzen?(+ - * /): ")
print("Hier kommen deine 10 Fragen:")
punkte = 0
for i in range(10):
quizfrage(random.randint(1,20),random.randint(1,20),operator)
Nun, es ist ja durchaus möglich zu jeder zahl von 2 - 20 die entsprechenden Teilbaren Zahlen aufzuschreiben und zufällig auswählen zu lassen, das ist aber (leider) selbst bei 20 Zahlen ein ziemlich großer Code. Ich hoffe mal, ich werde jetzt nicht gehated, weil ich Schüler mit einem Problem ohne Python-Sonderkenntnisse bin, der fragt, aber ich bin zuversichtlich
Bin für jede Hilfe dankbar
Grüße