7 svar
102 visningar
jonte12 är nöjd med hjälpen
jonte12 275
Postad: 9 jul 13:32 Redigerad: 9 jul 13:38

Python mönster

Hejsan.

Jag är nybörjare i att programmera i Python och har fått en uppgift som går ut på attskapa ett program där användaren matar in en storlek (längd på en sida) på en kvadrat som sedan ska skrivas ut som följande. Även kvadratens area ska räknas ut. Kvadraten ska ritas ut som två rätvinkliga trianglar enligt nedan:

Att göra en vanlig "ihålig" triangel kan jag men när jag ska försöka få ihop detta blir det fel.

Jag har börjat såhär (vanlig ihålig triangel):

size = int(input("Mata in storlek: "))

for row in range(size,0,-1):
    for col in range(1, row+1):
        if(col == 1) or (row == size) or (col == row):
       	    print("*", end = " ")
        else:
            print(" ", end = " ")
    print()

Nästa steg är då att försöka byta tecken och addera den andra triangeln. Det behöver jag hjälp med.

Laguna Online 20243
Postad: 9 jul 13:59

Ska du använda de tecken som står i bilden eller går det bra med bara asterisker? Om det ska vara olika tecken på olika ställen så blir koden rätt annorlunda.

Jag skulle börja med en rektangel.

jonte12 275
Postad: 9 jul 16:13
Laguna skrev:

Ska du använda de tecken som står i bilden eller går det bra med bara asterisker? Om det ska vara olika tecken på olika ställen så blir koden rätt annorlunda.

Jag skulle börja med en rektangel.

Jaha okej. Ja det ska vara som på bilden.

jonte12 275
Postad: 10 jul 12:42
Laguna skrev:

Ska du använda de tecken som står i bilden eller går det bra med bara asterisker? Om det ska vara olika tecken på olika ställen så blir koden rätt annorlunda.

Jag skulle börja med en rektangel.

Men då blir det väll såhär för en rektangel i stället

size = int(input("Mata in storlek: "))

for row in range(size):
    for col in range(size):
        if(row == 0) or (row == size-1) or (col==0) or(col == size-1):
       	    print("*", end = " ")
        else:
            print(" ", end = " ")
    print()

Men hur fixar man rätt tecken här?

Laguna Online 20243
Postad: 10 jul 12:48

Lite fler if bara. Du tänker ju rätt.

jonte12 275
Postad: 10 jul 13:09 Redigerad: 10 jul 14:24
Laguna skrev:

Lite fler if bara. Du tänker ju rätt.

Okej, jag har fått till detta nu:

Jag får inte till sidorna, ska ju vara tre | här. Det är återkommande att det saknas två st

Såhär har jag gjort då:

size = int(input("Mata in storlek: "))


for row in range(size):
    for col in range(size):
        if((row == 0) or (row == size-1)):
       	    print("-", end = " ")
        elif((col==0) or (col == size-1)):
            print("|", end = " ")
        elif((col==(size-1-row))):
            print("/", end = " ")
        else:
            print(" ", end = " ")
            
    print()
Laguna Online 20243
Postad: 10 jul 15:24

På bilden i uppgiften är det området inuti ramen som är 3x3. Du får lägga till 1 eller 2 nånstans.

Några blanktecken verkar inte ingå i ramen.

D4NIEL 853
Postad: 10 jul 18:37 Redigerad: 10 jul 19:04

Tycker du ska undvika if-else soppa. Testa

n = int(input("Mata in storlek: "))

print("+" + "-"*n + "+")
for i in range(n,0,-1):
	print("|" + " "*(i-1) + "/" + " "*(n-i) + "|")
print("+" + "-"*n + "+")
Svara Avbryt
Close