2 svar
162 visningar
jonte12 468
Postad: 17 jul 2022 14:19 Redigerad: 17 jul 2022 14:20

Python mönster

Jag ska skapa ett program där användaren ska mata in ett fritt antal olika storlekar på granar. Programmet ska då rita ut dessa granar och räkna ut medelstorleken på dem. Exempelvis:

Jag har inte så stor erfarenhet av att programmera men tänker mig något sånt här:

def print_forest(size):
    print("|", end="")
    for height in range(1, size+1, -1):
        for width in range(1, size+1, -1):
            print("-"*(size/2) + "|" + "-"*(size/2))
            print()
    print("|", end="")

def hp():
    size = int(input("Mata in storlekar: "))
    print_forest(size)

hp()

Men jag får en massa felmeddelanden om typ-fel när jag kompilerar så jag antar att koden är felaktig?

Laguna Online 28597
Postad: 17 jul 2022 18:02

Vad får du för felmeddelanden?

Dina for-loopar verkar vilja gå från 1 till size+1 med inkrementet -1, och det är ju fel håll. Det leder inte till några felmeddelanden, bara till att ingenting körs.

Lindehaven 820 – Lärare
Postad: 19 jul 2022 00:00 Redigerad: 19 jul 2022 00:03

Förutom det @Laguna skrev:

print("|", end="") kommer inte att skriva ut de blanktecken som ibland behövs före |.

for width in range(1, size+1, -1): behövs inte och resulterar i för många utskrifter.

/2 behövs inte och kommer att ge exekveringsfel om size är udda (eftersom man inte kan muliplicera en sträng med ett flyt-tal).

print() behövs inte och ger för många blankrader.

I print_forest behövs utskrift av ett varierande antal blanktecken innan granens grenar skrivs ut.

I hp behöver den inmatade strängen delas upp i ett antal strängar som var och en typkonverteras till heltal. Prova med strängmetoden split och funktionen int.

Och så ska medelstorleken räknas fram (uppenbarligen med en decimal eller två värdesiffror).

Svara Avbryt
Close