Benutzer-Werkzeuge

Webseiten-Werkzeuge


python

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
python [2017/04/29 09:51] – [Vergleichen von Versionsnummern] ollipython [2024/04/01 07:55] (aktuell) – [argparse] olli
Zeile 1: Zeile 1:
 ====== Python ====== ====== Python ======
-Python ist eine interpretierte höhere Programmiersprache, die häufig als Skriptsprache eingesetzt wird+Python ist eine interpretierte höhere Programmiersprache, die häufig als Skriptsprache eingesetzt wird
 +Die Version Python 2 wird seit April 2020 nicht mehr unterstützt.
  
 ===== Übersicht über nützliche Bibliotheken ===== ===== Übersicht über nützliche Bibliotheken =====
Zeile 47: Zeile 48:
 </code> </code>
  
-  * [[https://mkaz.github.io/2012/10/10/python-string-format/|Python String Format Cookbook]]+  * [[https://mkaz.blog/code/python-string-format-cookbook/|Python String Format Cookbook]]
   * [[https://pyformat.info/|pyformat.info]] viele Beispiele mit Gegenüberstellung von alter und neuer Variante   * [[https://pyformat.info/|pyformat.info]] viele Beispiele mit Gegenüberstellung von alter und neuer Variante
  
Zeile 105: Zeile 106:
 Seit Python 3.5 kann auch ''math.nan'' verwendet werden. Seit Python 3.5 kann auch ''math.nan'' verwendet werden.
  
 +==== Exceptions ==== 
 +  * [[https://web.archive.org/web/20220211170740/https://julien.danjou.info/python-exceptions-guide|The definitive guide to Python exceptions]] 
 +  * [[https://www.pythonforthelab.com/blog/learning-not-to-handle-exceptions/|Learning (Not) to Handle Exceptions]]
  
  
Zeile 112: Zeile 115:
  
 ===== argparse ===== ===== argparse =====
-  * [[https://mkaz.github.io/2014/07/26/python-argparse-cookbook/|Python Argparse Cookbook]]+  * [[https://mkaz.blog/working-with-python/argparse|Python Argparse Cookbook]]
  
  
Zeile 162: Zeile 165:
 ax.yaxis.set_major_locator(MaxNLocator(integer=True)) ax.yaxis.set_major_locator(MaxNLocator(integer=True))
 </code> </code>
 +
 +==== Ränder beim Autoscaling ====
 +Um zu verhindern, dass die Datenpunkte nicht mehr auf den Achsen liegen und daher schlecht zu erkennen sind, gibt es zwei Möglichkeiten. Entweder kann in der ''matplotlibrc'' folgendes gesetzt werden:
 +
 +<code python>
 +axes.xmargin        : 0.1  
 +axes.ymargin        : 0.1  
 +</code>
 +Dies wirkt dann für alle Plots. Um jeden Plot individuell zu ändern:
 +<code python>
 +plt.plot(t,np.sin(t))
 +plt.margins(x=0.1, y=0.1)
 +</code>
 +Der angegebene Werte kann jeweils zwischen 0 und 1 liegen.
 +
 +<WRAP tip round>
 +Innerhalb von Subplots müssen die Ränder für jede Achse separat gesetzt werden, ''plt.margins()'' wirkt nur auf die letzte:
 +<code python>
 +for ax in axes:
 +   ax.margins(x=0.1, y=0.1)
 +</code>
 +</WRAP>
 ==== Links ==== ==== Links ====
   * [[http://emptypipes.org/2013/11/09/matplotlib-multicategory-barchart/|Creating a Grouped Bar Chart in Matplotlib]]   * [[http://emptypipes.org/2013/11/09/matplotlib-multicategory-barchart/|Creating a Grouped Bar Chart in Matplotlib]]
Zeile 169: Zeile 194:
  
 ==== Validierung der Argumente ==== ==== Validierung der Argumente ====
-Mit dem ''validator''-Objekt können die Argumente gegen eine Spezifikation ("configspec") geprüft und in den entsprechenden Typ umgewandelt werden, hier eine [[http://www.voidspace.org.uk/python/validate.html#the-standard-functions|Liste der möglichen Argumenttypen]].+Mit dem ''validator''-Objekt können die Argumente gegen eine Spezifikation ("configspec") geprüft und in den entsprechenden Typ umgewandelt werden, hier eine [[https://configobj.readthedocs.io/en/latest/validate.html#the-standard-functions|Liste der möglichen Argumenttypen]].
  
 <WRAP important round> <WRAP important round>
Zeile 185: Zeile 210:
 Dabei wird allerdings keine Typprüfung vorgenommen. Dabei wird allerdings keine Typprüfung vorgenommen.
  
 +==== Schriftgröße der Legende ====
 +Die einfachste Art die Schriftgröße der Legende zu verändern ist diese:
 +<code python>
 +plot.legend(prop={'size':6})
 +</code>
 +
 +==== Tick-Frequenz ändern ====
 +Um den Abstand der Ticks manuell zu setzen, kann der ''MultipleLocator'' verwendet werden.
 +Als Argument bekommt er den Abstand der Ticks.
 +  
 +<code python>
 +import matplotlib.ticker as ticker
 +
 +ax.xaxis.set_major_locator(ticker.MultipleLocator(tick_spacing))
 +</code>
 ==== Links ==== ==== Links ====
-   * [[http://www.voidspace.org.uk/python/articles/configobj.shtml|An Introduction to ConfigObj]]+   * [[https://web.archive.org/web/20201109033721/http://www.voidspace.org.uk/python/articles/configobj.shtml|An Introduction to ConfigObj (Webarchive)]]
 ===== csv ===== ===== csv =====
 ==== Zeilenende ==== ==== Zeilenende ====
Zeile 209: Zeile 249:
 </code> </code>
  
-==== numpy ==== +===== numpy ===== 
-=== alle Inf in Array durch Null ersetzen ===+==== alle Inf in Array durch Null ersetzen ====
 Alle INFs in einem Numpy-Array lassen sich wie folgt durch Null oder einen beliebigen anderen Wert ersetzen: Alle INFs in einem Numpy-Array lassen sich wie folgt durch Null oder einen beliebigen anderen Wert ersetzen:
 <code python> <code python>
Zeile 217: Zeile 257:
 x[x == inf] = 0 x[x == inf] = 0
 </code> </code>
 +
 +===== UTF-8 =====
 +Python 3 unterstützt UTF-8 gut und komfortabel.
 +In Python 2 muss das Encoding eines Sourcefiles
 +mit 
 +<code python>
 +# -*- coding: utf-8 -*-
 +</code>
 +oder
 +<code python>
 +# coding: utf8
 +</code>
 +explizit gesetzt werden und Strings müssen das Präfix
 +''u'' bekommen:
 +<code python>
 +some_string = u'ÜÖÄ'
 +</code>
 +
 +  * [[https://docs.python.org/3/howto/unicode.html|Unicode How-To]]
 +
 ===== Tipps & Tricks ===== ===== Tipps & Tricks =====
  
python.1493452287.txt.gz · Zuletzt geändert: 2017/04/29 09:51 von olli