Kezdőoldal » Számítástechnika » Programozás » Pythonban az alábbiakat...

Pythonban az alábbiakat hogyan lehet kiadni outputban?

Figyelt kérdés

Ahova az van írva, hogy "Beírni:", azt írjuk az inputba. Amit először kiad, az az első output, de az egy olyan output, ahová még mi is írhatunk. Pl. a My age után odaírom, hogy 14. Aztán ha ez is megvan, után jön a második output, a végleges output. Ez a második "kiadja:" szó után van a feladatok végén. Na, nekem az a célom, hogy valami hasonló inputtal, mint ami ezeknél szerepel, az legyen az output, ami a feladatok végén szerepel. Tehát kizárólag az inputokon lehet változtatni, de sem az első, sem a második outputon nem lehet. Nos, a kérdésem, hogy ezek alapján hogyan lehetne megoldani, hogy azokat az outputokat kapjam, mint amik a feladatok végén szerepelnek? Eddig csak a print, str, int, float, és input parancsokat ismerem, illetve a ''' ''' , """ """ , \n , és \t karaktereket (meg kicsit a változókat). Tehát a feladat az lenne, hogy csak ezek alkalmazásával létre lehetne hozni olyan outputot, mint amit én szeretnék kapni a feladatok végén?


1.)

Beírni:

x=input(’My name: ’)

print(x)

y=input(’My age: ’)

print(y)

z=input(’My hobby: ’)

print(z)


kiadja:

My name: Valami

My age: 14

My hobby: Programming


kiadja:

My name: Valami

My age: 14

My hobby: Programming


2.)

Beírni:

x=input(’My name: ’)

print(x)

y=input(’My age: ’)

print(y)

z=input(’My hobby: ’)

print(z)


kiadja:

My name: Valami

My age: 14

My hobby: Programming


kiadja:

Valami

14

Programming


3.)

Beírni: print(input(’x = ’)+input(’y = ’)+input(’z = ’))


kiadja:

x = 2

y = 3

z = 4


kiadja:

x = 2y = 3z = 4


Köszönöm szépen a válaszokat!


2019. márc. 25. 19:30
1 2
 11/17 tabaki ***** válasza:

A shell- és scriptablak említése okán feltételezem, hogy talán az Idle-t használod, de ennyi erővel el is hagyhatnád, és közvetlenül a konzolban meghívott Pythonba írogathatnál. Továbbra sem tiszta, miért szívatod magad a promptban való küzdelemmel, de mondjuk, hogy gyakorlás céljából, ám legyen.

Az első-második feladatban a szükséges szövegkellékeket stringváltozókba mentettem, és később azokat használom:


>>> nametext = "My name: "

>>> agetext = "My age: "

>>> hobbytext = "My hobby: "

>>>

>>> x = input(nametext)

My name: Valami

>>> y = input(agetext)

My age: 14

>>> z = input(hobbytext)

My hobby: Programming

>>>

>>> # Kiírás soronként:

>>> print(x + '\n' + y + '\n' + z)

Valami

14

Programming

>>>

>>> # Kiírás soronként, szövegestül:

>>> print(nametext + x + '\n' + agetext + y + '\n' + hobbytext + z)

My name: Valami

My age: 14

My hobby: Programming

>>>

>>> # Kiírás egy sorba:

>>> print(nametext + x + ' ' + agetext + y + ' ' + hobbytext + z)

My name: Valami My age: 14 My hobby: Programming


A harmadik feladat, itt csak közvetlenül beleírom a szöveges részt:


>>> x = 2

>>> y = 3

>>> z = 4

>>>

>>> print("x = " + str(x) + "y = " + str(y) + "z = " + str(z))

x = 2y = 3z = 4

>>>

>>> # A számokat azért kellett szöveggé alakítani, hogy az általad megkívánt

>>> # kellemetlen kinézetű sort eredményezze, egyébként lehetett volna így:

>>> print("x =", x, "y =", y, "z =", z)

x = 2 y = 3 z = 4

>>>

>>> # Tabulátorokkal tagolva persze olvashatóbb:

>>> print("x =", x, "\ty =", y, "\tz =", z)

x = 2 y = 3 z = 4

