Vydání 13.04, 12.10, 12.04 > Programování pro GNU/Linux
Python - definicia funkcie
memnon.rhodes:
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ť:
--- Kód: ---lambda x:x**2
--- Konec kódu ---
kde x**2 je príslušná funkcia na integrovanie. Chcem to naprogramovať tak, že zadám len x**2.
Program vypadá takto:
--- Kód: ---#!/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)
--- Konec kódu ---
Za dobrú radu ĎAKUJEM :)
Yontalcar:
--- Kód: ---fcn = eval('lambda x: ' + raw_input("> "))
--- Konec kódu ---
memnon.rhodes:
--- Citace: Yontalcar 13 Červenec 2012, 23:07:15 ---
--- Kód: ---fcn = eval('lambda x: ' + raw_input("> "))
--- Konec kódu ---
--- Konce citace ---
Super ĎAKUJEM :)
A čo eval znamená??
Teraz mám zas iný problém :) po skončený výpočtu mi vypíše None :(
--- Kód: ---Lichobežníkova metoda
Zadaj funkciu: x**2
Zadaj a: 0
Zadaj b: 5.0
41.71875
None
--- Konec kódu ---
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. :)
pacholik:
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).
memnon.rhodes:
--- Citace: pacholik 13 Červenec 2012, 23:25:39 ---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).
--- Konce citace ---
Ahá :) ďakujem :).
Na ten jeden print som úplne zabudol :)
Navigace
[0] Seznam témat
[#] Další strana
Přejít na plnou verzi