Uhhh che delusione.... :-((
Antonio G. De Padova
ga@agdp.de
Dom 4 Giu 2006 00:28:13 CEST
Am Samstag, 3. Juni 2006 17:26 schrieb Emanuele Rocca:
> * Antonio G. De Padova <ga@agdp.de>, [2006-06-02 20:30 +0200]:
> > piccolo benchmark fatto in casa lì per lì....
> >
> > Incremento di 1, fatto mille volte, su 200 caselle visionate
> > contemporaneamente sul display (casella entry) in python :
>
> Non ho capito bene cosa hai fatto. Puoi postare il codice?
>
> ciao,
> ema
Certamente. Eccolo.
(L'ho fatto fare da un mio amico che mi sta insegnando il python.
Io non ci capisco ancora una sega. Sono principiante).
#! /usr/bin/python
# -*- coding: iso-8859-15 -*-
# DisplayDemo8 - HaJo Gurt - 2006-05-31
# 2006-05-30 : erste Version
# 2006-05-31 : variables Bildschirm-Layout
# 2006-06-01 : Zeitmessung
""" Demo/Benchmark: Bildschirmformular mit vielen Ausgabefeldern """
import time
from random import random
from Tkinter import *
root = Tk()
root.title("Display-Demo")
f1 = Frame(); f1.pack() # Frame für Titel
f2 = Frame(); f2.pack() # Felder
f3 = Frame(); f3.pack() # Buttons
labelT = Label(f1, text="Anzeige-Demo", font="Helv 10 bold").pack()
def Inc() :
""" Werte in den Feldern erhöhen bzw. neu berechnen + anzeigen """
global Iter, Wert, Feld
Iter += 1
Feld[0].delete( 0, END ) ## Erstes Feld als Zähler
Feld[0].insert( 0, Iter )
for i in range(1, Anz) :
#Wert[i] += 1.00001 ## !! Formel zur Berechnung
Wert[i] = random() ## !! neuer Werte in den Feldern
Feld[i].delete( 0, END )
Feld[i].insert( 0, str( Wert[i] ) )
def IncX( N=1 ) :
""" Mehrmals die Feldinhalte erhöhen, Zeit messen """
Start = time.clock()
for i in range(N) :
Inc()
End = time.clock()
print "%4d Updates * %d Felder: %8.4f s" % (N, Anz, End-Start)
def Inc1() : IncX()
def Inc10() : IncX(10)
def Inc100() : IncX(100)
def Inc1000() : IncX(1000)
def InitWerte() :
""" Startwerte in Felder eintragen, Anzeige aktualisieren """
global Iter, Wert, Feld
Iter = 0
for i in range(Anz) :
Wert[i] = i ## !! Startwert
Feld[i].delete( 0, END )
Feld[i].insert( 0, str( Wert[i] ) )
Anz = 200
Feld = [] # Liste für die Anzeigefelder
Wert = [] # Liste für die Werte
""" Bildschirm-Layout: Anzeigefelder mit Beschriftung, Werte-Liste
erzeugen """
for i in range(Anz) :
R = i % 25 # 25 Felder pro Spalte
C = i // 25 * 2
labelF = Label(f2, text=i).grid(row=R, column=C)
Wert.append(0) # DummyWert
entryF = Entry(f2, width=14)
entryF.grid(row=R, column=C+1)
Feld.append(entryF)
InitWerte()
butInit = Button( f3, text="Init", command=InitWerte )
butInc1 = Button( f3, text="Inc1", command=Inc1, bg="green" )
butInc10 = Button( f3, text="Inc10", command=Inc10 )
butInc100 = Button( f3, text="Inc100", command=Inc100 )
butInc1000 = Button( f3, text="Inc1000", command=Inc1000 )
butQuit = Button( f3, text="Quit", command=root.quit, bg="red",
fg="white" )
butInit.pack( side="left", padx=20, pady=4 )
butInc1.pack( side="left", padx= 4, pady=4 )
butInc10.pack( side="left", padx= 4, pady=4 )
butInc100.pack( side="left", padx= 4, pady=4 )
butInc1000.pack( side="left", padx= 4, pady=4 )
butQuit.pack( side="left", padx=20, pady=4 )
root.mainloop()
#.
Maggiori informazioni sulla lista
glug