2020. március 29., vasárnap

Labirintus generálás ás megoldás python

 A labirintus generálás és megoldás módszerek:
  1. Kruskal féle
  2. Prim féle
  3. rekurzív Backtracker
  4. Aldous-Broder
  5. növekvő fa
  6. Hunt és ölő
  7. Wilson
  8. Eller féle
  9. Sejtautomata (Easy)
  10. Rekurzív osztály (nagyon könnyű)
  11. Sidewinder (Kiszámítható)
  12. Bináris fa (hibás)





További információk, nézd meg mazelib GitHubról itt Python könyvtár hajtják végre.

További info LInk

WEB megjelenítés : Link

NodeJs

NodeJs


Node Package Manager (NPM) // https://npmjs.org/  [package.json]

-- Modulok :

EE net: For creating TCP clients and servers
EE http: For creating and consuming HTTP services
EE fs: For accessing and manipulating files
EE dns: For using the DNS service
EE events: For creating event emitters
EE stream: For creating streams
EE os: For accessing some local operating system statistics
EE assert: For assertion testing
EE util: For miscellaneous utilities


-- Három fő modul tipus:

core modules, user modules, and third-party


-- core modulok használata importálása:

var fs = require('fs');



-- Saját modulok használata:

// simple_module.js file tartalma
module.exports = 'ABC';

// import.js file tartalma
var simpleModule = require('./simple_module.js');
console.log(simpleModule);

// script futatása
Node import.js



Fogalmak 0

likvid     : fizető képesség (mindenkori, azonnali)

szolvens   : fizető képesség (tartós)

prudens    : hiteless magatartás

szolvencia : A szolvencia, vagy más néven tőkemegfelelés azt jelenti, hogy egy gazdálkodó szervezet fizetőképes, tehát adott időpontban eleget tud tenni a fizetési kötelezettségeinek.

paraszolvencia: tiszteletdíj, hálapénz

reziduális kockázatok: eltérés (mismatch) a kockázatvállalás és a kockázatcsökkentő instrumentum között

Nemfizetés valószínűsége (probability of default, PD)

A fizetés elmaradásakor a veszteség átlagos mértéke (loss given default, LGD)

A fizetésképtelenség bekövetkezésekor a kockázati kitettség várható értéke (exposure at default, EAD)

Futamidő (maturity, M)

kockázattal súlyozott eszközérték (risk weighted assets, RWA)

benchmark kockázati súly (benchmark risk weight, BRW)

Kockáztatott érték - VAR

PD: egy éven belüli nemfizetés valószínűsége
LGD (%): fedezetlenségi ráta
EAD: kintlevőség nagysága
AT: eszköszegmens (corp, ret, SL, FI, SOV, EQ, receivables)
TO: éves árbevétel (micro, sme, corp)
M: lejárat

1. Az alapmutató módszer (basic indicator approach).
Egyetlen mutató jelzi az intézmény teljes működési kockázatát.
Tőkekövetelmény = Bruttó bevétel fix százaléka


2. A sztenderd módszert (standardised approach).[1]
Az intézmény teljes tőkekövetelménye = ? Bruttó bevételek fix
százaléka (üzleti területenként)


C: Capital
A: Assets
M: Management
E: Earnings
L: Liquidity
S: Sensitivity to market risk

ROE (tőkejövedelmezőség) = ROA (eszközjövedelmezőség)

A swap (vagy másként csereügyletek) ügyletek egyéni megállapodások arról, hogy a résztvevők a jövőben egy előre meghatározott formula alapján kicserélik a pénzáramlásaikat. Attól függően, hogy a pénzáramok cseréje mire vonatkozik, megkülönböztetjük a:
  - kamatlábcsere devizacsere
  - ügyleteket ügyleteket


LIBOR: London Interbank Offered Rate

BUBOR: Budapest Interbank Offered Rate

fejlett mérési módszer (advanced measurement approach : AMA)

PO (principal-only) „csak névérték”
IO (interest only)

Duration (átlagos hátralévő futamidő)

Árrugalmasság (E): A piaci kamatláb 1%-os változásának hatására hogyan változik az árfolyam!?

Tevékenységalapú költséggazdálkodás (ABM)

Tevékenységalapú költségelemzés Activity Based Costing (ABC)

Folyamatok újraszervezése (BPR);

Kiegyensúlyozott üzleti mutatószámrendszer / Balanced Business Scorecard, BBS

