2014-04-16 1 views
-2
def main(): 
    print('Please enter a sentence without spaces and each word has ' + \ 
      'a capital letter.') 
    sentence = input('Enter your sentence: ') 

    for ch in sentence: 
     if ch.isupper(): 
      capital = ch 
      sentence = sentence.replace(capital, ' ' + capital) 


main() 

예 포맷하는 방법 : 문장을 = 'ExampleSentenceGoesHere'나는대로 인쇄이 필요내 문자열

: 예제 문장 여기 간다 : 같은 예문이 여기

지금 현재로 간다, 그것은 인쇄 (처음에는 공백이 있음)

+3

"코드 작성 중"은 일반적으로 프로그램의 _source 코드 _ 형식을 변경하는 것을 의미합니다. 문자열 형식을 지정하는 방법에 대해 묻고 있습니다. – Alec

+4

귀하의 질문은 무엇입니까? 방금 게시 한 코드는 어떻게 작동하지 않습니까? – Energya

+0

정확히 여기에 묻는 것은 무엇입니까? 당신은 훨씬 더 명확해야합니다. * 예제 문장은 다음과 같이 인쇄됩니다 : * : 실제 인쇄 명령과 그 출력을 묻는 질문에 *를 포함하고 밑줄을 사용하여 원하지 않는 공백이있는 곳을 강조 표시하십시오. – smci

답변

0

나는 rere.split("[A-Z]", text)을 사용 하겠지만 숙제처럼 보이기 때문에 할 수 없다고 가정하고 있습니다. 에 대해 어떻게 :

transdict = {letter:" "+letter.lower() for letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'} 
transtable = str.maketrans(transdict) 
text.translate(transtable).strip().capitalize() 

을하지만 다시 나는 그

1

당신은 문자로 문자와 반복 모든 상을 대체 할 수있는 계약 범위 이외의 생각 :

def main(): 
    text = input(">>") 
    newtext = "" 
    for character in text: 
     if character.isupper(): 
      ch = " " + character.lower() 
     else: 
      ch = character 
     newtext += ch 
    text = text[0]+newtext[2:] 

당신은 또한 할 수 공백과 적절한 소문자가있는 대소 문자 :

>>> s = 'ExampleSentenceGoesHere' 
>>> "".join(' ' + i.lower() if i.isupper() else i for i in s).strip().capitalize() 
'Example sentence goes here' 

ch 문자열이 대문자이면 eck는 isupper()입니다. strip()capitalize()을 호출하면 첫 번째 문자를 처리하는 데 도움이됩니다.

또한 관련 스레드를 참조하십시오

1

당신은 capital.lower()를 사용하여 소문자 하나에 각각의 대문자 변환해야합니다. 문장의 첫 글자는 무시해야하며 대문자로 유지되고 처음에는 공백이 없습니다. 다음과 같은 플래그를 사용하여이를 수행 할 수 있습니다.

is_first_letter = True 
for ch in sentence: 
    if is_first_letter: 
     is_first_letter = False 
     continue 
    if ch.isupper(): 
     capital = ch 
     sentence = sentence.replace(capital, ' ' + capital.lower())