Python: Versuchen Sie, die Benutzeroberfläche von Pythonista 3 auf dem iPad zu verwenden

Einführung

Ich habe das kürzlich veröffentlichte iPad Air 4 gekauft. Der Verwendungszweck besteht hauptsächlich darin, handschriftliche Memos zu erstellen. In vielen Fällen werden Memos jedoch während der Berechnung erstellt. Wenn das handgeschriebene Memo nur aus Text und Zahlen besteht, können Sie es mit einem Texteditor eingeben, ohne sich die Mühe machen zu müssen, es zu schreiben. Wenn Sie jedoch ein erklärendes Diagramm benötigen, ist die Handschrift dennoch praktisch. Wenn ich rechnen muss, habe ich Python auf iMac gestartet und es berechnen lassen, während ich handgezeichnete Skizzen und Memos auf dem iPad erstellt habe. Es ist jedoch umständlich, iMac zu starten, obwohl ich ein iPad habe. Nicht klug. Ich habe in letzter Zeit noch nichts davon gehört, aber ich habe mich für Pythonista 3 entschieden, das ich für das iPad mini 4 gekauft hatte.

Pythonista 3 enthält Numpy und Matplotlib, die mit ziemlicher Sicherheit funktionieren. Sie sollten denken, dass andere Bibliotheken wie Scipy und Pandas nicht verwendet werden können. Aus diesem Grund ist Code, der nur numpy und matplotlib verwendet, auch für komplizierte Berechnungen praktisch. Es scheint, dass Sie auch die GUI verwenden können, aber ich habe sie selbst noch nicht verwendet. Deshalb habe ich versucht, ein einfaches Berechnungsprogramm, das ich häufig verwende, in einen App-Stil zu verwandeln, damit es auf dem iPad verwendet werden kann. (Der Punkt ist, dass ich gerne das iPad Air 4 kaufe, also werde ich verschiedene Dinge damit machen.)

Was machst du

Ich schreibe das "Programm zum Finden der gleichen Tiefe steiler Wasserstraßen" auf meinem Mac für Pythonista neu, damit es mit der GUI funktioniert. Der ursprüngliche Code wurde unten in "Hatena" veröffentlicht.

https://damyarou.hatenablog.com/entry/2020/10/23/073643

Da dieses Programm nichtlineare Gleichungen löst, verwendet das Mac-Programm scipy, Pythonista kann scipy jedoch nicht verwenden, sodass der Dichotomieteil zum Lösen nichtlinearer Gleichungen von selbst neu geschrieben wird. Außerdem ist dies meine erste Herausforderung, aber ich habe versucht, sie über die GUI wie eine App zu beenden.

Das Ausführungsergebnis ist wie in der Abbildung unten dargestellt. Geben Sie die Daten in die oberen vier Quadrate ein und drücken Sie die Taste `` `Ausführen```. Das Ergebnis wird im unteren Quadrat angezeigt.

IMG_0004.jpeg

Ich habe beim Erstellen des Programms auf die folgenden Websites verwiesen.

Wenn Sie in Pythonista 3 die UI-Programmierung angeben, stehen Ihnen zwei Dateien zur Verfügung. Im Bild unten. Sie können die Dateien `py_uniflow.py``` und py_uniflow.pyui``` sehen. "Xxx.py" ist ein Programm, das Code schreibt, und "xxx.pyui" ist eine Datei, die das Layout und die Eigenschaften der Benutzeroberfläche definiert.

IMG_0003.jpeg

Eine Liste der Objekte, die platziert werden können, wird angezeigt, indem Sie auf die Markierung + drücken, die vom oberen linken Quadrat auf `` `py_uniflow.pyui``` umgeben ist und die Platzierung und Eigenschaften der Benutzeroberfläche definiert. Wählen Sie daher das Objekt aus, das Sie verwenden möchten. wählen.

IMG_0007.jpeg

Dieses Programm verwendet die folgenden vier Objekttypen.

  1. label
  2. textfield
  3. button
  4. textview

Für Etikett und Buttan py_uniflow.Hier ist ein Bild des angegebenen charakteristischen Wertes in Pyui.


```textfield```Wann```textview```Passt nur die Position und Größe an, sodass das Foto weggelassen wird.

 ![IMG_0005.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129300/050b4847-d387-186d-1498-0d8ea9c0e10e.jpeg)

 ![IMG_0006.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129300/52a2c7b4-adb0-0a9e-2048-3af40521b09b.jpeg)


 Ich werde das Programm auf dem iPad so beenden.


## Code


#### **`py_uniflow.Der vollständige Code für py ist unten. Funktion def klicken_Die gesamte Hauptverarbeitung ist in der Schaltfläche gepackt.`**
```Der vollständige Code für py ist unten. Funktion def klicken_Die gesamte Hauptverarbeitung ist in der Schaltfläche gepackt.



