Avatar
Michal Žůrek (misaz):

ahoj učím se python, jenže jsme narazil na problém. Toto je celý můj zdrojový kód:

print "Hello World"

jenže ups, je v tom chyba :D chyba je na řádku 1 :D a je to chyba SyntaxError: invalid syntyx (viz. obr)

Poraďte mi kde je chyba :D on ten řádek je na mě staršně složitý :D

Odpovědět  -2 24.7.2013 21:22
Nesnáším {}, proto se jim vyhýbám.
Avatar
Homo
Člen
Avatar
Nahoru Odpovědět  +2 24.7.2013 21:24
1010011 1000101 1011000
Avatar
Paradise
Redaktor
Avatar
Paradise:

No chyba nebude v tom řádku. Já jsem Python po 4 hodinách použitelného IDE vzdal.

 
Nahoru Odpovědět  -9 24.7.2013 21:25
Avatar
Odpovídá na Homo
Michal Žůrek (misaz):

dik, zjistil jsem že on ten tutorial co jsem si našel je asi pro starší python. :D

Nahoru Odpovědět 24.7.2013 21:26
Nesnáším {}, proto se jim vyhýbám.
Avatar
Homo
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
Homo:

:-)
od pythonu 3.0 je print delana jako funkce

Nahoru Odpovědět 24.7.2013 21:27
1010011 1000101 1011000
Avatar
Paradise
Redaktor
Avatar
Odpovídá na Homo
Paradise:

Aha, no alespoň vím, že nemám špatnou paměť :D

 
Nahoru Odpovědět 24.7.2013 21:28
Avatar
David Hynek
Redaktor
Avatar
David Hynek:

v čem a jak spouštíte Python??

Nahoru Odpovědět 24.7.2013 21:30
Čím víc vím, tím víc věcí nevím.
Avatar
Inoue Yūki
Redaktor
Avatar
Odpovídá na David Hynek
Inoue Yūki:

Myslíš dokončenou, nebo vyvíjenou aplikaci? Já vyvíjenou v IDLE, dokončenou převádím na exe.

Nahoru Odpovědět 24.7.2013 21:32
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Hynek
Kit:

Většinou z příkazového řádku

python skript.py

z editoru Vim při testování

<F9>

nebo prostým kliknutím na skript v GUI.

Kompilaci dělám tak, že z Pythonu napíšu

import skript
Editováno 24.7.2013 21:48
Nahoru Odpovědět  +1 24.7.2013 21:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Drakeman
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Drakeman:

musíš to uložit s příponou .py
EDIT: sorry až ted sem si vlastně všimnul, žes to uložil jako novy2.py, zmátnul mě nahoře to python.exe :-D

Editováno 24.7.2013 21:50
Nahoru Odpovědět  -1 24.7.2013 21:47
Když se chce, tak jde všechno,
Avatar
David Hynek
Redaktor
Avatar
David Hynek:

škoda že tu není chat...

Python mě celkem zaujal už dávno a tak se budu trochu ptát. Na Google mě prosím neposílejte :)

program se mi funguje, ale jen to problikne. Mám Python3.3 a spouštím to s koncovkou .py

jak spouštíte externí knihovnu?
from tkinter import *

Editováno 24.7.2013 22:11
Nahoru Odpovědět 24.7.2013 22:10
Čím víc vím, tím víc věcí nevím.
Avatar
Drakeman
Redaktor
Avatar
Odpovídá na David Hynek
Drakeman:

Já na linuxu spouštím přes příkazový řádek.
python2.7 příkazem: python test.py
a python3.3 příkazem python3 test.py

Editováno 24.7.2013 22:17
Nahoru Odpovědět  +1 24.7.2013 22:15
Když se chce, tak jde všechno,
Avatar
David Hynek
Redaktor
Avatar
Odpovídá na Drakeman
David Hynek:

joo už mi to běží i s tou grafickou knihovnou... :)

Nahoru Odpovědět 24.7.2013 22:23
Čím víc vím, tím víc věcí nevím.
Avatar
Drakeman
Redaktor
Avatar
Odpovídá na David Hynek
Drakeman:

kdyby jsi chtěl ještě s něčím poradit, tak mi klidně můžeš napsat PM

