2016-04-11 15 views
-2

Zuordnung Beschreibung: Es gibt 6 Mitglieder pro Team und 20 Teams in der Liga. Jeder Bowler muss seine Punktzahl (zwischen 0 und 300) eingeben. Das Siegerteam wird ermittelt, indem die höchste durchschnittliche Punktzahl ermittelt wird. Gib den Namen und den Durchschnitt des Teams aus, der den Wettbewerb gewinnt. Keine Arrays verwendet.Python 20 Teams 6bowlers jeweils

Für dieses Problem, wie würde man if Anweisungen verschachteln, so dass es weiter unten, wenn die Team-Nummer unter 12 ist, dann weiter zu überprüfen, ob die Mitgliedsnummer unter 8 ist?

def inputScore():totalScore = 0for team in range (1,13): 
    team = int(input("Team number: ")) 
    while (team<0 or team>13): 
    team = int(input("Invalid input. Enter team number 1-12: ")) 
    bowler = int(input("Enter bowler number: ")) 
    while (bowler<0 or bowler>8): 
    bowler = int(input("Invalid input. Enter bowler number 1-8 ")) 
    score = int(input("Enter score: ")) 
    while (score<0 or score>300): 
    score = int(input("Invalid input. Enter score 0-300: ")) 
    total=(bowler*score) 
    totalScore=totalScore + total 
return totalScoretotalAvg=inputScore() 
avg=totalAvg/8 

print ("Die höchste Punktzahl für die Teams sind:" avg)

Hier ist, was ich jetzt, ich weiß, dass es Sachen falsch mit ihm. Ich bin mir nicht sicher, wie ich das beheben soll. Irgendeine Hilfe?

+1

Sie müssen Ihren Code zu formatieren, so dass es verständlich @sirsand ist. Markieren Sie den Code und drücken Sie die Taste {} oben im Bearbeitungsfeld –

+0

Bearbeiten Sie Ihr Problem nicht mehr aus Ihrer Frage, wenn Ihr Problem gelöst ist, da die Frage und die Antworten für zukünftige Leser nicht mehr sinnvoll sind. – zondo

Antwort

3

Sie vermissen eine schließende Klammer score = int(input("Enter bowler's score: "))

EDIT: Partielle Antwort:

def getTeamScore(teamNumber): 
    print("Scores for team " + str(teamNumber)) 
    score1 = int(input("Score for player 1: ")) 
    score2 = int(input("Score for player 2: ")) 
    return (score1 + score2)/2 #Remember parenthesis here 


bestScore = -1 
bestTeam = 0 

for teamNumber in range(1, 3): 
    teamScore = getTeamScore(teamNumber) 
    if (teamScore > bestScore): 
     bestScore = teamScore 
     bestTeam = teamNumber 

print("Best team: " + str(bestTeam) + " with score: " + str(bestScore)) 
+1

Außerdem muss im Einzug für diese Zeile ein weiteres Leerzeichen hinzugefügt werden. – Munir

+0

Klingt für mich sollten Sie sich mit mehrdimensionalen Arrays und für Schleifen vertraut machen. Überprüfen Sie zum Beispiel das [dieses Tutorial] (http://www.linuxtopia.org/online_books/programming_books/python_programming/python_ch20s05.html). Sie würden eine Reihe von Teams haben, in denen jeder Index ein Array der Punktzahlen dieses Teams enthalten würde. Wenn man nur if-Anweisungen verwendet, würde dies zu einem ziemlich langen und sich wiederholenden Code führen, wenn man tatsächlich die Punktzahlen jedes Teams berechnen muss. – Mootpoint

+0

Warum können Sie keine Arrays verwenden? Ist es eine Aufgabe auf einem Kurs oder etwas und Arrays sind nicht abgedeckt? Ich glaube nicht, dass es viel Hilfe von for-Schleifen gibt, wenn Sie keine Arrays verwenden. Wo bekommst du auch die Punkte für die Teams? Definierst du sie selbst? Wenn Sie eine Aufgabenbeschreibung haben, fügen Sie sie bitte zu Ihrer Frage hinzu. – Mootpoint

Verwandte Themen