Delo s tekstovnimi datotekami v Pythonu

Pisanje kode v Worpressu dosežemo z vtičnikom, ki kodo obda z značkama

<pre class="brush:py">     
koda
</pre>

Prej sem poskušal <pre>  in </pre>  iz HTML4.0, a ni ohranjalo Pythonovega zamikanja ne vrstične poravnave.  Tole pa dela brezhibno, kaže, da ima vsak jezik svoj class, ki ga je treba navesti.  Morda lahko to naredimo tudi ročno, brez vtičnika?

Branje tekstovne datoteke po vrsticah :

f=open("C:\Documents and Settings\uporabnik\Desktop\Racunaj.txt","r")
for line in f:
    print line
f.close()

Zapis  vrstice v datoteko – prejšnja vsebina se zbriše

f=open("C:\Documents and Settings\uporabnik\Desktop\Racunaj.txt","w")
line=str(now)+'  '+ime+' '+str(k)+' poskusov do '+repr(str(a)).rjust(2)+' rezultat '+repr(str(n)).rjust(3)+" TOČK:"+repr(str(a*n)).rjust(4)
f.write(line)
f.close()

Dodajanje vrstice na koncu v že obstoječo datoteko – prejšnja vsebina ostane nespremenjena:

f=open("C:\Documents and Settings\uporabnik\Desktop\Racunaj.txt","a")
line=str(now)+'  '+ime+' '+str(k)+' poskusov do '+repr(str(a)).rjust(2)+' rezultat '+repr(str(n)).rjust(3)+" TOČK:"+repr(str(a*n)).rjust(4)
f.write(line)
f.close()

Sangaku(5)

Pa še eden od sangakujev – to so pravzaprav geometrijske uganke, ki so dobile ime po slikarijah na lesu, ki so jih ustvarili japonski umetniki v obdobju Edo – od začetka 16. stol. do sredine 19. stol.  To je obdobje samoizolacije Japonske od preostalega sveta in v tem času so se razvili tudi haikuji – kratke, običajno tri vrstične pesmi, prva ima 5, druga 7 in zadnja 5 zlogov. Mojster haikuja je bil Matsuo Bašo, tukaj je en njegov (po mojem prevodu iz angleščine):

Leto za letom
na opičjih obrazih
opičje maske.
(Matsuo Bašo)

A vrnimo se k sangakujem:

 

Kolikokrat večji je polmer katerega od krogov na obodu od polmera manjšega kroga?

Sangaku(4)

Četrta japonska uganka je zelo lepa, a morda malo težja – ali pa tudi ne?

Določite polmer katerega od skladnih krogov, če je stranica kvadrata enaka 1. Določi tudi kot med poševnico skozi spodnje levo oglišče in osnovnico kvadrata.

PTR v srednji šoli(12)

Zadnjič smo izpeljali izraz kinetično energijo v PTR, dobili smo

[math]W_k=m_oc^2(\gamma-1).[/math]

Pri majhnih hitrostih mora ta formula preiti v običajno formulo za kinetično energijo, katero poznamo že iz osnovne šole. Poglejmo, kako.

[math]W_k=m_oc^2(\gamma-1)=m_oc^2\left(\frac{1}{\sqrt{1-\frac{v^2}{c^2}}}-1\right)=m_oc^2\left(\left(1-\frac{v^2}{c^2}\right)^{-\frac{1}{2}}-1\right)[/math]

Koren razvijemo v binomsko vrsto. Kako? Spomnimo se na binomski izrek, ki pove, kako izračunamo potenco dvočlenika

[math](a+b)^n={n \choose 0} a^nb^0+{n \choose 1} a^{n-1}b^1+{n \choose 2} a^{n-2}b^2+\dots {n \choose n} a^ob^n[/math]

V prejšnjih primerih je bil n naravno število in izraz na desni veččlenik. Tokrat pa imamo v eksponentu -1/2 , zato bo členov neskončno – binomska vrsta. A potrebujemo le nekaj členov. Izračunajmo nekaj začetnih binomskih simbolov (spomnimo se tudi na njihove lastnosti)

[math]{-\frac{1}{2} \choose 0}=1,~~{-\frac{1}{2} \choose 1}=-\frac{1}{2},~~{-\frac{1}{2} \choose 2}=\frac{-\frac{1}{2}\left( -\frac{3}{2}\right)}{1\cdot 2}=\frac{3}{8},\dots[/math]

Sestavimo torej v zgornjem izrazu  vrsto

[math]W_k=m_oc^2(\gamma-1)=m_oc^2\left(1+\frac{1v^2}{2c^2}+\frac{3v^4}{8c^4}+\dots -1\right)[/math]

Matematik je svoje delo opravil, sedaj pa nastopi fizik. Ker je

[math]v<<c,[/math]

lahko v napisani vrsti vse člene od vključno tretjega naprej zanemarimo, saj so premajhni, da bi kaj prispevali.  Prvi in zadnji člen v oklepaju se še odštejeta, tako da ostane samo drugi. Dobimo torej

[math]W_k=\frac{m_ov^2}{2},[/math]

kar smo tudi pričakovali.

konec