Nahoru Odpovědět  +1 24.7.2013 22:31
Když se chce, tak jde všechno,
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Hynek
Kit:

Nemusíš to psát jen do PM, můžeš i sem.

V Pythonu 2 funguje jen

from Tkinter import *

V Pythonu 3 zase jen

from tkinter import *
Nahoru Odpovědět  +1 25.7.2013 0:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Homo
David Jančík [sczdavos]:

Ty už si začal studovat Python? Nebo si jen googlil? Protože jestlis začal dělat v Pythonu, tak mě fakt provokuješ :D
Ináč zjistil sem že můžeš dělat True + True / True - False == 2 Jako nevim no, asi je to v pořádku na PHPčkářský 0 == "foo" to je ještě dobrý. Šílenost všechno :D

Nahoru Odpovědět  -1 25.7.2013 1:13
Čím více času dostaneš, tím méně ho máš.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
Kit:

No co? False == 0, True == 1. Pořád lepší, než si plést číslo se stringem jako v PHP.

Nahoru Odpovědět  +2 25.7.2013 1:32
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
David Jančík [sczdavos]:

Šak řikám, že to je lepší jak PHP. Ale víš jak matematické operace s logickými hodnotami to je takový nezvyk. Já bych čekal, že to bude fungovat jako logické operace. Ikdyž jako ono je to docela logické, že si to převede na číslo a pracuje to tak s ním, i tak je to ale nezvyk. Taky to, že když dělím dvě čísla třebas integery výsledek bude desetinný. Což ovšem může zabránit častým chybám. Že na dělení jak funguje jinde se používají dvě lomítka. Ovšem například -11 // 2 nevrátí -5 ale -6. Takový lehký nezvyk. Jako je to zajímavý jazyk. Ale je to strašnej nezvyk.

Nahoru Odpovědět 25.7.2013 2:19
Čím více času dostaneš, tím méně ho máš.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
Kit:

Je to zřejmě kvůli tomu, aby nula nebyla "tlustá". Také jsem zkusil

>>> print(-8.1//3.1)
-3.0

Skutečně zvláštní.

Ten jazyk byl stvořen spíš pro inženýry, aby si mohli spočítat cokoliv je napadne bez nějakého velkého přemýšlení. Včetně komplexních čísel, matic apod. Proto je ten jazyk takový volnější. To samozřejmě omezuje velikost programů, které se v tom dají vytvořit a udržovat.

Například pokud v objektu potřebuji další atribut, tak ho do toho objektu prostě přidám a nekoukám na to, že ve třídě není definován. Na gettery a settery se v Pythonu také nehraje. Funkce je objekt stejně jako třída či proměnná. Výjimky se občas používají k flow-control, protože jinak to nejde, ...

Nahoru Odpovědět 25.7.2013 2:37
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Jančík [sczdavos]
Kit:

Některé vlastnosti vypadají docela úžasně. Zkus si třeba

a="Slunce je %10.6g km %s a má %d planet" % (150123450, "daleko", 8)
print(a)

Na co bych hledal nějaký printf, sprintf apod, když se to dá udělat elegantně přímo?

Nahoru Odpovědět 25.7.2013 2:50
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Inoue Yūki
Redaktor
Avatar
Inoue Yūki:

Já začal s Pythonem celkem nedávno. Nejdřív mě vystrašilo, jak je jeho syntaxe odlišná od ostatních jazyků, ale nakonec mi to přijde i lepší. Celý jazyk mi přijde bližší než ostatní. Sice není takový rozdíl mezi:

def echo(text):
    print(text)

a

function echo(String text)
{
    Console.WriteLine(text);
    // nebo
    System.out.println(text);
}

ale i tak mi to přijde mnohem kratší a bližší. :)

Nahoru Odpovědět 25.7.2013 7:07
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:
from tkinter import *

Túto formu používa len málokto. Mna za to zvykli kamenovat, vraj 'konflikt názvov'.
Lepšie je si importovat len potrebné mená:

from tkinter import (Tk, Label, Button, Frame)

A formátovacie retazce už idú urobit aj takto:

