• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Programowanie python

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
+1 głos
216 wizyt
pytanie zadane 9 stycznia 2022 w Python przez Magnikor Początkujący (390 p.)
zamknięte 10 stycznia 2022 przez Magnikor

Zdefiniuj funkcję, która będzie obliczała energię fotonu w zależności od długości fali L: Gdzie h – stała Planka C – prędkość światła. Wykorzystaj tę funkcję do obliczenia E dla L z zakresu 10^-12 do 10^3. Następnie przedstaw zależność E(L) w formie wykresu.

L = [10**-12,10**-11,10**-10,10**-9,10**-8,10**-7,10**-6,10**-5,10**-4,10**-3,10**-2,10**-1,10**1,10**2,10**3]

def energia_fotonu(h,c):
    for l in L:
     E = (h+c)/l
    return E
print(energia_fotonu(6.62606876*10**34,299792458))

Ktoś podpowie jak się za to zabrać?

komentarz zamknięcia: Znaleziono rozwiazanie
komentarz 9 stycznia 2022 przez Oscar Nałogowiec (29,050 p.)
Stała Plancka jest malutka i jej wykładnik jest ujemny - masz tam zły znak. W ogóle to takie liczby zapisuje się w postaci naukowej, nie trzeba mnożyć.

Parametry funkcji raczej nie służą do przekazywania stałych.
komentarz 9 stycznia 2022 przez Nelson89 Dyskutant (7,720 p.)

Dokładnie, jakbyś chciał zapisać w Pythonie liczbę w postaci naukowej to wystarczy zapis:

6.62606876e-34

A gdybyś chciał w tej postaci wyświetlić liczbę, to możesz to zrobić tak:

print(f'{liczba:e}')

 

1 odpowiedź

+2 głosów
odpowiedź 9 stycznia 2022 przez Nelson89 Dyskutant (7,720 p.)
wybrane 10 stycznia 2022 przez Magnikor
 
Najlepsza

Cześć,

Twoja funkcja jest błędna, bo zwraca wynik dla ostatniego elementu z tablicy L. Tą pętle wyrzuciłbym poza funkcje, a samej funkcji obliczałbym zależność podaną w zadaniu. Czyli:

def energia_fotonu(l, h=6.62606876*10**34,c=299792458):
    E = (h+c)/l
    return E

Jako, że wartości h i c nie będą zmieniane, to możesz je zapisać jako argumenty z wartościami domyślnymi w samej funkcji, jak będziesz ją wywoływać, to nie będziesz musiał podawać tych wartości.

Teraz jedyne co musisz zrobić, to stworzyć listę na wyniki, stworzyć pętle, która wywoła funkcje energia_fotonu z odpowiednią wartością l, rezultat funkcji zapisać na liście z wynikami.

W Pythonie do tworzenia wykresów, diagramów, itp. to najlepiej użyć bibliotekę matplotlib. Na stronie tej biblioteki znajdziesz informacje jak użyc.

Pozdrawiam,

Nelson

 

komentarz 9 stycznia 2022 przez Magnikor Początkujący (390 p.)
Dzięki za pomoc, a wiesz może jak ta pętla będzie wyglądać?
1
komentarz 9 stycznia 2022 przez Nelson89 Dyskutant (7,720 p.)

Przykładowo, tak bym to zrobił, gdybym chciał mieć wyniki funkcji, która zwraca spotęgowaną liczbę:

def funkcja(liczba):
    return liczba ** 2

wyniki = list()
zakres_wartosci = [1, 2, 3]

# iteracja po elementach listy zakres_wartosci
for l in zakres_wartosci:
    w = funkcja(l)
    wyniki.append(w)

# Dalsza część programu wyświetlająca wyniki na wykresie

 

Podobne pytania

+1 głos
2 odpowiedzi 267 wizyt
pytanie zadane 24 października 2021 w Python przez Magnikor Początkujący (390 p.)
0 głosów
0 odpowiedzi 674 wizyt
pytanie zadane 2 września 2021 w Python przez Rafael Ale Nie Santi Nowicjusz (140 p.)
+1 głos
1 odpowiedź 167 wizyt
pytanie zadane 12 czerwca 2021 w Python przez Mateusz85 Początkujący (370 p.)

91,847 zapytań

140,523 odpowiedzi

317,029 komentarzy

61,170 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...