Wejscie/wyjscie z klawiatury w Pythonie

Odpowiedz Nowy wątek
2011-08-20 16:25
qwe
0

Witajcie. Robie zadanie ze spoja : http://pl.spoj.pl/problems/PP0504B/ i mam pewien problem.
Musze wczytac do dwóch zmiennych tekst no i mam pewien problem.
W C ++ zrobiłbym tak: (mając zmienne typu string : s1, s2):
cin >> s1 >> s2;
wtedy po wpisaniu: aaaa bbbb - w zmiennej s1 byłoby "aaaa", w s2 natomiast "bbbb"
Próbuje to samo zrobić z pythonem lecz nie wiem jak korzystać z tego raw_input/input.
s1 = str(raw_input())
s2 = str(raw_input())
niestety po wpisaniu 'aaaa' 'bbbb' to wszystko zawiera sie w zmiennej s1 [musze nacisnac enter aby przejsc do s2, natomiast w zadaniu jest wyraźnie napisane, że ma być spacja pomiędzy tekstami]

Pozostało 580 znaków

2011-08-20 16:32
Kumashiro
0
(a, b) = [ int(x) for x in sys.stdin.readline().strip().split() ]

(nie sprawdzałem)

Pozostało 580 znaków

2011-08-20 16:34
Kumashiro
0

Ecchhh... Za dużo tego wczytywania liczb z wejścia na dzisiaj... Wystarczy:

(a, b) = sys.stdin.readline().split(None, 1)

Pozostało 580 znaków

2011-08-20 17:32
qwe
0

działa, dzięki :)

sorry za double post, linijka która dziala powinna wygladac tak :

 (s1, s2) = sys.stdin.readline().split(None, 2)

, czyli zamiast split(None,1), trzeba dac split(None, 2).

Pozostało 580 znaków

2011-08-20 17:47
Kumashiro
0
qwe napisał(a)

sorry za double post, linijka która dziala powinna wygladac tak :

(s1, s2) = sys.stdin.readline().split(None, 2)

, czyli zamiast split(None,1), trzeba dac split(None, 2).

Nie, to nie jest prawidłowe wywołanie. Drugi argument do split() określa ile razy można maksymalnie splitnąć, a nie ile elementów będzie wygenerowane. Zatem split(None, 1) oznacza "splitnij nie więcej niż jeden raz", co w wyniku daje dwa elementy.

Pozostało 580 znaków

2011-08-20 17:51
qwe
0

jak brałem split(None,1), to ostatnie litery przenosilo mi do nowej lini, a nie powinno, dalem split(None,2) i dziala jak powinno, spoj zaakceptowal :)

Pozostało 580 znaków

2011-08-20 17:53
Kumashiro
0

To raczej masz gdzieś błąd w kodzie.

In [1]: "Oto trzy elementy".split()
Out[1]: ['Oto', 'trzy', 'elementy']

In [2]: "Oto trzy elementy".split(None, 1)
Out[2]: ['Oto', 'trzy elementy']

In [3]: "Oto trzy elementy".split(None, 2)
Out[3]: ['Oto', 'trzy', 'elementy']

In [4]: "Oto trzy elementy".split(None, 3)
Out[4]: ['Oto', 'trzy', 'elementy']

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0