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.
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.
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.
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?
Lite fler if bara. Du tänker ju rätt.
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()
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.
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 + "+")