【问题标题】:Code Academy Help - RubyCode Academy 帮助 - Ruby
【发布时间】:2016-09-28 17:26:54
【问题描述】:

它要求我执行以下操作:

1。 在你的 when “add” 块中,删除 puts “Added!”声明。

在其位置提示用户输入电影名称。将结果保存在名为 title 的新变量中。 (您的代码已经有一个如何做到这一点的示例!)

接下来,提示用户为电影评分。将其保存在名为 rating 的新变量中。

将该电影/评分对添加到电影哈希中,并放置一条消息,指示该对已添加。 (现在还不需要 to_sym 或 to_i!)

我正在输入这个并得到一个我没有添加到电影哈希中的错误!

movies = {
     Batman: 10,
}

puts "What is your favorite movie?"
choice = gets.chomp

case choice
 when 'add' 
     puts "What movie do you want to add?"
      title = gets.chomp

     puts "Whats the rating (1-10)?"
      rating = gets.chomp

     movies[title] = rating
     puts "#{title} has been added with a rating of #{rating}!"

 when "update"
     puts "Updated!"
 when "display"
     puts "Movies!"
 when "delete"
     puts "Deleted!"
 else
     puts "Error!"
end

【问题讨论】:

  • 你如何尝试从哈希中检索电影?
  • @Bustkiller 我认为这会在问题中被进一步询问,但它不会让我进入下一步,它说我没有将标题和评级添加到电影哈希中

标签: ruby


【解决方案1】:

你的代码其实是对的

我可以确认这是来自 codecademy 的错误,因为我的解决方案几乎相似并且通过了

我在 Codecademy 遇到了同样的挑战。我认为您的第一个选择是确保movies 哈希不被更改,它包括恰好包含问题的所有电影。 Codecademy 的问题在于它实际上检查的是返回值而不是代码或逻辑,所以有时你可以通过编写即使不应该提交也能通过提交的代​​码来逃避

如果这不能解决问题,或者重置代码并再次输入解决方案并提交。希望这可以解决问题。在它工作之前我不得不这样做几次,因为 codecademy 似乎有几个错误。一切顺利,希望这能解决它

【讨论】:

    【解决方案2】:

    这很诱人 :) 所以,我实际上登录了 codeacademy,找到了示例并开始研究它。 Codeacademy 仅在结果符合预期时才接受您的作业,无论其是否正确。所以我尝试了各种各样的答案,直到我得到了 codeacademy 喜欢的东西。

    此外,在您的代码中,当分配用于字符串时,您正在创建带有符号的散列。另外,您没有将输入值转换为符号。因此,即使您的解决方案可能有效,它也会在 CodeAcademy 上失败。

    【讨论】:

    • ...并且在“movies”哈希的唯一一行之后有一个额外的逗号
    【解决方案3】:

    可能您的哈希需要符号键,而您正在添加字符串键。试试:

    movies[title.to_sym] = rating
    

    【讨论】:

    • 仍然收到相同的错误消息:看起来您没有添加到电影哈希中!
    【解决方案4】:

    例如,如果您添加了评分为 10 的电影“Shinning”,Code Academy 可能期望 movies 哈希等于 {:Batman=>10, :Shinning=>10},但使用您的代码,我们将有 movies 等于 @987654324 @。如果是这种情况,那么您必须牢记以下几点:

    1. 哈希的键应该是一个符号,而不是一个字符串(例如:Batman,而不是"Batman"
    2. 值(评级)应该是整数,而不是字符串。 (10,不是"10"

    所以替换这一行:

    movies[title] = rating
    

    以下内容:

    movies[title.to_sym] = rating.to_i
    

    这是我能想到的唯一解释。但是,如果不是这种情况,那么我会说您的代码很好,并且新的键值确实会添加到 movies 哈希中。

    【讨论】:

    • 我仍然收到错误,我认为这一定是 codecadmey 上的错误
    • 该死!!是的,我认为它是一个错误。因为我可以在我的机器中使用您的代码成功添加到movies 哈希。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    相关资源
    最近更新 更多