Wie gibt man dieses Stern-Muster in Python aus?

4 Antworten

Wie man die Abfrage macht ob der Benutzer eine ganze Zahl eingegeben hat weiß ich

Das Problem ist eher dass der Benutzter gar keine Zahl eingibt... Aber auch das kann man mit einer einfachen try-except-Anweisung lösen... Was die Schleife betrifft:

Eingabe = int(input("Geben Sie eine Zahl ein:") #Hier natürlich die falschen Einaben abfangen...
i = 0
while i < Eingabe:
  Ausgabe = ""
  for x in range(i):
    Ausgabe.append("*")
  print(Ausgabe)
  i +=1
Woher ich das weiß:Hobby – Programmiere seit eineinhalb Jahren
#Eingabe
while True:
  try:
    n = int(input())
    break
  except ValueError:
    print('Nur Ganzzahlen eingeben!')
#Einzeiler
print('\n'.join('*'*i for i in range(1,n+1)))
#Ausführlicher Weg
for i in range(1,n+1):
  print('*'*i)
Woher ich das weiß:Studium / Ausbildung – Informatikstudent

Du hast zwei Schleifen. Eine, die die Zeilen hochzählt, und eine innen drin, die die Sterne ausgibt (außer python hat dafür mal wieder ein feature)

Woher ich das weiß:Studium / Ausbildung – Informatikstudium
TheOrzoBiased  05.04.2021, 13:35

Ah, offensichtlich hat Python so ein Feature... siehe Antwort kmkcl.

0
TechPech1984  05.04.2021, 13:35

tatsächlich wie die andere antwort von kmkcl zeigt . ich sehe schon , ich kann zwar syntax , aber nicht wirklich python in seiner weisheit ;)

0
TheOrzoBiased  05.04.2021, 13:38
@TechPech1984

Ja, python ist grad zum skripten gut, da es für viele kleine Dinge, schnelle Kurzschreibweisen gibt. Mein Gebiet ist eher C und Java, aber Python wollte ich mir auch mal aneignen, wenn ich nicht grad Klausuren anstehen hab.

0
kmkcl  05.04.2021, 13:42
außer python hat dafür mal wieder ein feature

:-p

Ja, Python kann einem "normalen" Programmierer schnell Kopfschmerzen bereiten, weil es so eine andere Philosophie als C,C++,Java,Basic,Pascal... hat.
Ich fand mal eine Frage bei Stackoverflow passend: "what is the most pythonic way" :-p

Ich muss mich auch jedesmal erst wieder reindenken, aber schnell und effizient ist das Programmieren.

2
TechPech1984  05.04.2021, 14:11
@kmkcl

ja , da kommt man sich vor wie früher bei den einzeiler wettbewerben in perl ;)

0
for i in range(1,n):
  print("*"*i)

Aber nach deinen anderen Fragen solltest du das auch selbst hinbekommen.

whgoffline  05.04.2021, 13:38

Müsste glaub ich aber n+1 heißen.

2