Kamateredmény a teljes eszközállomány (interest margin): Kamatbevétel – kamatráfordítás / Átlagos mérlegfőösszeg * 100

Kamateredmény a kamatozó eszközökön: Kamatbevétel – kamatráfordítás / Kamatozó eszközök átlagos állománya  100

Spread: Kamatozó eszközök átlagkamata (%) – Kamatozó források átlagkamata (%)

Jelenlegi folyamat (as-is)
Jövőbeni folyamat (to-be)



2020. március 22., vasárnap

Ismerkedés a TensorFlow használatával



 A  mesterséges neurális hálók alkalmazásának elterjesztésére indult el a GoogleBrain projekt 2011-ben. A  DistBelief rendszerrel számos sikeres, jól ismert alkalmazás számára készítettek mély neurális háló modelleket.

A DistBelief eredményei és tapasztalatai alapján fejlesztették ki a második szakaszban a TensorFlow rendszert, amely egy nyílt forráskódú szoftverkönyvtár gépi tanulási modellek létrehozására.

A TensorFlow rendszer a többrétegű neurális háló modellek megalkotásán kívül széles körben alkalmazható más célokra is, ideértve a különféle algoritmusok és numerikus számítások implementálását.

A TensorFlow rendszerben a számításokat egy irányított gráf írja le.

Ebben a gráfban a csúcsok rendszerint egy-egy műveletet reprezentálnak.

A gráfban mindegyik csúcsnak lehet nulla, egy vagy több inputja, ugyanígy nulla, egy vagy több outputja.

A gráfban az adatáramlás az élek mentén történik.

A gráfban  áramló értékek tenzorok, melyek tetszőleges dimenziójú vektorok.

Egy-egy elem típusát a gráf létrehozásakor már megadjuk.
A gráfban speciális élek is lehetnek, ezek mentén nem történik adatáramlás, hanem kontrol célra vannak.

A python programrész a TensorFlow rendszerrel session létrehozásával kerül kapcsolatba.

 A session létrehozásakor a kiinduló helyzetben a gráf üres.

Az első lépésben session létrehozásához a Session interface elérhetővé tesz egy Extend metódust ezért, hogy számítási gráfot tovább bővíthessük élekkel és csúcsokkal.



Az alábbi oktató mintákban végig követhető a teljes elérés és használat részletei.



https://github.com/klajosw/python/blob/master/kl_py_TF_Day_1_Intro_to_ML_and_TF_Solutions.ipynb


https://github.com/klajosw/python/blob/master/kl_py_TF_Day_1_Pre_Made_Estimators_Solutions.ipynb


https://github.com/klajosw/python/blob/master/kl_py_TF_Day_2_MNIST_Eager_ConvNet_Solution.ipynb


https://github.com/klajosw/python/blob/master/kl_py_TF_Day_2_CIFAR10_Eager_ConvNet_Solution.ipynb



https://github.com/klajosw/python/blob/master/kl_py_TF_Conv_Nets_Cifar_10_Solution.ipynb



De hát a mesterséges intelligencia is tud tévedni:

Az egyik minta hajó képet békának tippeli.





https://github.com/klajosw/python/blob/master/kl_py_TF_keras_pic_class.ipynb

2020. március 16., hétfő

ODI LP MAP vizualizáció 2.



ODI (Oracle Data Integrator) jelölés és saját WEB megjelenítés jelölés összehasonlítása:





 ODI LoadPlan (LD) editor megjelenítés összehasonlítása saját WEB megjelenítéssel :




Modell ODI-ban:


WEB-es generált megjelenítés:




Csomópont kihúzása (elemzéshez)




Nagyítás és kihúzás együtt:





A modell vizualitás első megjelenítése (generálás) a LP-ben szereplő MAP-ok számától függ elsődlegesen, ezért bonyolult LP töltési modell akár fél percig is készülhet (WEB böngészőben várni kell).



Használathoz nem szükséges ODI licenc, bárhova publikálható, elérhetővé tehető, külön verziózható, az sql bővítésével más infók is megjeleníthetőek.

Kép kis lépésekkel nagyítható, kicsinyíthető, elmozgatható, mágnesességgel vagy anélkül.

Megjelenítés VIS JS könyvtárral történik. 

Két változó generálásra van szükség a használathoz nodes és edges. 

SQL paranccsal történik az előállítás és minimális szerkesztés (az utolsó sor végéről vessző kivétele) .

Ez után beillesztés és mentéssel frissíthető és bármely más LP-re átültethető.