>>>

>>> # Külön sorokba szedve:

>>> print("x =", x, "\ny =", y, "\nz =", z)

x = 2

y = 3

z = 4

>>>

>>> # Szöveg nélkül:

>>> print('', x, '\n', y, '\n', z)

2

3

4

>>> # Ha ki akarod küszöbölni a számok előtti szóközt, alakítsd őket szöveggé:

>>> print(str(x) + '\n' + str(y) + '\n' + str(z))

2

3

4


Ahogy látom, mindehhez semmi nem kell az eddigi ismereteiden túl. Ha mégis elszánnád magadat valami újabb dolog megtanulására, a fentebbi programom formátumozott kiírása érdekes lehet.

2019. márc. 26. 14:31
Hasznos számodra ez a válasz?
 12/17 A kérdező kommentje:

Nagyon szépen köszönöm a választ!


"A shell- és scriptablak említése okán feltételezem, hogy talán az Idle-t használod"


Igen mert azt mondták, hogy egy kezdőnek nagyon jó, főleg mert nem túl bonyolult, nem zavarja össze a kezdő programozót. Aztán később ha már tudok programozni majd válthatok másikra. Én is így gondolom, egyelőre jó lesz az idle.


"de ennyi erővel el is hagyhatnád, és közvetlenül a konzolban meghívott Pythonba írogathatnál."


Mit értesz konzolba meghívott Python alatt? Én másképp értelmeztem az egészet. Egyrészt van a parancssor aminek kb annyi értelme van csak, hogy próbából pár kódot lefuttat az ember. Aztán van az idle, ami áll a Shellből, meg a scripablakból. Aztán run modullal futtatjuk, és az outputot kiadja a Shell-ben. Mentés után közvetlenül az idléből, vagy az asztalról is meg tudjuk nyitni (én mindig az asztalra mentek). Igazából ennyit tudok.


"Továbbra sem tiszta, miért szívatod magad a promptban való küzdelemmel, de mondjuk, hogy gyakorlás céljából, ám legyen."


Úgy érted ne a shellbe, hanem a scriptablakba írjak? Egyelőre még nem írtam programot, csak pársoros parancsokat. Ezért úgy láttam célszerűnek, hogy jobb ha shellben csinálom, mert ott rögtön mutatja az outputot. Ja és prompt alatt a >>> jelzésre gondolsz?

2019. márc. 26. 17:58
 13/17 tabaki ***** válasza:

„prompt alatt a >>> jelzésre gondolsz?”

Pontosabban arra, amit jelez, vagyis az interpreternek a beírt sorokat azonnal végrehajtó működési módjára.


„Mit értesz konzolba meghívott Python alatt? Én másképp értelmeztem az egészet. Egyrészt van a parancssor aminek kb annyi értelme van csak, hogy próbából pár kódot lefuttat az ember.”

Nyiss egy parancssort, és indítsd el a Pythont (ez nálam a python3 parancs begépelését jelenti). Ha az történik, amit szeretnék, valami ehhez hasonlót kéne látnod:

[link]

Tegyük félre, hogy az enyém egy linuxos terminálablak, te pedig alighanem Windowst használsz, a lényeg: Fekete alapon fehérrel ugyan, de ugyanaz a Python-shell jelenik meg, mint az IDLE-ben. Csak emiatt tehát nem sok értelme van az IDLE használatának. A scriptablak már hasznosabb, mert nemcsak egyszerű szövegszerkesztő, hanem -- mint minden IDE -- át tudja adni a programod nevét az interpreternek, így a programot annak írása közben is akármikor kipróbálhatod. Tulajdonképpen ez a kényelmes azonnali futtatás az erénye, mert a programodat egyébként egyszerű Jegyzettömbben is megírhatnád. Ha jól értem, nálad a .py kiterjesztés eleve a Python interpreterhez van társítva (így értelmezem az Asztalról való futtatást), ezáltal a Jegyzettömbből mentett fájlt is könnyedén elindíthatnád -- az IDLE annyiban jelent előnyt, hogy ki sem kell kattintanod az ablakból.


