Diskuze: python - jak napsat Hello World

Tvůrce

Zobrazeno 50 zpráv z 53.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
dik, zjistil jsem že on ten tutorial co jsem si našel je asi pro starší
python.
v čem a jak spouštíte Python??
Myslíš dokončenou, nebo vyvíjenou aplikaci? Já vyvíjenou v IDLE, dokončenou převádím na exe.
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
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
š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 *
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
kdyby jsi chtěl ještě s něčím poradit, tak mi klidně můžeš napsat PM
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 *
Ty už si začal studovat Python? Nebo si jen googlil? Protože jestlis
začal dělat v Pythonu, tak mě fakt provokuješ
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
No co? False == 0, True == 1. Pořád lepší, než si plést číslo se stringem jako v PHP.
Š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.
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, ...
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?
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žší.
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)
Prečo nepoužívat gettery a settery?
@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
Zabudol som : za defmi, na vine je Java
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.
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á.
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)
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))
Kvůli Devbooku jsem si na Ubuntu nainstaloval Mono, používám kompilátor
gmcs
, který ovládám přes make
.
Možno je to trochu od veci, ale je to jedno z mála vlákien o Pythone
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ť).
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ů.
Nechtěl by tu někdo začít psát tutoriály na Python?
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
Na py.cz nájdeš dosť vela tutoriálov v češtine, a celkom slušnú komunitu.
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ý.
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š.
Zaregistroval jsem se do fóra na py.cz. Uvidím, jak to tam chodí a zda ta konference vůbec žije.
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
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.
ehm... on tu chat je
http://www.itnetwork.cz/chat
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.
Jenže chat neplní účel, který většinou potřebujeme. Býval jsem tam připojen 24 hodin denně. Informační hodnota nulová.
Někteří si to pletli s poradnou, jiní se tam učili psát, někteří i číst.
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.
Zobrazeno 50 zpráv z 53.