-4

Problem 1.

This problem provides practice using a while True loop. Write a function named twoWords that gets and returns two words from a user. The first word is of a specified length, and the second word begins with a specified letter.

The function twoWords takes two parameters:

  1. an integer, length, that is the length of the first word and
  2. a character, firstLetter, that is the first letter of the second word.

The second word may begin with either an upper or lower case instance of firstLetter. The function twoWords should return the two words in a list. Use a while True loop and a break statement in the implementation of twoWords. The following is an example of the execution of twoWords: print(twoWords(4, 'B')):

A 4-letter word please two
A 4-letter word please one
A 4-letter word please four
A word beginning with B please apple
A word beginning with B please pear
A word beginning with B please banana
['four', 'banana']

This is what I have so far, but it keeps asking me the first question over again even if I have the right word length. What am I doing wrong?

def twoWords(length, firstLetter):
    wordLen = input('A 4-letter word please ')
    while len(wordLen) != int(length):
        wordlen = input('A 4-letter word please ')
    word = input('A word beginning with ' + firstLetter + ' please ')
    while word[0] != firstLetter:
        word = input('A word beginning with ' + firstLetter + ' please ')
    return[wordLen, word]
martineau
  • 119,623
  • 25
  • 170
  • 301
MK C.
  • 19
  • 2

2 Answers2

1
def twoWords(length,firstLetter):

    firstWord = "" 
    secondWord= ""

    while True:

        firstWord = input('A ' + str(length) + '-letter word please.')
        if length == len(firstWord):
            break
    while True:
        secondWord = input('A word beginning with ' + firstLetter+ ' please')
        if secondWord[0] == firstLetter.upper() or secondWord[0] == firstLetter.lower():
            break
    return [firstWord,secondWord]

print(twoWords(4,'B'))
Mosam Mehta
  • 1,658
  • 6
  • 25
  • 34
0
def twoWord(length, firstLetter):
    while True:
       word1=(input("Enter a "+ str(length)+"-letter word please:"))
     
       if len(word1)==int(length):
           break
    while True:
       word2=input("Please enter the word beginning with "+firstLetter+" please:")
       if  word2[0].upper()==firstLetter or word2[0].lower()==firstLetter:
           break
    return word1, word2

print(twoWord(5, 'b'))