rric

leise_

Nov 21st, 2023 (edited)
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.29 KB | None | 0 0
  1. # Lerne einiges darüber, wie man Listen von Zahlen in Python erzeugt.
  2. # Copyright 2023 Roland Richter                           [Mu: Python 3]
  3.  
  4. # Wenn du eine Liste erzeugen willst, die die Zahlen 0, 40, 80, ..., 400
  5. # enthält, gibt es mehrere Arten, das zu tun:
  6. # 1. Du kannst einfach eine Liste mit allen Elementen aufschreiben:
  7. zahlen_a = [0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400]
  8.  
  9. # ... wirklich mühsam zu tippen, nicht wahr? Es gibt was besseres.
  10. # 2. Die zweite Art ist immer noch ein bisschen mühsam:
  11. zahlen_b = []  # Erzeuge eine leere Liste, dann ...
  12. zahl = 0
  13. while zahl <= 400:  # ... (bis 400 erreicht ist)
  14.     zahlen_b.append(zahl)  # ... beginne zahlen anzuhängen: zuerst 0, ...
  15.     zahl += 40  # ... dann 40, 80, und so weiter.
  16.  
  17. # 3. Python bietet eine weitere Art, Zahlen aufzuzählen:
  18. # die "for"-Schleife mit der Funktion range(start, stop, step), wobei
  19. # start die Zahl ist, mit der die Aufzählung beginnen soll,
  20. # stop die Zahl ist, _vor_ der gestoppt werden soll,
  21. # step die Schrittweite angibt.
  22. # Häufig passiert hier ein Fehler, weil `stop` NICHT enthalten ist.
  23. # ÄNDERE den Code so, dass alle Zahlen 0, 40, ... 400 entstehen:
  24. # ↓---------↓---------↓---------↓---------↓---------↓---------↓
  25. zahlen_c = []
  26. for zahl in range(0, 400, 40):
  27.     zahlen_c.append(zahl)
  28. # ↑---------↑---------↑---------↑---------↑---------↑---------↑
  29.  
  30. # 4. Zwei der Argumente von range(start, stop, step) sind optional:
  31. # start ist die Zahl, mit der begonnen werden soll -- optional (default: 0),
  32. # stop ist die Zahl, mit der gestoppt werden soll (nicht enthalten) -- erforderlich,
  33. # step ist die Angabe der Schrittweite - optional (default: 1).
  34. # Der Code "for zahl in range(10)" bedeutet also "for zahl in range(0, 10, 1)",
  35. # und das wiederum bedeutet "Zähle 10 Zahlen auf, von 0 bis 9".
  36. # ÄNDERE den Code so, dass alle Zahlen 0, 40, ... 400 entstehen:
  37. # ↓---------↓---------↓---------↓---------↓---------↓---------↓
  38. zahlen_d = []
  39. for zahl in range(10):
  40.     zahlen_d.append(40 * zahl)
  41. # ↑---------↑---------↑---------↑---------↑---------↑---------↑
  42.  
  43. # 5. Es gibt eine noch kürzere Art: die sogenannt list comprehension.
  44. # ÄNDERE den (hoffentlich offensichtlichen) Berechnungsfehler.
  45. # ↓---------↓---------↓---------↓---------↓---------↓---------↓
  46. zahlen_e = [42 * zahl for zahl in range(11)]
  47. # ↑---------↑---------↑---------↑---------↑---------↑---------↑
  48.  
  49. # 6. Du bist dran!
  50. # Erzeuge [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165]
  51. # ↓---------↓---------↓---------↓---------↓---------↓---------↓
  52. zahlen_f = []
  53. # ↑---------↑---------↑---------↑---------↑---------↑---------↑
  54.  
  55. # 7. ... und gleich noch einmal:
  56. # Erzeuge die Liste [2, 6, 10, 14, 18, 22, 26, 30, 34]
  57. # ↓---------↓---------↓---------↓---------↓---------↓---------↓
  58. zahlen_g = []
  59. # ↑---------↑---------↑---------↑---------↑---------↑---------↑
  60.  
  61. # Übrigens: man kann nicht nur rauf, sondern auch runter zählen.
  62. # 8. Erzeuge den Countdown [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
  63. # ↓---------↓---------↓---------↓---------↓---------↓---------↓
  64. countdown = []
  65. # ↑---------↑---------↑---------↑---------↑---------↑---------↑
  66.  
  67.  
  68. # 🖐 HALT! Änderungen unter dieser Zeile sind verboten!
  69. # ↑---------↑---------↑---------↑---------↑---------↑---------↑
  70.  
  71. zahlen40 = [0, 40, 80, 120, 160, 200, 240, 280, 320, 360, 400]
  72. zahlen15 = [0, 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165]
  73. zahlen34 = [2, 6, 10, 14, 18, 22, 26, 30, 34]
  74. assert zahlen_b == zahlen40, (
  75.     "\n  zahlen_b ist " + str(zahlen_b) + "\n  sollte aber " + str(zahlen40) + " sein."
  76. )
  77. assert zahlen_c == zahlen40, (
  78.     "\n  zahlen_c ist " + str(zahlen_c) + "\n  sollte aber " + str(zahlen40) + " sein."
  79. )
  80. assert zahlen_d == zahlen40, (
  81.     "\n  zahlen_d ist " + str(zahlen_d) + "\n  sollte aber " + str(zahlen40) + " sein."
  82. )
  83. assert zahlen_e == zahlen40, (
  84.     "\n  zahlen_e ist " + str(zahlen_e) + "\n  sollte aber " + str(zahlen40) + " sein."
  85. )
  86. assert zahlen_f == zahlen15, (
  87.     "\n  zahlen_f ist " + str(zahlen_f) + "\n  sollte aber " + str(zahlen15) + " sein."
  88. )
  89. assert zahlen_g == zahlen34, (
  90.     "\n  zahlen_g ist " + str(zahlen_g) + "\n  sollte aber " + str(zahlen34) + " sein."
  91. )
  92. assert countdown == [10, 9, 8, 7, 6, 5, 4, 3, 2, 1], (
  93.     "\n  countdown ist " + str(countdown)
  94.     + "\n  sollte aber " + str([10, 9, 8, 7, 6, 5, 4, 3, 2, 1]) + " sein."
  95. )
  96. print("+---------+---------+---------+---------+---------+---------+")
  97. input("Du hast es geschafft! Bravo! 👏")
  98.  
  99. # ----------------------------------------------------------------------
  100. # This program is free software: you can redistribute it and/or modify
  101. # it under the terms of the GNU General Public License as published by
  102. # the Free Software Foundation, either version 3 of the License, or
  103. # (at your option) any later version.
  104. #
  105. # This program is distributed in the hope that it will be useful,
  106. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  107. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  108. # GNU General Public License for more details.
  109. #
  110. # You should have received a copy of the GNU General Public License
  111. # along with this program.  If not, see <https://www.gnu.org/licenses/>.
  112.  
Advertisement
Add Comment
Please, Sign In to add comment