Pythonban az alábbiakat hogyan lehet kiadni outputban?
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!
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.
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?
„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:
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...
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:
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.
Igazából ezek lennének vissza és minden megy.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!