Informatika2-2014/Gyakorlat02

A MathWikiből
(Változatok közti eltérés)
1. sor: 1. sor:
== Elmélet - Adattípusok ==
+
== Elmélet==
 +
 
 +
=== Adattípusok ===
 
*None
 
*None
 
*numerikus
 
*numerikus
41. sor: 43. sor:
 
>>> A ^ B
 
>>> A ^ B
 
set([1, 4])
 
set([1, 4])
 +
=== I/O műveletek ===
 +
==== Output ====
 +
 +
Output már szerepelt a '''print''' kulcsszóval. Ez ugye bármilyen beépített típust képes volt kiírni, de ha formázni szeretnénk a kiírást akkor több dolog kell.
 +
 +
* '''str()''' - string-et csinál más típusú objektumból, '''print valtozo''' és '''print str(valtozo)''' ekvivalens
 +
* '''repr()''' - nagyon hasonló a '''str()'''-hez, de kicsit többet mutat, próbáljátok ki: '''print str(2.5656454534543654)''' és '''print repr(2.5656454534543654)'''
 +
 +
* A stringek '''format()''' metódusával a C '''printf''' függvényéhez kicsit hasonlóan kezelhetjük a stringeket, pl:
 +
 +
<python>
 +
print 'Volt egyszer egy {}, elment a {}.'.format('kiskutya', 'vasarba')
 +
</python>
 +
* A kapcsos zárójeleket lecseréli a '''format'''-nak adott stringekkel.
 +
* A kapcsos zárójelekbe írhatunk indexeket is, pl:
 +
<python>
 +
print 'Volt egyszer egy {1}, elment a {0}.'.format('vasarba', 'kiskutya')
 +
</python>
 +
 +
* Az indexek után :-ot téve további formázást adhatunk a string-nek, pl:
 +
<python>
 +
print '{0:15} ==> {1:15} = {2:15f}'.format('i = sqrt(-1)', 'i ** i valos', 0.207879)
 +
</python>
 +
* Így legalább 15 karakter méretet foglalnak el a kiírásban az adott részek
 +
 +
 +
==== Input ====
 +
 +
Input még nem szerepelt, két függvény van amit meg fogunk nézni:
 +
 +
* '''input()''' - Kiírja a neki adott string-et, és vár egy bementet, a visszatérési értéke a bemenet automatikusan értelmezve, pl:
 +
<python>
 +
m = input("Magassag centimeterben:")
 +
print "Magassag meterben:", m / 100.0
 +
</python>
 +
 +
* A következõ kód viszont hibát fog okozni:
 +
<python>
 +
n = input("Neved:")
 +
print "Hello", n
 +
</python>
 +
* Ez azért van, mert az input azonnal értelmezi a beadott adatot, és a string-eket nem tudja felismerni, õ ekkor változónévre gondol.
 +
 +
* '''raw_input()''' - Kiírja a neki adott string-et, és vár egy bementet, a visszatérési értéke a bemenet stringként, pl:
 +
<python>
 +
n = raw_input("Neved:")
 +
print "Hello", n
 +
</python>
 +
 +
==== File kezelés ====
 +
 +
A file kezelés annyiban hasonlít a C-hez, hogy írásra vagy olvasásra kell megnyitnunk a file-okat, de sokkal hozzáférhetõbb. Függvények:
 +
 +
* '''open(file_neve, megnyitasai_mod)''' - megnyit egy file-t, elsõ paramétere a file neve, második a megnyitási mód: 'w', 'a', 'r' a szokásosak. Pl:
 +
<python>
 +
f = open('test.txt', 'w')
 +
</python>
 +
 +
* '''write()''' - metódusa a file objektumoknak (az elõzõ példában '''f''' file objektum), a neki adott string-et a file-ba írja. Pl:
 +
<python>
 +
f.write("Which witch watches which witch's watches?\nKovetkezo sor\n")
 +
</python>
 +
 +
* '''read()''' - metódusa a file objektumoknak, beolvassa az egész file-t egy (potenciálisan) jó nagy string-be. Pl:
 +
<python>
 +
f = open('test.txt', 'r')
 +
s = f.read()
 +
print s
 +
</python>
 +
 +
* '''readline()''' - metódusa a file objektumoknak, beolvas egy sort a file-ból, az újsor jelet is beolvassa, az üres sorokat '\n'-ként olvassa be. Ha a file végére ért üres sort olvas be. Pl:
 +
<python>
 +
line = f.readline()
 +
print line
 +
</python>
 +
 +
* '''readlines()''' - metódusa a file objektumoknak, beolvassa az összes sort mint listát. Pl:
 +
<python>
 +
lines = f.readlines()
 +
for line in lines:
 +
    print line
 +
</python>
 +
 +
* Megjegyzés: a file objektumok iterálhatóak, azaz az elõzõ példa ekvivalens ezzel:
 +
<python>
 +