```python
# Calculation of normal depth
import ui
import numpy as np


def cal_hc(q,b,cs):
    # critical depth
    g=9.8
    hc=(q**2/g/b**2/cs)**(1/3)
    return hc


def func(h,q,b,n,sn):
    f=q-b*h/n*(b*h/(b+2*h))**(2/3)*sn**(1/2)    
    return f    


def bisection(q,b,n,sn,ha,hb):
    for k in range(100):
        hi=0.5*(ha+hb)
        fa=func(ha,q,b,n,sn)
        fb=func(hb,q,b,n,sn)
        fi=func(hi,q,b,n,sn)
        if fa*fi<0: hb=hi
        if fb*fi<0: ha=hi
        #print(fa,fi,fb)
        if np.abs(hb-ha)<1e-10: break
    return hi

  
def click_button(sender):
    tf1=v['textfield1']
    tf2=v['textfield2']  
    tf3=v['textfield3']
    tf4=v['textfield4']
    q=float(tf1.text) # discharge
    b=float(tf2.text) # channel width
    n=float(tf3.text) # Manning's roughness coefficient
    i=float(tf4.text) # invert gradient
    
    theta=np.arctan(i)
    sn=np.sin(theta)
    cs=np.cos(theta)

    ha=0.0 # lower initial value for bisection method
    hb=10.0 # upper initial value for bisection method
    hn=bisection(q,b,n,sn,ha,hb)
    vn=q/b/hn
    hc=cal_hc(q,b,cs)

    # hn: normal depth
    # vn: flow velocity 
    # hc: critical depth
    tv=v['textview1']
    ss='ang={0:.3f} deg.\n'.format(np.degrees(theta))
    ss=ss+'hn={0:.3f} m\n'.format(hn)
    ss=ss+'vn={0:.3f} m/s\n'.format(vn)   
    ss=ss+'hc={0:.3f} m'.format(hc)
    tv.text=ss


v = ui.load_view()
v.name='Uniform flow'
v.present('sheet')

das ist alles

Recommended Posts

Python: Versuchen Sie, die Benutzeroberfläche von Pythonista 3 auf dem iPad zu verwenden
Versuchen Sie es mit dem Python Cmd-Modul
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Versuchen Sie es mit dem Python-Webframework Tornado Part 1
Probieren Sie CI den Push-Python-Code auf GitHub aus.
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Versuchen Sie es mit dem Sammlungsmodul (ChainMap) von python3
Versuchen Sie es mit dem Python-Webframework Tornado Part 2
Versuchen Sie es mit Tweepy [Python2.7]
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
Überlegen Sie, wie Sie Python auf Ihrem iPad programmieren können
Versuchen Sie es mit dem Temperatursensor (LM75B) mit Raspeye.
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit OpenCV unter Windows
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit der PeeringDB 2.0-API
Online-Übertragung mit Python
Versuchen Sie es mit dem Python-Webframework Django (2). Schauen Sie sich settings.py an
Probieren Sie die ähnliche Suche von Image Search mit Python SDK [Search] aus.
Versuchen Sie es mit Pillow auf iPython (Teil 1)
Probieren Sie das Python LINE Pay SDK aus
Versuchen Sie es mit Pillow auf iPython (Teil 2)
Versuchen Sie es mit der Pleasant-API (Python / FastAPI).
Versuchen Sie es mit LevelDB mit Python (plyvel)
Versuchen Sie es mit ArUco mit Raspberry Pi
Probieren Sie Ajax auf der Django-Seite aus
Studie über die Miete in Tokio mit Python (3-2)
Hinweise zur Installation von Python mit PyEnv
Versuchen Sie es mit Pillow auf iPython (Teil 3).
Stärkung des Lernens 8 Versuchen Sie, die Chainer-Benutzeroberfläche zu verwenden
Extrahieren Sie die Targz-Datei mit Python
Versuchen Sie es mit der Aktions-API von Python argparse
Hinweise zur Verwendung von rstrip mit Python.
Installieren Sie Python unter CentOS mit Pyenv
Studie über die Miete in Tokio mit Python (3-3)
Sakura Verwenden von Python im Internet
Hinweise zur Verwendung von matplotlib auf dem Server
Versuchen Sie es mit LeapMotion mit Python
Installieren Sie Python unter CentOS mit pyenv
Versuchen Sie es mit Amazon DynamoDB von Python
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Installieren Sie OpenCV2.4 (+ Python) schnell unter OS X und probieren Sie das Beispiel aus
Versuchen Sie, sich mit Python auf Ihrem PC automatisch bei Netflix anzumelden
Versuchen Sie vorerst, FireBase Cloud Firestore mit Python zu verwenden
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
Setzen Sie Cabocha 0.68 in Windows ein und versuchen Sie, die Abhängigkeit mit Python zu analysieren
Führen Sie Python-Code unter C ++ aus (mit Boost.Python).
Versuchen Sie eine Formel mit Σ mit Python
Versuchen Sie es mit dem Webanwendungsframework Flask
Versuchen Sie es mit Bash unter Windows 10 2 (TensorFlow-Installation)
Hinter dem Flyer: Docker mit Python verwenden
Versuchen Sie es mit dem $ 6 Rabatt LiDAR (Camsense X1)
Spielen Sie mit dem UI-Modul von pythonista3
Versuchen Sie, die Kamera mit Pythons OpenCV zu verwenden
Dialogflow (früher: API.AI) Verwenden Sie das Python SDK #dialogflow