a = "Slnko váži {0}kg a slon váži {hmotnost:.2f} kilogramov.".format(10, hmotnost = 45.7878787)
Editováno 25.7.2013 7:30
Nahoru Odpovědět 25.7.2013 7:29
1 + 1 = 2
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

Prečo nepoužívat gettery a settery? :O

@property
def radius(self)
    return self.__radius

@radius.setter
def radius(self, value)
    if radius >= 0
        raise chybnyPolomerException('Polomer musí byt >= 0')
    self.__radius = value

@radius.deleter
def radius(self)
    raise AttributeError('Vlastnosť polomer nemožno odstrániť.')

Zas mi to zničilo zarovnanie :(

Editováno 25.7.2013 7:39
Nahoru Odpovědět 25.7.2013 7:38
1 + 1 = 2
Avatar
Benjibs
Člen
Avatar
Odpovídá na Benjibs
Benjibs:

Zabudol som : za defmi, na vine je Java ]:>

Editováno 25.7.2013 7:46
Nahoru Odpovědět 25.7.2013 7:46
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Napsal jsem Na gettery a settery se v Pythonu také nehraje. Samozřejmě že jdou udělat, ale na rozdíl od Javy a C# se dělávají jen tam, kde to má skutečně smysl.

Nahoru Odpovědět 25.7.2013 10:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Záleží na okolnostech. Mně se víc líbí

a = "Slnko váži %d kg a slon váži %.2f kilogramov." % (10, 45.7878787)

Hodně záleží na tom, na co jsi zvyklý. Zřejmě na C# a proto je ti tvůj zápis bližší. Zatím jsem ještě nevypátral, jak si metoda format() poradí s tuples. Zápis s % to zvládá.

Nahoru Odpovědět 25.7.2013 13:32
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

V C# som v živote nerobil, a ani sa mi do toho nechce, lebo by to znamenalo inštaláciu Windowsu (už asi 5x, nie ďakujem, na Linuxe som vyrástol).

Metóda format si za to poradí so slovníkmi(či s tuplami, to neviem, ale mala by):

slovnik = dict(jano = 5, mikulas = 7)
a = 'Jano váži {0[jano]} kilo a mikuláš {0[mikulas]} kilo.'.format(slovnik)
Editováno 25.7.2013 13:51
Nahoru Odpovědět  +2 25.7.2013 13:49
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Už jsem to našel. Další syntaktický cukříček:

tuple = (5, 7)
a = 'Jano váži {0} kilo a mikuláš {1} kilo.'.format(*tuple)

i když spíš by se to využilo jinak:

tuples=(("Jano", 5), ("Mikuláš", 7), ("Ivana", 4))
for row in tuples:
    print("{0} váži {1} kilo".format(*row))
Nahoru Odpovědět 25.7.2013 14:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Kvůli Devbooku jsem si na Ubuntu nainstaloval Mono, používám kompilátor gmcs, který ovládám přes make.

Nahoru Odpovědět 25.7.2013 14:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Benjibs:

