我是Ruby的新手。我确实有一些使用python的经验,但是最近回到编码时,我选择学习Ruby。我正在开发一个程序,该程序需要查找数字的素因,所以我创建了一种使用试除法的方法。然后,当我尝试调用该方法时,出现错误
driver = webdriver.Firefox()
driver.implicitly_wait(30)
driver.maximize_window()
driver.get("http://www.google.com")
search_field = driver.find_element_by_id("lst-ib")
search_field.clear()
search_field.send_keys("argentina vnl 2019")
search_field.submit()
。
我尝试过使用while循环的break代替end来获得相同的结果。我不知道红宝石中有什么导致该方法无法被识别。
trial_division': undefined method `*' for nil:NilClass (NoMethodError)
我希望程序查找数字的素因数并显示数组。
答案 0 :(得分:2)
据我所知,有2个错误:f=3
行在while循环中,当n碰巧是奇数时,导致f为零。 nil没有*
方法,这会导致错误。
while f*f<n
也失败了9个;应该是while f*f <= n
。请注意,puts
返回nil
,因此整个方法返回nil。
也:https://ruby-doc.org/stdlib-2.6.3/libdoc/prime/rdoc/Prime.html#method-i-prime_division。(require "prime"; p 100.prime_division
)