К содержанию

Kiel savi program-kodojn en Terminal (Fedora) ?

от Demian, 21 апреля 2012 г.

Сообщений: 15

Язык: Esperanto

Demian (Показать профиль) 21 апреля 2012 г., 18:09:05

Spektante lecionojn je YouTube por komencantoj en la mondo de programado, mi inspiriĝis kaj kreis etan programon.

>>> def func():
... x = int(input("Age: "))
... print(x + 2)
...

>>> func()

Nu, la prolemo estas ke kvankam mi nun komencas lerni kiel krei simplajn kaj etaj programojn en Terminal, mi ne scias kiel savi ilin.

Ĉu oni povas helpi?

Mi uzas Fedora 16 kaj tajpas "python"-on en Terminal por verki programojn. La apriora versio estas Python 2.7 en la mastruma sistemo.

Dankon!

marcuscf (Показать профиль) 21 апреля 2012 г., 21:43:39

Tio estas pli facila ol vi supozas. Simple skribu la samajn komandojn en teksta dosiero, per iu ajn redaktilo. Estus pli bone se vi uzos redaktilon por programistoj, ĉar vi vidos la specialajn vortojn alikolore. Ne uzu formatojn kiel tiujn de LibreOffice, uzu simplan tekston kiel tiun de gedit, kate, nano, vim, emacs, la Python-a IDLE, ktp.

Pro tio ke vi lernas Python, vi probable volos konservi viajn programojn kun la finaĵo “.py”, sed tio ne estas deviga afero; kaj vi ankaŭ probable volos/bezonos meti sur la unuaj linioj de via dosiero unu el la sekvaj ekzemploj (vi povas adapti ilin)

(ekzemplo 1)
#!/usr/bin/python
# -*- coding: utf-8 -*-

(ekzemplo 2)
#!/usr/bin/python
# vim: set fileencoding=utf-8

Tiuj linioj aspektas kiel komentoj de la programlingvo Python, sed ili havas specialajn funkciojn. La unua linio estas la loko de via Python-a interpretilo, kaj la dua linio indikas la signan enkodigon de via dosiero (latin-1, utf-8, ktp.). Uzu la funkciojn de via elektita redaktilo por certigi ke la signa enkodigo de la dosiero estas la sama kiunn vi tajpis en ĝi. Tio estas necesa nur se vi volas uzi ne-anglajn literojn (á, ĉ, ktp.) en la dosiero.

Por lanĉi vian programon (supozu ke ĝi estas nomata prog.py), simple tajpu ./prog.py se ĝi enhavas la magian linion kun #!python prog.py se ĝi ne enhavas tiun linion.

Post tiom da klarigoj, ne forgesu la bazan aferon: sufiĉas tajpi en redaktilo kaj konservi (savi) la dosieron! ridulo.gif Ĉio alia estas nedeviga.

Demian (Показать профиль) 22 апреля 2012 г., 4:29:26

marcuscf:...kaj vi ankaŭ probable volos/bezonos meti sur la unuaj linioj de via dosiero unu el la sekvaj ekzemploj (vi povas adapti ilin)

(ekzemplo 1)
#!/usr/bin/python
# -*- coding: utf-8 -*-

(ekzemplo 2)
#!/usr/bin/python
# vim: set fileencoding=utf-8
Ĉu mi ŝanĝu la nomon de la dosiero, kie troviĝas Python-fajloj?

marcuscf: La unua linio estas la loko de via Python-a interpretilo, kaj la dua linio indikas la signan enkodigon de via dosiero (latin-1, utf-8, ktp.).
Kio estas Python-tradukilo?

marcuscf:Por lanĉi vian programon (supozu ke ĝi estas nomata prog.py), simple tajpu ./prog.py se ĝi enhavas la magian linion kun #!python prog.py...
Por lanĉi Python-programon, mi uzas Terminal-on. En la Terminal-o, mi tajpas:

python /home/demian/Documents/Zpo.py (Zpo.py = nomo de la fajlo)

Ĉu tiu estas bone?

Kaj mi uzas Gedit-on por tajpi. Ĝi montras apartajn kolorojn. Ekzemple, input estas griza kaj ktp.

===

Fine pardonu min se mi demandas al vi stultaj demandoj.

marcuscf (Показать профиль) 22 апреля 2012 г., 5:28:26

Demian:
Ĉu mi ŝanĝu la nomon de la dosiero, kie troviĝas Python-fajloj?
Mi ne bone komprenis vian demandon, sed mi kredas ke la respondo estas "ne". Vi ne bezonas ŝanĝi la nomon de iu ajn ekzistanta dosiero. Vi nur bezonas elekti nomojn por la dosieroj kiujn vi kreos.

Demian:
Kio estas Python-tradukilo?
La programo nomata python, kiun vi jam uzas. Vi povas trovi ĝian lokon per:
$ which python
Mia sistemo respondas:
/usr/bin/python

Demian:
Por lanĉi Python-programon, mi uzas Terminal-on. En la Terminal-o, mi tajpas:

python /home/demian/Documents/Zpo.py (Zpo.py = nomo de la fajlo)

Ĉu tiu estas bone?
Tute bone. Sed ne diru "fajlo", tio estas tute alia afero en Esperanto. Diru "dosiero".

