我的CodeHS 8.3.8:Word Ladder代码通过自动分级器需要什么?

时间:2019-05-06 15:47:08

标签: python

这是我应该做的:

您的朋友想尝试制作单词阶梯!这是单词列表,其中每个单词与之前的单词有一个字母的差异。这是一个示例:

cat
cot
cog
log

编写一个程序来帮助您的朋友。它应该执行以下操作:

请您的朋友输入一个初始单词。 反复要求他们索要索引和一封信。 您应该用输入的字母替换它们提供的索引处的字母。 然后,您应该打印新单词。 当用户为索引输入-1时,不再要求输入。 这是幕后应该发生的事情:

您应该有一个函数get_index,该函数反复要求用户提供一个索引,直到他们输入的有效整数在初始字符串的可接受索引范围内。 (如果他们输入的数字超出范围,则应输出invalid index。) 您应该具有另一个功能get_letter,该功能反复要求用户输入一个字母,直到他们输入一个小写字母为止。 (如果他们输入多个字符,则应输出Must be exactly one character!。如果他们输入大写字母,则应输出Character must be a lowercase letter!。) 您应该将当前单词的列表版本存储在变量中。这是您每次用户换出新字母时应更新的内容。 每次必须打印当前单词时,请打印保留在变量中的列表的字符串版本。 程序运行示例如下所示:

Enter a word: cat
Enter an index (-1 to quit): 1
Enter a letter: o
cot
Enter an index (-1 to quit): 2
Enter a letter: g
cog
Enter an index (-1 to quit): 5
Invalid index
Enter an index (-1 to quit): -3
Invalid index
Enter an index (-1 to quit): 0
Enter a letter: L
Character must be a lowercase letter!
Enter a letter: l
log
Enter an index (-1 to quit): -1

这是我现在的代码:

word = str(input("your word: "))
print(word)
run = True
while run:
    #ensure he enters a number not letter 
    while True:
        try:
            get_index = int(input("enter index: "))
            break
        except:
            print("Character must be a lowercase letter!")
    #check to see if the index is within the provided word lenght
    while -1 < get_index < len(word):
        #doesn't matter if he enters an uppercase letter becasue the lowermethod will turn it to lowercase
        get_letter = str(input("enter letter: ")).lower()
        #check to ensure he provides one letter only
        while len(get_letter) == 1:
            word = word[:get_index] + get_letter + word[get_index + 1 :]
            print(word)
            break
        else:
            print("Must be exactly one character!")
        break
    else:
        #quits if the index is -1
        if get_index == -1:
            run = False
        #if the index not -1 not in the length of the word ,prints invalid
        else:
            print("Invalid index")

此代码中没有错误。但是,由于某种原因,它没有通过自动分级器。我相信这是因为它会自动将大写字母更改为小写字母,这是不应该的。但是,我不知道该如何解决。

0 个答案:

没有答案