Diskuze: Ako zobrať viacriadkový input

Python Python Ako zobrať viacriadkový input

Avatar
ra3sk
Člen
Avatar
ra3sk:

Ahoj, s týmto mám už dlho problém a na internete som sa stretol s niečím čo sa volá raw_input(). Myslím ale, že v Pythone 3.X to nefunguje. Ide o to, že by som potreboval do jednej premennej načítať viacriadkový input.

 
Odpovědět 21. října 20:23
Avatar
David Hanina
Člen
Avatar
Odpovídá na ra3sk
David Hanina:

Ahoj, v pythonu 3.x je místo raw_input() jen input(), jinak s těmi řádky ani nevím, jestli to jde nějak jinak, než za pomocí cyklu.

 
Nahoru Odpovědět 21. října 21:48
Avatar
ra3sk
Člen
Avatar
Odpovídá na David Hanina
ra3sk:

A práve to ma zaujíma. Lebo ja som mal na zadaní, že dostanem viacriadkový vstup, ten mám nejako uložiť do premennej a v tom vstupe mám vyhľadať niečo (berme, že vstup je text)

 
Nahoru Odpovědět 21. října 22:02
Avatar
David Hanina
Člen
Avatar
Odpovídá na ra3sk
David Hanina:

Jsou 2 základní řešení a to buď pomocí cyklu for.

text = ""
for i in range(10):
    veta = input("Zadej větu: ")
    text += veta; #text = text + veta

V tomto případě by po tobě program chtěl 10x zadat vstup.
A nebo za pomocí cyklu while.

text = ""
while True:
    veta = input("Zadej větu: ")
    if veta == "":
        break;
    text += veta

A tady by jsi pro změnu mohl zadávat vstup jak dlouho chceš(program by skončil až by si vstup jen odentroval a nic do něj nenapsal)

 
Nahoru Odpovědět 21. října 22:11
Avatar
prokop
Člen
Avatar
Odpovídá na David Hanina
prokop:

Super, moc díky. Zrovna dneska v noci jsem se s tím taky potýkal, a nakonec jsem to nechal radši ráno. A vida, mám to tu jako na objednávku :-)
OT: to "by jsi" je hrozné zvěrstvo :-###

 
Nahoru Odpovědět 22. října 8:17
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na prokop
Filip Šohajek:

Můžeš ještě zkusit volat read na sys.stdin. To ti načte vstup až do EOF (čili musíš na konci vstupu zmáčnkout Control^D). Ideální, pokud dáváš tomu programu vstup ze souboru na stdin.

 
Nahoru Odpovědět 22. října 9:08
Avatar
prokop
Člen
Avatar
Odpovídá na Filip Šohajek
prokop:

Díky moc, momentálně to sice nevyužiju, ale určitě se mi to bude v budoucnu hodit

 
Nahoru Odpovědět 22. října 9:22
Avatar
ra3sk
Člen
Avatar
Odpovídá na Filip Šohajek
ra3sk:

Ahoj, mohol by si postnúť časť kódu ako to použiť? Myslím, že tvoj post je najlepší z môjho pohľadu a potrieb. Díky.

 
Nahoru Odpovědět 22. října 17:01
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na ra3sk
Filip Šohajek:
import sys

data = sys.stdin.read()
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 22. října 17:35
Avatar
ra3sk
Člen
Avatar
Odpovídá na Filip Šohajek
ra3sk:

To je presne to čo som potreboval. A inak len taká ozázka pomimo. Dalo by sa to ukončiť aj inak ako command a d ?

 
Nahoru Odpovědět 22. října 18:10
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na ra3sk
Filip Šohajek:

Ne, Control-D se v terminálu (většinou) překládá na EOF (End Of File, Konec Souboru). To je taky důvod, proč to umožňuje dát programu soubor jako vstup.

 
Nahoru Odpovědět 22. října 18:12
Avatar
ra3sk
Člen
Avatar
Odpovídá na Filip Šohajek
ra3sk:

Tak díky moc. Som o skúsenosť bohatší.

 
Nahoru Odpovědět 22. října 18:12
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 12 zpráv z 12.