7 svar
276 visningar
jonte12 behöver inte mer hjälp
jonte12 469
Postad: 9 jul 2022 13:32 Redigerad: 9 jul 2022 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 30472
Postad: 9 jul 2022 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 469
Postad: 9 jul 2022 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 469
Postad: 10 jul 2022 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 30472
Postad: 10 jul 2022 12:48

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

jonte12 469
Postad: 10 jul 2022 13:09 Redigerad: 10 jul 2022 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 30472
Postad: 10 jul 2022 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 2932
Postad: 10 jul 2022 18:37 Redigerad: 10 jul 2022 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
Close