为什么我的CodeHS 8.3.8:Word Ladder代码没有通过自动分级器?

时间:2019-05-02 15:52:47

标签: python

这是我应该做的:

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

  <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-hive_2.12</artifactId>
      <version>2.4.1</version>
  </dependency>

  <dependency>
      <groupId>org.apache.calcite</groupId>
      <artifactId>calcite-avatica</artifactId>
      <version>1.6.0</version>
  </dependency>
  <dependency>
      <groupId>org.apache.calcite</groupId>
      <artifactId>calcite-core</artifactId>
      <version>1.12.0</version>
  </dependency>
  <dependency>
      <groupId>org.spark-project.hive</groupId>
      <artifactId>hive-exec</artifactId>
      <version>1.2.1.spark2</version>
  </dependency>
  <dependency>
      <groupId>org.spark-project.hive</groupId>
      <artifactId>hive-metastore</artifactId>
      <version>1.2.1.spark2</version>
  </dependency>
  <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <version>1.9.13</version>
  </dependency>

  <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
  <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.6.7</version>
  </dependency>

  <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
  <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.6.7.1</version>
  </dependency>


  <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
  <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.6.7</version>
  </dependency>

  <!-- https://mvnrepository.com/artifact/org.codehaus.janino/janino -->
  <dependency>
      <groupId>org.codehaus.janino</groupId>
      <artifactId>janino</artifactId>
      <version>3.0.9</version>
  </dependency>

  <!-- https://mvnrepository.com/artifact/org.codehaus.janino/commons-compiler -->
  <dependency>
      <groupId>org.codehaus.janino</groupId>
      <artifactId>commons-compiler</artifactId>
      <version>3.0.9</version>
  </dependency>

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

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

您应该有一个函数cat cot cog log ,该函数反复要求用户提供一个索引,直到他们输入的有效整数在初始字符串的可接受索引范围内。 (如果他们输入的数字超出范围,则应输出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

此代码有问题。它所做的一切都正确,但是由于某种原因,CodeHS表示这是错误的。

1 个答案:

答案 0 :(得分:1)

  

它做的一切正确

嗯...您实际上运行了自己的程序吗?

我第一次运行它时,出现此错误:

  File "sample.py", line 17, in <module>
    while len(letter) == 1:
NameError: name 'letter' is not defined

此代码块中发生错误:

get_letter = str(input("enter letter: ")).lower()
#check to ensure he provides one letter only
while len(letter) == 1:

您将输入另存为get_letter,但是随后您正在检查len(letter),这是一个未知变量。