• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ - Zadanie JSPACE - Spacje - Python

42 Warsaw Coding Academy
0 głosów
677 wizyt
pytanie zadane 15 czerwca 2020 w Python przez Piotr Patek Nowicjusz (170 p.)

Dzień Dobry,

Decyzję o pisaniu tego postu podjąłem po długich bojach z programami typu wczytaj nieokreśloną liczbę wierszy itd. Przeczytałem trochę artykułów nt. zastosowanie stdin w Pythonie jako odpowiednik while(cin>>zmienna) z C++ i w niektórych programach to działa w niektórych nie. Dlatego przychodzę tutaj prosząc o wytłumaczenie co w poniższym kodzie mam źle, co jest może źle sformułowane itd. Z góry bardzo dziękuję za pomoc.

import sys

tab = []
var1 = ""

for line in sys.stdin:
    for var in line.split():
        if var[0].isupper():
            tab.append(var)
        else:
            var = var[0].upper() + var[1:]
            tab.append(var)

    for i in range(len(tab)):

        var1+= str(tab[i])

    print(var1)
    var1 = ""
    tab.clear()

 

1 odpowiedź

0 głosów
odpowiedź 17 czerwca 2020 przez profesorek96 Szeryf (91,420 p.)
wybrane 21 czerwca 2020 przez Piotr Patek
 
Najlepsza

Niestety u mnie to zadanie nie przechodzi. Sam je kiedyś rozwiązywałem w C++ i było wszystko ok.

Jednak co do twojego kodu. Można to zrobić prościej:

import sys

for line in sys.stdin:
	line_l=line.split()
	line_l=[i.capitalize() for i in line_l]
	line_out="".join(line_l)
	print(line_out)

W Ideone zwraca poprawne wyniki.

komentarz 17 czerwca 2020 przez Piotr Patek Nowicjusz (170 p.)
Dzięki za pomoc, ostatecznie mój kod zadziałał, ale w innym temacie znalazłem informację, że 1 wyraz jeśli zaczyna się z małej litery to ma taki pozostać. I tak wielkie dzięki
komentarz 17 czerwca 2020 przez profesorek96 Szeryf (91,420 p.)
edycja 17 czerwca 2020 przez profesorek96

Proszę bardzo :)

Tak jak mówiłeś jest jakaś pojedyncza literka. Poprawiłem kod, przechodzi :)

import sys
 
for line in sys.stdin:
    line_l=line.split()
    first=line_l[0]
    line_l=[i.capitalize() for i in line_l[1:]]
    line_l.insert(0, first)
    line_out="".join(line_l)
    print(line_out)

 

Podobne pytania

0 głosów
1 odpowiedź 904 wizyt
pytanie zadane 19 października 2018 w SPOJ przez Archiwista Początkujący (250 p.)
0 głosów
2 odpowiedzi 854 wizyt
pytanie zadane 4 września 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)
0 głosów
1 odpowiedź 1,080 wizyt
pytanie zadane 31 maja 2016 w C i C++ przez Kertoip_123 Nowicjusz (120 p.)

93,377 zapytań

142,380 odpowiedzi

322,532 komentarzy

62,727 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...