2020. március 15., vasárnap

ODI LP MAP vizualizáció 1.

Megjelenítési információ kinyerése a nodes és edges  változók feltöltése SQL lekérdezéssel



Használt csomag : VIS-Network (JS)


Lekérdezés (ODI_REPO sémára)



--EDGE
---    minta: {from: 1, to: 2, arrows:'to'},
select 
'{from: ' || t.FROM_STEP_ID ||', to: ' || t.TO_STEP_ID ||', arrows: ''to''},' as json
from    
   odi_repo.lp_step_transitions t ,    
   odi_repo.lp_steps step, ebh_odi_repo.lp_steps step2        
   where step.id = t.TO_STEP_ID  and step2.id = t.FROM_STEP_ID   
    and (step.LOAD_PLAN_ID in (864896)  
      or step2.LOAD_PLAN_ID in (864896))
---

-------------
---NODE
---  minta:  {id: 1, label: 'START', font: {background: 'pink'}},
select 
'{id: ' || step.id ||', label: ''' || step.OBJECT_NAME ||''', font: {background: ''pink''' || '}},' as json
--step.OBJECT_TYPE_NAME, step.OBJECT_LONG_NAME 
from    
   odi_repo.lp_steps step      
   where 1=1 
    and step.LOAD_PLAN_ID in (864896)  

Az kl_odi_lp_map_tree_colour.html file tartalma:

<!doctype html>
<html>
<head>
  <title>ODI LP MAP Network</title>

  <script type="text/javascript" src="./vis-network.min.js"></script>

  <style type="text/css">
    #mynetwork {
      width: 600px;
      height: 600px;
      border: 1px solid lightgray;
    }
    p {
      max-width:600px;
    }
  </style>
  
</head>

<body>

<p>ODI LP MAP NetWork.</p>

<div id="mynetwork"></div>

<script type="text/javascript">
  // create an array with nodes
  var nodes = [
    {id: 1, label: 'START', font: {background: 'pink'}},
    {id: 2, label: 'AND START', font: {background: 'yellow'}},
    {id: 3, label: 'ÜGYFEL', font: {background: 'lime'}},
    {id: 4, label: 'TERMÉK', font: {background: 'lime'}},
{id: 5, label: 'SZERVEZET', font: {background: 'lime'}},
{id: 6, label: 'AND STOP', font: {background: 'pink'}},
{id: 7, label: 'AND START', font: {background: 'yellow'}},
    {id: 8, label: 'ÜGYFEL HIER', font: {background: 'lime'}},
    {id: 9, label: 'TERMÉK HIER', font: {background: 'lime'}},
{id: 10, label: 'SZERVEZET HIER', font: {background: 'lime'}},
{id: 11, label: 'AND STOP', font: {background: 'pink'}},
{id: 12, label: 'SZAMLA', font: {background: 'lime'}},
{id: 13, label: 'SZAMLA TETEL', font: {background: 'lime'}},
{id: 14, label: 'TRANZAKCIO', font: {background: 'lime'}},
    {id: 20, label: 'STOP', font: {background: 'pink'}}
  ];

  // create an array with edges
  var edges = [
    {from: 1, to: 2, arrows:'to'},
    {from: 2, to: 3, arrows:'to'},
    {from: 2, to: 4, arrows:'to'},
{from: 2, to: 5, arrows:'to'},
{from: 3, to: 6, arrows:'to', label: 'Vég', font: {background: 'pink'}},
{from: 4, to: 6, arrows:'to', label: 'Vég', font: {background: 'pink'}},
{from: 5, to: 6, arrows:'to', label: 'Vég', font: {background: 'pink'}},
{from: 6, to: 7, arrows:'to', label: 'Indulás', font: {background: 'yellow'}},
{from: 7, to: 8, arrows:'to'},
{from: 7, to: 9, arrows:'to'},
{from: 7, to: 10, arrows:'to'},
{from: 8, to: 11, arrows:'to', label: 'Vég', font: {background: 'pink'}},
    {from: 9, to: 11, arrows:'to', label: 'Vég', font: {background: 'pink'}},
{from: 10, to: 11, arrows:'to', label: 'Vég', font: {background: 'pink'}},
{from: 11, to: 12, arrows:'to'},
{from: 11, to: 13, arrows:'to'},
{from: 11, to: 14, arrows:'to'},
{from: 12, to: 20, arrows:'to', label: 'Vége', font: {background: 'pink'}},
{from: 13, to: 20, arrows:'to', label: 'Vége', font: {background: 'pink'}},
    {from: 14, to: 20, arrows:'to', label: 'Vége', font: {background: 'pink'}}
  ];

  // create a network
  var container = document.getElementById('mynetwork');
  var data = {
    nodes: nodes,
    edges: edges
  };
  var options = {nodes:{font:{strokeWidth:0}}, edges:{font:{strokeWidth:0}}};
  var network = new vis.Network(container, data, options);