„Úgy érted ne a shellbe, hanem a scriptablakba írjak? Egyelőre még nem írtam programot, csak pársoros parancsokat. Ezért úgy láttam célszerűnek, hogy jobb ha shellben csinálom, mert ott rögtön mutatja az outputot.”

Bizony, hogy úgy. Mint jeleztem, a shellablak önmagában nem jelent pluszt ahhoz képest, mintha egyszerűen parancssorból futtatnád az interpretert -- egy saját felület, de gyakorlatilag nincs különbség. Ehhez képest a scriptablak előnye elvitathatatlan: Innét a sorokat Python-kódba mentve megőrizheted, és ha valamit elhibáztál, elég belejavítanod az adott sorba, nem kell az egészet újra begépelned. Igaz ugyan, hogy itt az utasításokat azonnali visszajelzés nélkül, előre írod be, de futtatáskor az interpreter ugyanúgy soronként értelmezi, és elakadás esetén a hiba helyét is közli a shellben. Arról, hogy „egyelőre” írtál-e programot, csak annyit, hogy vess egy pillantást a következő rövid kódra:


nevszoveg = "Neved: "

korszoveg = "Életkorod: "

hobbiszoveg = "Hobbid: "

nev = input(nevszoveg)

kor = input(korszoveg)

hobbi = input(hobbiszoveg)

print(nevszoveg + nev + '\n' + korszoveg + kor + '\n' + hobbiszoveg + hobbi)


Ha megfigyeled, ezek az utasítások betűhíven megegyeznek azokkal a parancsokkal, amelyeket az iménti képen ábrázolt konzolos Python-shellbe egyenként bepötyögtem, de most előre összekészítettem, és az interpreterre bíztam, hogy egyenként beolvassa őket. Azok a „pársoros parancsok” tehát, amiket eddig írtál, maguk is programok voltak, csak éppen nokedlikre szaggatva -- és nem mellesleg, már a lefutásuk pillanatában elveszítve. Ezért javaslom, hogy lépj át ezen a látszólagos különbségen, és használd bátran a scriptablakot. A soronkénti futtatás lehetősége bizonyos esetekben hasznos lehet (pl. hiba esetén az értékek lekérdezésére, némely formula kipróbálására, vagy egyszerű számológépként alkalmazva), de ezt nyugodtan tekintheted extrának, miközben a lényeget a scriptablakban intézed. Azt is megteheted, hogy beállítod a scriptablak elsőbbségét (Options → Configure IDLE... → General fül → At startup: → Open Edit Window), akkor az IDLE indításkor eleve a szerkesztőt hozza be, és nem érzed a sürgetést, hogy a shell akar tőled valamit...

2019. márc. 27. 08:51
Hasznos számodra ez a válasz?
 14/17 A kérdező kommentje:
Nagyon szépen köszönöm a választ! Akkor a scriptablakot fogom használni ezentúl.
2019. márc. 27. 12:28
 15/17 A kérdező kommentje:

Elmondom a történetet mire jutottam.


Csináltam egy új szöveges dokumentumot .txt kiterjesztéssel. Írtam bele pár alap dolgot:

print(30)

print('valami')

Aztán elmentettem az asztalra. Ezután társítani akartam a Pythonhoz, de nem tudtam, mert sem az ajánlott programok, sem az egyéb programok között nem volt a Python.

Ezeket adta csak ki:

[link]

A tallózásban meg nem találtam a Pythont. Legalábbis egy jó ideig. Megkerestem hova telepítettem, de a felhasználók között nem volt a mappa, aminek elméletileg ott kéne lennie. Úgyhogy másik utat választottam és valami nagyon nyakatekert módon de nagynehezen megtaláltam a pythont :) A lényeg, hogy sikerült társítanom viszont most meg csak egy pillanat alatt lefuttatja, de scriptbe nem tudom megnyitni. Pedig eddig akárhányszor mentettem scriptből, mindig sikerült megnyitnia, hogy szerkeszthető legyen. Most is van egy valami.py nevű fájlom, amit pár napja csináltam. Ha rákattintok, lefuttatja. De akármikor tudom nyitni edit with idlével ha szerkeszteni szeretném. Ha shellből mentek, akkor is meg tudom nyitni, csak mivel a scriptet nyitja meg, ezért futtatás előtt a "Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license()" for more information." szövege törölnöm kell.


