Hallo, seit Stunden hänge ich an dieser Aufgabe.
3 Viertel des Rechtecks habe ich hinbekommen zu erstellen.
Allerdings fehlt mir nun jeglicher Ansatz wie ich die Höhe auf der rechten Seite darstellen lassen kann. Ich weis das Forum ist nicht dazu da um mir einfach die Lösung vors Gesicht zu schmeissen, deswegen freue ich mich über jegliche Gedankenansätze die man mir gibt.
P.S. Bin noch totaler Anfänger im Programmieren.
Aufgabe : Schreiben sie ein Python-Programm, dass 2 int-Zahlen a und b einliest und ein Rechteck
mit den Seitenlängen a(Höhe) und b(Breite) ausgibt, welches durch - und | umrandet ist.
Ecken bleiben dabei frei.
Beispiel : a= 3 b= 6
------
| |
| |
| |
------
Mein Programm bisher :
a = int(input("Geben sie eine Breite ein: "))
b = int(input("Geben sie eine Höhe ein : "))
höhe = b * "|\n"
breite = a * "-"
while True:
eingabe = input(" " + breite + "\n" + höhe + " " + breite)
Aufgabe
-
- User
- Beiträge: 25
- Registriert: Dienstag 30. Oktober 2018, 12:05
Ich bin auch Anfänger, daher ist das ein Schuss ins Blaue:
Als ersten Versuch hätte ich wohl folgendes versucht:
Ganz bestimmt unsauber und noch ein wenig bestimmter viel einfacher möglich, aber vielleicht kannst du das für dich anpassen.
Als ersten Versuch hätte ich wohl folgendes versucht:
Code: Alles auswählen
import sys
a = 5
b = 11
# 5 mal "_" ausgeben
for breite in range(b):
sys.stdout.write("_") # verhindert Zeilenumbruch
print() # hier ist ein Zeilenumbruch
# gibt einen "|" am Anfang und Ende aus, dazwischen Leerzeichen
for hoehe in range(a):
sys.stdout.write("|")
for hoehe in range(b-2): # 2 Leerzeichen werden abgezogen wegen der "|"
sys.stdout.write(" ")
sys.stdout.write("|")
print()
# siehe oben
for breite in range(b):
sys.stdout.write("_")
simple, nicht elegant
falls ich die Aufgabe falsch verstanden habe und das Quadrat zu groß ist,
von hoehe und breite 2 abziehen, falls jeweils >2
Code: Alles auswählen
hoehe = int(input('Geben Sie die Höhe ein: '))
breite = int(input('Geben Sie die Breite ein: '))
top_bottom = ' ' + breite * '-' + ' '
sides = 'I' + breite * ' ' + 'I'
print(top_bottom)
for _ in range(hoehe):
print(sides)
print(top_bottom)
Geben Sie die Höhe ein: 6
Geben Sie die Breite ein: 7
-------
I I
I I
I I
I I
I I
I I
-------
von hoehe und breite 2 abziehen, falls jeweils >2
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
ich bin schon mal sehr dankbar für die Antworten. allerdings sind das wieder alles neue Befehle mit denen ich noch nichts zu tun hatte scheinbar gibt 1000 verschiedene Varianten zu dieser Aufgabe. mein Problem wäre jetzt ds ich mir stundenlang wieder alles raussuchen muss was die ganzen Befehle heissen, zumal wir diese noch nicht im Unterricht hatten.
Du kannst alles hier nachschauen: https://www.python.org/doc/
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
- __blackjack__
- User
- Beiträge: 13079
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Eine Lösung ohne explizite Schleife:
Code: Alles auswählen
#!/usr/bi/env python3
def create_rectangle(width, height):
top_bottom_line = f' {"-" * width}\n'
middle_line = f'|{" " * width}|\n'
return top_bottom_line + middle_line * height + top_bottom_line
def main():
width = int(input('Bitte gib die Breite ein: '))
height = int(input('Bitte gib die Höhe ein: '))
print(create_rectangle(width, height))
if __name__ == '__main__':
main()
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman