У меня есть задание написать код для подсчета слов в строке. Я еще не изучил разделение, поэтому не могу его использовать. Я могу использовать только функции, циклы и условные выражения. Он намеренно добавил три лишних пробела к строке, и мне нужно выяснить, как заставить ее трактовать ее как один. Я застрял. Помогите!

def wordCount(myString):
    try:
        spaceCount = 0
        char = ""
        for i in myString:
            char += i
            if char == "  ":
                spaceCount == 1
                pass
            elif char == " ":
                spaceCount += 1
        return spaceCount+1
    except:
        return "Not a string"

print("Word Count:", wordCount("Four words are here!"))
print("Word Count:", wordCount("Hi   David"))
print("Word Count:", wordCount(5))
print("Word Count:", wordCount(5.1))
print("Word Count:", wordCount(True))
0
Katie Stearns 24 Апр 2017 в 04:15

2 ответа

Лучший ответ

Этот вид работ:

def wordCount(myString):
    try:
        words = 0
        word = ''
        for l in myString : 
            if ( l == ' ' and word != '' ) or ( l == myString[-1] and l != ' ' ) : 
                words += 1
                word = ''
            elif l != ' ' : 
                word += l
        return words
    except Exception as ex :
        return "Not a string"

print("Word Count:", wordCount("Four words are here!"))
print("Word Count:", wordCount("Hi   David"))
print("Word Count:", wordCount(5))
print("Word Count:", wordCount(5.1))
print("Word Count:", wordCount(True))

Результат:

'Word Count:', 4
'Word Count:', 2
'Word Count:', 'Not a string'
'Word Count:', 'Not a string'
'Word Count:', 'Not a string'
1
t.m.adam 24 Апр 2017 в 02:08
def wordCount(s):
    try:
        s=s.strip()
        count = 1 
        for i,v in enumerate(s):
            #scan your string in pair of 2 chars. If there's only one leading space, add word count by 1.
            if (len(s[i:i+2]) - len(s[i:i+2].lstrip()) == 1):
                count+=1
        return count
    except:
        return "Not a string"
print("Word Count:", wordCount("Four words are here!  "))
print("Word Count:", wordCount("Hi   David"))
print("Word Count:", wordCount(5))
print("Word Count:", wordCount(5.1))
print("Word Count:", wordCount(True))
0
Allen 24 Апр 2017 в 03:44