</script>

</body>
</html>










Forrás:



JS és css hálőzati elérése:




2020. március 11., szerda

ODI + python / spark python

ODI (Oracle Data Integrátor) MAP Filter objektum:




Használata:




import pyspark
sc = pyspark.SparkContext('local[*]')
txt = sc.textFile('file:////usr/share/doc/python/copyright')
print(txt.count())
python_lines = txt.filter(lambda line: 'python' in line.lower())
print(python_lines.count())

----

import pyspark
sc = pyspark.SparkContext('local[*]')
 
txt = sc.textFile('file:////usr/share/doc/python/copyright')
print(txt.count())
 
python_lines = txt.filter(lambda line: 'python' in line.lower())
print(python_lines.count())

----









2020. március 10., kedd

ODI + jPython

Az ODI (Oracle Data Integrator) és python kapcsolata a JPython kiterjesztett funkció.

Alavetően SQL, PL-SQL szelven kommunikál a töltő MAP fejlesztés és a hozzájuk kapcsolódó procedurákban,  knowledge modul-oknál.


Hogyan is néz ez ki az ODI-ban?










Mi is a Jpython?

Javahoz javaban fedjlesztett python értelmezőről van szó. Lényegében egy JAR állomány, amelybe a 2.7.1 verziójú (hát nem a legfrissebb) python elhelyezkedik. 

Használatakor a JAVA classpath-ba szerepeltetni kell a jpython jart.

set CLASSPATH=C:\path\to\my\app\myapp.jar;jython.jar;%CLASSPATH%

Hogyan néz ki egy egyszerű kalkulátor ebben:

Futtatás szintaktikája: 

java -jar jython.jar {minta.py}

kl1.py tartalma:


# hello world
print("Hello world!")


# eljárás definició method
def add(a, b):
    print("call add()")
    return a + b
# eljárás meghívása
print(add(1, 2))


# két string összefüzése
print("abcdefghijklmnopqrstuvexyz" + '1234567890')

Futtatás CMD ablakban:

java -jar jython-standalone-2.7.1.jar kl1.py



2. Példa

kl3.py tartalma:


#coding=utf-8
def section_1():
    p = (4, 5)
    x, y = p
    print(x)
    print(y)

    data = ['ACME', 50, 19.1, (2012, 12, 21)]
    name, shares, price, date = data
    print(name)
    print(date)
    name, shares, price, (year, mon, day) = data
    print(year)
    print(mon)

    # ????????????
    s = "Hello"
    a,b,c,d,e = s
    print(a)
    print(e)

    # ?????????????
    _, shares, price, _ = data
    print(shares)
    print(price)

def section_2():
    '''
    # ??*????????
    record = ('Dave', 'dave@example.com', '777-555-1123', '888-444-2342')
    name, email, *phone_numbers = record
    print(name)
    print(phone_numbers)
    def do_foo(x, y):
        print('foo', x, y)
    def do_bar(s):
        print('bar', s)
    
    records = [('foo', 1, 2), ('bar', 'hello'), ('foo', 3, 4)]
    for tag, *args in records:
        if tag == 'fooo':
            do_foo(*args)
        elif tag == 'bar':
            do_bar(*args)
    
    # ??_???????????
    data = ('ACME', 50, 123.45, (12, 18, 2012))
    name, *_, (*_, year) = data
    print(name)
    print(year)
    '''

from collections import deque
def section_3():
    def search(lines, pattern, history=5):
        previous_lines = deque(maxlen=history)
        for line in lines:
            if pattern in line:
                yield line, previous_lines
            previous_lines.append(line)
    
    with open('/Users/liuqiang/code/Python/Python-cookbook/???:???????/somefile.txt') as f:
        for line, prevlines in search(f, 'python', 5):
            for pline in prevlines:
                print(pline)
            print(line)
            print('-' * 20)

