» »

Razlika med oklepaji in vprašanja o sintaksi

Razlika med oklepaji in vprašanja o sintaksi

Rias Gremory ::

Živjo,

1. Zdaj sem pri tem tutorialu:

In me zanima kakšna je razlika med oglatimi oklepaji in navadnimi v Pythonu.
Primer:
druzina = ('sestra','brat','oce','mami')

druzina = ['sestra','brat','oce','mami']

Torej je še kakšna razlika med oklepaji, ki se jo kasneje uporablja?


2. Ali se sintakse naučim skozi programiranje ali je za to potrebno še kaj drugega?
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

morbo ::

V prvem primeru (z navadnimi oklepaji) definiraš "tuple", ki je ne-spremenljiv (immutable) seznam. Z oglatimi oklepaji pa definiraš "list", ki pa je spremenljiv seznam, torej mu lahko dodajaš / odvzemaš / spreminjaš vnose. Večinoma boš v kodi uporabljal list. Podrobnejša razlaga

Sintakse pa bi se bilo fanj naučit na začetku :) "skozi programiranje" se boš učil logike.

Gandalfar ::

1)

Tuple .. torej (1,2) , se ne da spreminjat. Ce jih hoces spremenit jih moras 'skopirat' v drug objekt. To ima za posledico, da so bistveno hitrejsi od seznamov (list). Ti zaenkrat vedno uporabljaj list pa ne bo hudega :)


>>> t = (1,2)
>>> t.append(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> l = [1,2]
>>> l.append(3)
>>> l
[1, 2, 3]


2) Pomojem lahko tudi kar sproti. Saj sintaksa podpira logiko :)

Rias Gremory ::

Hvala za odgovora.

@Gandalfar
Zdaj že bolj razumem.

Tudi za "množenje" številk so seznami uporabni sem ugotovil.
Npr.:
(21)*10 mi bo še zmeraj izpisalo 210.
[21]*10 mi bo pa 10-krat izpisal številko 21.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Gandalfar ::

Hehe Linksys.

(21) ni tuple :) Python poracuna oklepaj in dobis cifro. Ce hoces forcat tuple, daj vejico zadaj.

>>> (21)
21
>>> [21]
[21]
>>> [21]*10
[21, 21, 21, 21, 21, 21, 21, 21, 21, 21]
>>> (21,)
(21,)
>>> (21,)*10
(21, 21, 21, 21, 21, 21, 21, 21, 21, 21)

Rias Gremory ::

Hvala za odgovor.

Še nekaj, to sem najdel na googlu:
A list can store a sequence of objects in a certain order such that you can index into the list, or iterate over the list.

In, ker velikokrat slišim besedo object v "programskih" besedilih ne vem točno kaj to sploh je.
Torej kaj je objekt?

EDIT: Zdaj malo berem na wikipediji, kaj je to objekt.
Torej tuple (mimogrede, ali je slovenski izraz za to besedo?), list itd. so objekti?
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Zgodovina sprememb…

element ::

Predlagam, da greš čez tole: learnpythonthehardway. Vse kar si vprašal je razloženo na enostaven način in precej hitro se spoznaš z vsemi pomebnimi koncepti, ki jih boš rabu pri programiranju.

In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure. (With the later introduction of object-oriented programming the same word, "object", refers to a particular instance of a class)

Wiki: Object (computer science)

fiction ::

Tuple = (n-)terka
List = seznam

Rias Gremory ::

@element
Hvala za ta link. Sem že pri 5 vaji in mi je zaenkrat v redu. Če pa česa ne bom vedel bom pa vprašal vas znalce. :D
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Rias Gremory ::

