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]
(a, b) = [ int(x) for x in sys.stdin.readline().strip().split() ]
(nie sprawdzałem)
Ecchhh... Za dużo tego wczytywania liczb z wejścia na dzisiaj... Wystarczy:
(a, b) = sys.stdin.readline().split(None, 1)
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).
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.
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 :)
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']