import heapq
def section_4():
    nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
    print(heapq.nlargest(3, nums))
    print(heapq.nsmallest(3, nums))

    portfolio = [
    {'name': 'IBM', 'shares': 100, 'price': 91.1},
    {'name': 'AAPL', 'shares': 50, 'price': 543.22},
    {'name': 'FB', 'shares': 200, 'price': 21.09},
    {'name': 'HPQ', 'shares': 35, 'price': 31.75},
    {'name': 'YHOO', 'shares': 45, 'price': 16.35},
    {'name': 'ACME', 'shares': 75, 'price': 115.65}
    ]
    cheap = heapq.nsmallest(3, portfolio, key=lambda s: s['price'])
    expensive = heapq.nlargest(3, portfolio, key=lambda s: s['price'])
    print(cheap)
    print(expensive)

from collections import defaultdict
def section_5():
    d = defaultdict(list)
    d['a'].append(1)
    d['a'].append(2)
    d['b'].append(4)
    print(d)
    d = defaultdict(set)
    d['a'].add(1)
    d['a'].add(2)
    d['b'].add(4)
    print(d)

    pairs = {'a' : [1, 2, 3], 'b' : [4, 5]}
    d = {}
    for key, value in pairs.items():
        if key not in d:
            d[key] = []
        d[key].append(value)
    print(d)

    # ??defaultdict????key???????if????
    d = defaultdict(list)
    for key, value in pairs.items():
        d[key].append(value)
    print(d)

from collections import OrderedDict
import json
def section_7():
    # OrderedDict????????????
    d = OrderedDict()
    d['foo'] = 1
    d['bar'] = 2
    d['spam'] = 3
    d['grok'] = 4
    for key in d:
        print(key, d[key])
    
    str = json.dumps(d)
    print(str)

def section_8():
    prices = {
    'ACME': 45.23,
    'AAPL': 612.78,
    'IBM': 205.55,
    'HPQ': 37.20,
    'FB': 10.75
    }
    # zip()????????(key,value)????
    min_price = min(zip(prices.values(), prices.keys()))
    print(min_price)
    max_price = max(zip(prices.values(), prices.keys()))
    print(max_price)
    prices_sorted = sorted(zip(prices.values(), prices.keys()))
    print(prices_sorted)

    prices_and_names = zip(prices.values(), prices.keys())
    print(min(prices_and_names))
    # error:zip()??????????????????
    # print(max(prices_and_names)) 

    # ???????????
    min_price_value = min(prices.values())
    max_price_value = max(prices.values())
    print(min_price_value)
    print(max_price_value)

    # ??????????key
    min_price_key = min(prices, key=lambda k: prices[k])
    max_price_key = max(prices, key=lambda k: prices[k])
    print(min_price_key)
    print(max_price_key)

def section_9():
    a = {
        'x' : 1,
        'y' : 2,
        'z' : 3,
    }

    b = {
        'w' : 10,
        'x' : 11,
        'y' : 2
    }
    #dict?????????????
    common_keys = a.keys() & b.keys()
    different_keys = a.keys() - b.keys()
    union_keys = a.keys() | b.keys()
    common_keys_and_values = a.items() & b.items()
    print(common_keys)
    print(different_keys)
    print(union_keys)
    print(common_keys_and_values)

    filter_dict = {key:a[key] for key in a.keys() - {'z', 'w'}}
    print(filter_dict)

#??????
def section_10():
    def dedupe(items):
        seen = set()
        for item in items:
            if item not in seen:
                yield item
                seen.add(item)
    
    a = [1, 5, 2, 1, 9, 1, 5, 10]
    l = list(dedupe(a))
    print(l)

    def dedupe_not_hashable(items, key=None):
        seen = set()
        for item in items:
            val = item if key is None else key(item)
            if val not in seen:
                yield item
                seen.add(val)
    
    a = [ {'x':1, 'y':2}, {'x':1, 'y':3}, {'x':1, 'y':2}, {'x':2, 'y':4}]
    l = list(dedupe_not_hashable(a, key=lambda d: (d['x'], d['y'])))
    print(l)

def section_11():
    record = '....................100 .......513.25 ..........'
    cost = int(record[20:23]) * float(record[31:37])
    print(cost)
    #?????????
    SHARES = slice(20, 23)
    PRICE = slice(31, 37)
    cost = int(record[SHARES]) * float(record[PRICE])
    print(cost)

    items = [0, 1, 2, 3, 4, 5, 6]
    a = slice(2, 4)
    print(items[2:4])
    print(items[a])
    items[a] = [10,11]
    print(items)
    del items[a]
    print(items)

    #????start,stop?step????
    a = slice(5, 50, 2)
    print(a.start)

