Diskuze: Ako zobrať viacriadkový input
Člen
Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.
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)
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)
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
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.
Díky moc, momentálně to sice nevyužiju, ale určitě se mi to bude v budoucnu hodit
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.
import sys
data = sys.stdin.read()
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 ?
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.
Zobrazeno 12 zpráv z 12.