A másik, ami nem megy, hogy megnyitottam a parancssort, viszont parancssorból nem tudom megnyitni a python3-at.

[link]

[link]


Igazából ezek lennének vissza és minden megy.

2019. márc. 27. 21:45
 16/17 tabaki ***** válasza:
Hát, mit mondjak, talányos dolgokat művelsz... Az első rejtély, hogy egy Python forráskódot miért .txt kiterjesztéssel mentesz el a hagyományos .py helyett. Van egy olyan gyanúm, hogy az már eleve a Pythonhoz lett volna társítva, így akkor a problémák oroszlánrésze fel sem vetődik. Ezt mindenesetre ellenőrizheted azzal, hogy utólag átnevezed .py kiterjesztésűre. Ha beigazolódik, szerintem a .txt fájlokat társítsd vissza a Jegyzettömbhöz, jobb lesz az úgy. Másodszor: Nincs mit csodálkoznod azon, hogy a két print egy pillanat alatt lefut, ez a konzolablak megnyitásával és bezáródásával együtt is legfeljebb tizedmásodperceket igényel. Ha látni is akarsz valamit az eredményből, írj utána még egy input() utasítást, amely várakoztatja a programot, amíg le nem ütöd az Entert. Harmadszor: Mi az, hogy a scriptben nem tudod megnyitni? File → Open..., aztán a Megnyitás ablak „Fájlok típusa:” sorát lenyitva a Text files (*.txt) menüpontot választod (legalábbis nálam ilyen félmagyar-félangol makaróninyelven írja ki ezeket). Az így betöltött .txt ugyanúgy futtatható, mint a .py, ettől függetlenül azt javaslom, hogy innét már úgy mentsd el. Negyedszer: A shellből mentett szöveget csak ilyen szimpla esetben egyszerű takarítani, bonyolultabb parancs-sorozatoknál már mindenféle keszekuszaság belekerülhet: Promptjelek, elrontott sorok hordaléka, és effélék. Ne használd -- kivéve, ha nem programot írsz, hanem valami tanulság okán tényleg a shellben megjelenő szövegeket akarod dokumentálni. Ötödször: Sajnálatosan megvezettelek azzal, hogy nálam terminálban a python3 paranccsal indul az interpreter. Az én gépemen a kettes is telepítve van, ezt a hármas telepítője valószínűleg érzékelte, és ezért adott neki más indítónevet. A jelek szerint neked egyszerűen a python szót kell beírnod a parancssorba. Erre utal egyébként, hogy amikor a „python 3.7.2” paranccsal kísérleteztél, a harmadik képed tanúsága szerint a Python simán elindult, csak éppen nem találta a parancs paraméterként értelmezett további részének megfelelő 3.7.2 nevű fájlt. Tehát, hogy világos legyen: Ha a parancssorba csak annyit írsz, hogy python, akkor el fog indulni a shell és irkálhatod a parancsaidat, ha viszont írsz még utána valamit, akkor arról az interpreter feltételezi, hogy egy futtatni kívánt fájl neve -- ha ilyet nem talál az aktuális mappában, akkor a képen láthatóhoz hasonló hibaüzenet kíséretében angolosan távozik a konzolból. Mint ebből is kiderülhetett, a fájl kiterjesztése az interpreter számára közömbös (ezért is tudja neki átadni az IDLE a .txt-ket is), vagyis, ha történetesen tényleg talál egy elmebeteg programozó által 3.7.2 névre keresztelt forráskódot, azt ugyanúgy lefuttatja. A .py kiterjesztés csak az operációs rendszert tájékoztatja arról, hogy éppen a Pythont kell meghívnia, a fájl formátuma ugyanis máskülönben tökéletesen azonos a .txt, .c, cpp, .cs, .java, .bas, .pas, és még kismillió egyéb kiterjesztésű egyszerű szövegfájlokéval.
2019. márc. 28. 00:23
Hasznos számodra ez a válasz?
 17/17 A kérdező kommentje:
Nagyon szépen köszönöm az érthető és bőséges választ! Most már mindent értek.
2019. márc. 28. 13:59
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!