Hmm.. to druhé sa mi zdá zvláštne. * nerozbaľuje prvky rekurzívne, alebo?
EDIT: nič, nevišmol som si cyklus :`

Editováno 25.7.2013 14:15
Nahoru Odpovědět 25.7.2013 14:13
1 + 1 = 2
Avatar
Benjibs
Člen
Avatar
Benjibs:

Možno je to trochu od veci, ale je to jedno z mála vlákien o Pythone :P
Celkom ma prekvapilo, že v novej verzii Pythonu (3.4) budú implementované enumy.. A čo som pozeral na už hotovú knižnicu, tak to vyzerá super. Hlavne to, že sa s tým bude dať narábať ako so slovníkom (menu jedna radosť).

http://docs.python.org/…ry/enum.html#…

Nahoru Odpovědět 25.7.2013 15:03
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Nevím, jestli menu je to správné použití, protože menu je z principu seznam, který s enumem ani slovníkem nemá nic společného. Enum je jen množina stavů.

Editováno 25.7.2013 15:10
Nahoru Odpovědět 25.7.2013 15:08
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Mischief Managed:

Nechtěl by tu někdo začít psát tutoriály na Python?

 
Nahoru Odpovědět 25.7.2013 15:09
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

Dajme tomu, že robím konzolovú aplikáciu. A uživateľ zadá nejaké slovo (resp. voľbu v menu). Ako by si to chcel robiť? Cez if, elif, else? Slovník je lepší:

slovnik = dict(a = pridat, b = zmazat, c = vyprintuj, d = zoznam, e = pozdrav)
slovnik[input()]()

Edit: Hodnoty slovníka sú funkcie

Editováno 25.7.2013 15:14
Nahoru Odpovědět 25.7.2013 15:13
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Nahoru Odpovědět 25.7.2013 15:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Mischief Managed
Benjibs:

Na py.cz nájdeš dosť vela tutoriálov v češtine, a celkom slušnú komunitu.

Nahoru Odpovědět 25.7.2013 15:17
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Aha, ty jsi myslel takové menu. Může tam být trochu problém, pokud to chceš uspořádat jinak než podle abecedy. Slovník vlastně ani nemusí být uspořádaný.

Nahoru Odpovědět 25.7.2013 15:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

Pardon, asi nechápem.. Načo tam bude usporiadanie?

Nahoru Odpovědět 25.7.2013 15:27
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Když chceš vypsat menu na obrazovku, asi budeš chtít mít položky v nějakém definovaném pořadí. Na zpracování vstupu od uživatele už pořadí samozřejmě nepotřebuješ.

Nahoru Odpovědět 25.7.2013 15:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Zaregistroval jsem se do fóra na py.cz. Uvidím, jak to tam chodí a zda ta konference vůbec žije.

Nahoru Odpovědět 25.7.2013 15:31
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

K menu: Na to som chcel radšej použit predom pripravený string. Predsa budem vediet, ako to menu má vyzerat, ked začne písat :P

Py.cz : Ono je to riešené tak, že sa prihlásiš do ich konferencie. Keď pošleš mail, alebo pošle niekto iný, dôjde to všetkým do schránok. Trocha ma naštvalo, ked som 3 mesiace nebol na jednom maili, a mal som tam 104 správ.

Nahoru Odpovědět 25.7.2013 15:35
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

To máš ještě dobré. Ve své schránce mám asi 9200 nepřečtených vláken z různých diskuzí. Velmi dobře se v tom však hledá.

Menu dělám nejraději pohromadě jako seznam objektů, takže pak už žádný slovník nepotřebuji.

Nahoru Odpovědět  +1 25.7.2013 15:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Nahoru Odpovědět 25.7.2013 15:48
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Jenže chat neplní účel, který většinou potřebujeme. Býval jsem tam připojen 24 hodin denně. Informační hodnota nulová.

Nahoru Odpovědět 25.7.2013 15:49
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

tak na takú voľnejšiu debatu.. :P

Nahoru Odpovědět 25.7.2013 15:53
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Někteří si to pletli s poradnou, jiní se tam učili psát, někteří i číst.

Nahoru Odpovědět  +1 25.7.2013 15:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Ještě k tomu py.cz: Vyhovují mi konference, kde je kolem 100 zpráv denně. Tam to aspoň žije, je z čeho vybírat. Když máš dobrého e-mailového klienta, tak je to fajn.

Nahoru Odpovědět 25.7.2013 16:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Benjibs
Člen
Avatar
Odpovídá na Kit
Benjibs:

Takú nájdeš asi len na python.org :P

Nahoru Odpovědět 25.7.2013 16:10
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Tam to také zeje prázdnotou. Devbook je živější.

Nahoru Odpovědět 25.7.2013 16:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hynek
Redaktor
Avatar
David Hynek:

Python je opravdu hodně jednoduchý jazyk :)

soubor = open('file.txt','w')
if soubor.write("Nějaký text"):
    print("Vytvořil jsem soubor!")
Nahoru Odpovědět  +1 25.7.2013 19:50
Čím víc vím, tím víc věcí nevím.
Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:

čím provádíte to převést doexe když používám python 3.3.2 ?

 
Nahoru Odpovědět 4.11.2013 21:45
Avatar
Insane Qurd
Redaktor
Avatar
Odpovídá na studnicka.ji
Insane Qurd:

Cx_freeze, funguje i pro Pygame.

Nahoru Odpovědět 14.11.2014 0:08
It's impossible to say it's impossible.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 53 zpráv z 53.