Demian (Показать профиль) 22 апреля 2012 г., 8:34:39

marcuscf:Mi ne bone komprenis vian demandon, sed mi kredas ke la respondo estas "ne". Vi ne bezonas ŝanĝi la nomon de iu ajn ekzistanta dosiero. Vi nur bezonas elekti nomojn por la dosieroj kiujn vi kreos.
Ankaŭ mi ne komprenas!

marcuscf:La programo nomata python, kiun vi jam uzas. Vi povas trovi ĝian lokon per:
$ which python
Mia sistemo respondas:
/usr/bin/python
Mia sistemo respondas same.

marcuscf:Tute bone. Sed ne diru "fajlo", tio estas tute alia afero en Esperanto. Diru "dosiero".
Dankon! Mi ne faros la saman eraron ree.

Hyperboreus (Показать профиль) 22 апреля 2012 г., 23:22:28

marcuscf:
Por lanĉi vian programon (supozu ke ĝi estas nomata prog.py), simple tajpu ./prog.py se ĝi enhavas la magian linion kun #!
Ĉi tio funkcias nur, kiam (A) vi rajtas ekzekuti la dosieron "prog.py", kaj (B) vi estas en la terminalo en la dosierujo kie troviĝas "prog.py".

Por doni al vi mem la rajton ekzekuti dosieron, uzu "chmod". Ekzemple:

$ chmod +x prog.py
$ ./prog.py

Se via terminalo estas en alia dosierujo, vi devas indiki la lokon de la dosiero (absolute aŭ relative).

Se vi anstataŭigas "#!/usr/bin/python" kun "#!/usr/bin/env python", do via programo ankaŭ povos esti ekzekutata en sistemoj kie python (aŭ la ligilo al ĝi) ne estas en /usr/bin/.

Demian (Показать профиль) 23 апреля 2012 г., 9:51:17

Hodiaŭ estas la tria aŭ la kvara tago de la lernado kaj mi jam verkis miajn unuajn programojn en Python!

Vidu! Tiun ĉi programon mi kreis por mia juna fratino:


x = input()
print("Hi! How are you? ")
y = input()
print("I am confused. Can you help me solve a problem! ")
z = input()
print("Thank you!")
guess = int(input("The problem is mathematical. Can you guess a number between 1 and 10: " ))
if guess == 5:
print("Congrats! You hit it on the mark!")
elif guess > 5:
print("Naha! The number is smaller.")
elif guess < 5:
print("Naha! The number is larger.")


Kaj tiun ĉi mi verkis por mia juna frato. Li havas ekzamenon hodiaŭ:


x = input("Hi! I'm Chetan's computer. What is your name? ")
print(x + "! That's a beautiful name. " )
y = input("So! Dear " + x + "! How old are you? ")
print(y + " years! That means you are an energetic young man! ")
z = input("I have heard you have an exam today. What subject is it? ")
print(z + "! Now that's an interesting subject! ")
p = input("Are you prepared for the " + z + " exam? ")
if p == "Yes":
print("Now that sounds good! You will make your parents proud! ")
if p != "Yes":
print("I apologise! There is nothing I can do except wishing you a good luck! ")

Ĉu vi volus interŝanĝi iu ajn vian programon?

Demian (Показать профиль) 23 апреля 2012 г., 9:52:30

Hodiaŭ estas la tria aŭ la kvara tago de la lernado kaj mi jam verkis miajn unuajn programojn en Python!

Vidu! Tiun ĉi programon mi kreis por mia juna fratino:


x = input()
print("Hi! How are you? " )
y = input()
print("I am confused. Can you help me solve a problem! " )
z = input()
print("Thank you!" )
guess = int(input("The problem is mathematical. Can you guess a number between 1 and 10: " ))
if guess == 5:
print("Congrats! You hit it on the mark!" )
elif guess > 5:
print("Naha! The number is smaller." )
elif guess < 5:
print("Naha! The number is larger." )


Kaj tiun ĉi mi verkis por mia juna frato. Li havas ekzamenon hodiaŭ:


x = input("Hi! I'm Chetan's computer. What is your name? " )
print(x + "! That's a beautiful name. " )
y = input("So! Dear " + x + "! How old are you? " )
print(y + " years! That means you are an energetic young man! " )
z = input("I have heard you have an exam today. What subject is it? " )
print(z + "! Now that's an interesting subject! " )
p = input("Are you prepared for the " + z + " exam? " )
if p == "Yes":
print("Now that sounds good! You will make your parents proud! " )
if p != "Yes":
print("I apologise! There is nothing I can do except wishing you a good luck! " )

Ĉu vi volus interŝanĝi iu ajn vian programon?

Lom (Показать профиль) 23 апреля 2012 г., 12:18:18

Vi povus ankaŭ uzi "else" je la fino:
if p == "Yes":
__print("Now that sounds good! You will make your parents proud! " )
else:
__print("I apologise! There is nothing I can do except wishing you a good luck! " )
(Estas ege bedaŭrinda ke ne ekzistas ilon por montri kodtekstojn en tiu forumo. malgajo.gif
http://programistoj.net/forumo/ estus pli bona loko, kvankam certe multe malpli aktiva.)

Hyperboreus (Показать профиль) 23 апреля 2012 г., 19:15:49

Forigite

Наверх