from collections import Counter
def section_12():
    words = [
        'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes',
        'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the',
        'eyes', "don't", 'look', 'around', 'the', 'eyes', 'look', 'into',
        'my', 'eyes', "you're", 'under'
    ]

    word_counts = Counter(words)
    top_three = word_counts.most_common(3)
    print(top_three)
    # Counter???????????
    morewords = ['why','are','you','not','looking','in','my','eyes']
    a = Counter(words)
    b = Counter(morewords)
    c = a + b 
    print(c)
    d = a - b
    print(d)

from operator import itemgetter
def section_13():
    rows = [
        {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003},
        {'fname': 'David', 'lname': 'Beazley', 'uid': 1002},
        {'fname': 'John', 'lname': 'Cleese', 'uid': 1001},
        {'fname': 'Big', 'lname': 'Jones', 'uid': 1004}
    ]
    rows_by_fname = sorted(rows, key=itemgetter('fname'))
    rows_by_uid = sorted(rows, key=itemgetter('uid'))
    rows_by_lfname = sorted(rows, key=itemgetter('lname','fname'))
    print(rows_by_fname)
    print(rows_by_uid)
    print(rows_by_lfname)

class User:
    def __init__(self, user_id):
        self.user_id = user_id
    def __repr__(self):
        return 'User({})'.format(self.user_id)
    
from operator import attrgetter
def section_14():
    users = [User(23), User(3), User(99)]
    print(users)
    print(sorted(users, key=lambda u: u.user_id))
    print(sorted(users, key=attrgetter('user_id')))

def main():
    section_1()    
    section_11()
    section_12()
    section_13()
    section_14()


Futtatás CMD ablakban:

java -jar jython-standalone-2.7.1.jar kl3.py





Példa3:


from javax.swing import JFrame, JMenuBar, JMenu, JMenuItem, JTextField
from java.awt import BorderLayout
from javax.swing import JOptionPane
frame = JFrame("Dialog example")
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setLocation(100,100)
frame.setSize(400,300)
frame.setLayout(BorderLayout())

def OnClick(event):
   str = event.getActionCommand()
   if str == 'Message':
      JOptionPane.showMessageDialog(frame,"this is a sample message dialog")
   if str == "Input":
      x = JOptionPane.showInputDialog(frame,"Enter your name")
      txt.setText(x)
   if str == "Confirm":
      s = JOptionPane.showConfirmDialog (frame, "Do you want to continue?")
      if s == JOptionPane.YES_OPTION:
         txt.setText("YES")
      if s == JOptionPane.NO_OPTION:
         txt.setText("NO")
      if s == JOptionPane.CANCEL_OPTION:
         txt.setText("CANCEL")

bar = JMenuBar()
frame.setJMenuBar(bar)

file = JMenu("File")
msgbtn = JMenuItem("Message",actionPerformed = OnClick)
conbtn = JMenuItem("Confirm",actionPerformed = OnClick)
inputbtn = JMenuItem("Input",actionPerformed = OnClick)
file.add(msgbtn)
file.add(conbtn)
file.add(inputbtn)
bar.add(file)
txt = JTextField(10)
frame.add(txt, BorderLayout.SOUTH)

frame.setVisible(True)






Hogyan néz ki egy ODI-s JPyton hibaüzenet?


at org.python.core.Py.IndexError(Py.java:210)
at org.python.core.SequenceIndexDelegate.checkIdxAndGetItem(SequenceIndexDelegate.java:63)
at org.python.core.PySequence.seq___getitem__(PySequence.java:305)
at org.python.core.PySequence.__getitem__(PySequence.java:301)
at org.python.pycode._pyx0.f$0(<string>:42)
at org.python.pycode._pyx0.call_function(<string>)
at org.python.core.PyTableCode.call(PyTableCode.java:165)
at org.python.core.PyCode.call(PyCode.java:18)
at org.python.core.Py.runCode(Py.java:1204)
at org.python.core.Py.exec(Py.java:1248)
at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:172)
at org.apache.bsf.engines.jython.JythonEngine.exec(JythonEngine.java:144)



KNIME-nek is van ilyene  : link


További info linkek:  jython.org 



Labirintus generálás ás megoldás python

 A labirintus generálás és megoldás módszerek: Kruskal féle Prim féle rekurzív Backtracker Aldous-Broder növekvő fa Hunt és ölő Wil...