Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: memnon.rhodes 13 Července 2012, 20:09:46
-
Salve,
potrebujem poradiť pri tvorbe jedného programu. Program slúži na výpočet určitého integrálu lichobežníkovou metódou, problém nastane v tedy keď je potrebné definovať funkciu. Zatiaľ som to vyriešil tak, že je potrebné do vstupu zadať:
lambda x:x**2
kde x**2 je príslušná funkcia na integrovanie. Chcem to naprogramovať tak, že zadám len x**2.
Program vypadá takto:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "Lichobežníkova metoda"
from math import *
def lich(f,a,b,n):
h = (b-a)/n
s = (f(a)+f(b))*0.5
for i in range(1,n):
s += f(a+i*h)
print h*s
fun = input ("Zadaj funkciu: ")
fa = input("Zadaj a: ")
fb = input("Zadaj b: ")
fn = 20
print lich(fun,fa,fb,fn)
Za dobrú radu ĎAKUJEM :)
-
fcn = eval('lambda x: ' + raw_input("> "))
-
fcn = eval('lambda x: ' + raw_input("> "))
Super ĎAKUJEM :)
A čo eval znamená??
Teraz mám zas iný problém :) po skončený výpočtu mi vypíše None :(
Lichobežníkova metoda
Zadaj funkciu: x**2
Zadaj a: 0
Zadaj b: 5.0
41.71875
None
A teraz ma ešte napadla jedna myšlienka ako by som mal postupovať keby som chcel výpočet opakovať. Aby sa na konci výpočtu program opýtal či chcem vložiť ďalšiu funkciu alebo ukončiť program. :)
-
eval vyhodnotí řetězec v parametru jako příkaz pythonu.
Máš tam dvakrát print, nejdřív tiskeš ve funkci (výsledek příkladu) a pak výsledek funkce (None).
-
eval vyhodnotí řetězec v parametru jako příkaz pythonu.
Máš tam dvakrát print, nejdřív tiskeš ve funkci (výsledek příkladu) a pak výsledek funkce (None).
Ahá :) ďakujem :).
Na ten jeden print som úplne zabudol :)
-
A teraz ma ešte napadla jedna myšlienka ako by som mal postupovať keby som chcel výpočet opakovať. Aby sa na konci výpočtu program opýtal či chcem vložiť ďalšiu funkciu alebo ukončiť program. :)
přibližně takhle:
while True:
vypocet()
ans=raw_input("Continue?")
if not ans=="Yes":
break
eval vyhodnotí řetězec v parametru jako příkaz pythonu.
Máš tam dvakrát print, nejdřív tiskeš ve funkci (výsledek příkladu) a pak výsledek funkce (None).
Ahá :) ďakujem :).
Na ten jeden print som úplne zabudol :)
Tak doufám, že v rámci dobrých programátorských mravů jsi zrušil ten uvnitř funkce ;)
-
Super, ďakujem. Len zatiaľ nechápem ten prví riadok while True:, viem čo znamená príkaz while ale prečo tam je aj True?
-
While běží dokud je splněna podmínka, takže to True říká že podmínka je splněna ;D
-
While běží dokud je splněna podmínka, takže to True říká že podmínka je splněna ;D
hezky napsáno :D
jen dodám (pro tazatele ;) ) jinými slovy, smyčka běží neustále dokola, dokud nenarazí na break... :)
-
Ešte mám jednu otázku ako postupovať aby som si vytvoril grafické rozhranie.
Našiel som tento návod: http://www.freenetpages.co.uk/hp/alan.gauld/czech/ - Programování grafického uživatelského rozhraní s Tkinter
ale tam som nenašiel ako dostať čísla z grafického rozhrania do programu...... :(
-
O GUI s Tkinter se zmiňuje i programujte.com. 11 (http://programujte.com/clanek/2005100902-python-11-lekce/) 12 (http://programujte.com/clanek/2005102801-python-12-lekce/)