Ojoj, pa sem prišel do % operatorja. ;((
Zdaj morm še pogruntat kako dela.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

morbo ::

% vrne celoštevilski ostanek pri deljenju:

>>> 3 % 3
0
>>> 4 % 3
1


Recimo da hočeš iz sezname izluščit le tista števila ki so deljiva s 3 (torej je ostanek pri deljenju 0):

>>> l = [s for s in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) if s % 3 == 0]
>>> l
[3, 6, 9]

Rias Gremory ::

Oh, oprosti sem se narobe izrazil, mislil sem: http://docs.python.org/library/stdtypes...
Npr.: %d, %s, %r itd.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Gandalfar ::

Osebno, dam vedno "Tole je pa %s, in se %s" % (43,'foo') in se ne ukvarjam s temi %f in %d, ce mi ni ravno treba formatirat decimalk.

Rias Gremory ::

Prvo se moram še naučiti za kaj točno se vse uporabljajo in kako jih moram pisati. :|
No ja, upam, da bom hitro napredoval.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Gandalfar ::

Hmm, na hitro:

Recimo da imas:


>>> podatki = {'skupaj':14, 'moski':3, 'zenske':11}
>>> print  "Na izlet se je prijavilo " + str(podatki['skupaj']) + " od tega je fantov: "+str(podatki['moski']) + " in zensk "+ str(podatki['zenske'])
Na izlet se je prijavilo 14 od tega je fantov: 3 in zensk 11

# nepregledno uglavnem
# lahko pa reces tudi 


>>> print "Na izlet se je prijavilo %s ucencov, od tega %s moskih in %s zensk" % (podatki['skupaj'], podatki['moski'], podatki['zenske'])
Na izlet se je prijavilo 14 ucencov, od tega 3 moskih in 11 zensk

# in je ze malo boljse
# ce imas python2.7 lahko tudi reces:


>>> print "Na izlet se je prijavilo {skupaj}, od tega {moski} moskih in {zenske} zensk".format(skupaj=podatki['skupaj'], moski=podatki['moski'], zenske=podatki['zenske'])
Na izlet se je prijavilo 14, od tega 3 moskih in 11 zensk


# kar bos cez pol leta morda se znal za sabo popravit ;)

Zgodovina sprememb…

Rias Gremory ::

Hvala ti. :)
Sploh nisem vedel, da lahko tako določim vrednosti:
podatki = {'skupaj':14, 'moski':3, 'zenske':11}

Kolikor vem je to "slovar"?
Bom jutri vse preštudiral.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Gandalfar ::

Tole je dictionary ja.

Rias Gremory ::

Vprašal bi če je bolje, da se naučim to ali to?
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Gandalfar ::

Oboje rabis znat prepoznat. Itak se ne ucis vseh % parameterov na pamet. Toliko da znas izpisat cifro, ki ima zada 3 decimalke. Ostali si pa pogledas ko rabis.

Rias Gremory ::

Okej.

Se mi bo poznalo če si bom razširil angleški besedni zaklad, ker kakšnih stvari (no kar večino ;(() v Python dokumentaciji ne razumem?
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Gandalfar ::

kar vprasaj. Pa upam, da zraven gradis tudi kaksen mali programcek za sebe, ker linearno se ucit programski jezik je bedno :)

donkihod ::

http://codingbat.com/python

Nekaj Python nalog za vajo.

sajko ::

http://code.google.com/edu/languages/go...

Poleg teksta, videa tudi naloge.

Rias Gremory ::

Zdaj sem spet začel z Pythonom in bi rad delil povezavo z vami:
http://openbookproject.net/thinkcs/pyth... - kolikor sem bral do zdaj je zelo uporabna za tiste prave začetnike in tiste, ki so novi z pythonom.

Lp
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

Rias Gremory ::

Zanima me če je možno uporabiti \n z presledkom brez, da imaš potem presledek ko zaženeš program.

Primer:
print "To \nje \ntest!"

rad pa bi:
print "To \n je \n test!"
ampak, da pri izpisu ne bo presledka za \n. Saj ni nek problem, le zanima me če je možno.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.

morbo ::

Ne da bi jaz vedel. Imaš pa tudi drugačne rešitve, če se ti zdi vstavljanje \n v niz nepregledno:

n = "to je test"
print("\n".join(n.split()))

ali
n = "to je test"
print(n.replace(" ", "\n"))

klemen93 ::

str = "To \n je \n test!"
print str.replace("\n ","\n")


EDIT: vidim da me je že morbo prehitel :)

Zgodovina sprememb…

  • spremenil: klemen93 ()

Rias Gremory ::

Hvala obema.
Mirno gledamo, kako naš svet propada,
saj za časa našega življenja ne bo popolnoma propadel.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python

Oddelek: Programiranje
203037 (1723) d_DJ
»

Verjetnost pri kroglicah

Oddelek: Šola
61605 (1302) Math Freak
»

WiFi Woes ... 2 x Linux : Belkin + LinkSys

Oddelek: Omrežja in internet
301574 (1059) Icematxyz
»

c++ two dimensional array v classu

Oddelek: Programiranje
111397 (1200) Senitel
»

Python, prosim za pomoc pri programiranju (strani: 1 2 3 )

Oddelek: Programiranje
10413977 (10079) lenika

Več podobnih tem