for line in f:
 +
    print line
 +
</python>
 +
 +
* '''close()''' - metódusa a file objektumoknak, bezárja a file-t. Pl:
 +
<python>
 +
f.close()
 +
</python>
 +
  
 
</python>
 
</python>
 
== Feladatok ==
 
== Feladatok ==
 +
=== ===

A lap 2014. február 17., 09:13-kori változata

Tartalomjegyzék

Elmélet

Adattípusok

  • None
  • numerikus
  • egész
  • lebegőpontos
  • (complex)
  • long
  • boolean
  • string
  • tuple
  x = (1,2,3,4)
  • lista
  x = [1, 2, 3, 4]
  x.append(5)
  len(x)
  x[1] = x[2]
  • szótár
A = {}
phonebook = {'Andrew Parson':8806336, 'Emily Everett':6784346, 'Peter Power':7658344, 'Lewis Lame':1122345}
for key in phonebook:
  ...
if key in phonebook:
  print phonebook[key]
...
  • (halmaz)
>>> A=set([1,2,3])
>>> B=set([2,3,4])
>>> A | B
set([1, 2, 3, 4])
>>> A & B
set([2, 3])
>>> A - B
set([1])
>>> A ^ B
set([1, 4])
=== I/O műveletek ===
==== Output ====
 
Output már szerepelt a '''print''' kulcsszóval. Ez ugye bármilyen beépített típust képes volt kiírni, de ha formázni szeretnénk a kiírást akkor több dolog kell.
 
* '''str()''' - string-et csinál más típusú objektumból, '''print valtozo''' és '''print str(valtozo)''' ekvivalens
* '''repr()''' - nagyon hasonló a '''str()'''-hez, de kicsit többet mutat, próbáljátok ki: '''print str(2.5656454534543654)''' és '''print repr(2.5656454534543654)'''
 
* A stringek '''format()''' metódusával a C '''printf''' függvényéhez kicsit hasonlóan kezelhetjük a stringeket, pl:
 
<python>
print 'Volt egyszer egy {}, elment a {}.'.format('kiskutya', 'vasarba')
  • A kapcsos zárójeleket lecseréli a format-nak adott stringekkel.
  • A kapcsos zárójelekbe írhatunk indexeket is, pl:
print 'Volt egyszer egy {1}, elment a {0}.'.format('vasarba', 'kiskutya')
  • Az indexek után :-ot téve további formázást adhatunk a string-nek, pl:
print '{0:15} ==> {1:15} = {2:15f}'.format('i = sqrt(-1)', 'i ** i valos', 0.207879)
  • Így legalább 15 karakter méretet foglalnak el a kiírásban az adott részek


Input

Input még nem szerepelt, két függvény van amit meg fogunk nézni:

  • input() - Kiírja a neki adott string-et, és vár egy bementet, a visszatérési értéke a bemenet automatikusan értelmezve, pl:
m = input("Magassag centimeterben:")
print "Magassag meterben:", m / 100.0
  • A következõ kód viszont hibát fog okozni:
n = input("Neved:")
print "Hello", n
  • Ez azért van, mert az input azonnal értelmezi a beadott adatot, és a string-eket nem tudja felismerni, õ ekkor változónévre gondol.
  • raw_input() - Kiírja a neki adott string-et, és vár egy bementet, a visszatérési értéke a bemenet stringként, pl:
n = raw_input("Neved:")
print "Hello", n

File kezelés

A file kezelés annyiban hasonlít a C-hez, hogy írásra vagy olvasásra kell megnyitnunk a file-okat, de sokkal hozzáférhetõbb. Függvények:

  • open(file_neve, megnyitasai_mod) - megnyit egy file-t, elsõ paramétere a file neve, második a megnyitási mód: 'w', 'a', 'r' a szokásosak. Pl:
f = open('test.txt', 'w')
  • write() - metódusa a file objektumoknak (az elõzõ példában f file objektum), a neki adott string-et a file-ba írja. Pl:
f.write("Which witch watches which witch's watches?\nKovetkezo sor\n")
  • read() - metódusa a file objektumoknak, beolvassa az egész file-t egy (potenciálisan) jó nagy string-be. Pl:
f = open('test.txt', 'r')
s = f.read()
print s
  • readline() - metódusa a file objektumoknak, beolvas egy sort a file-ból, az újsor jelet is beolvassa, az üres sorokat '\n'-ként olvassa be. Ha a file végére ért üres sort olvas be. Pl:
line = f.readline()
print line
  • readlines() - metódusa a file objektumoknak, beolvassa az összes sort mint listát. Pl:
lines = f.readlines()
for line in lines:
    print line
  • Megjegyzés: a file objektumok iterálhatóak, azaz az elõzõ példa ekvivalens ezzel:
for line in f:
    print line
  • close() - metódusa a file objektumoknak, bezárja a file-t. Pl:
f.close()


</python>

Feladatok

Személyes eszközök