我正在创建一个简短的程序来查找给定数字集的平均值.这是一个程序,其基本结构首先在TI-83上用goto语句编写,所以我对这种事情的正确实践有点不确定.这是有问题的代码:
$sum = 0
$counter = 0
def average
puts "Input another number, or \"end\" to end."
input = gets.chomp
if input == "end"
puts $counter
puts ($sum / $counter).to_f
else
$sum += input.to_f
$counter += 1
puts $counter
average #Here the method is called again, repeating the cycle.
end
end
Run Code Online (Sandbox Code Playgroud)
我不确定如何做到这一点,因为像这样构建的代码点是它可以处理不确定数量的输入,因此它重复性质.
如何构建一个在运行时从用户接受多个值的数组?
例如,我们在c ++中有:
for(i=0;i<10;i++){ cin>>a[i]; }
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我有以下路线:
namespace :partners do
resources :cars
end
Run Code Online (Sandbox Code Playgroud)
我的汽车索引是以下路线:
'localhost:3000/partners/cars/'
但我希望有这样的道路:
'localhost:3000/partners/all_cars/'
我怎样才能做到这一点?
你为什么有时用@引用你的类属性,有时没有它?如果我要删除'@completed'并替换为'completed',则测试失败.但是在Project类中,tasks属性设置方式相同,但可以在没有@的情况下使用.
class Task
attr_accessor :size, :completed
def initialize(options = {})
@completed = options[:completed]
@size = options[:size]
end
def completed?
@completed
end
def mark_completed
@completed = true
end
end
class Project
attr_accessor :tasks
def initialize
@tasks = []
end
def done?
tasks.reject(&:completed?).empty?
end
def total_size
tasks.sum(&:size)
end
def remaining_size
tasks.reject(&:completed?).sum(&:size)
end
end
describe "estimates" do
let (:project) { Project.new }
let (:done) { Task.new(size: 2, completed: true) }
let(:small_not_done) { Task.new(size: 1) }
let(:large_none_done) { Task.new(size: 4) }
before(:example) do
project.tasks …Run Code Online (Sandbox Code Playgroud) 是否可以关闭 $stdout 和 $stderr 并且不将其重定向到文件;只需将其关闭,这样它就不会在任何地方打印任何内容?
我已经尝试过以下代码,但它只是错误error: Invalid argument
$stderr = IO.new(0,"w")
$stdout = IO.new(0,"w")
Run Code Online (Sandbox Code Playgroud) 我遇到了这个Ruby脚本:
frequency = Hash.new(0)
...
...
file.read.downcase.scan(/\b[a-z]{4,20}\b/){|word| frequency[word] =
frequency[word]+1}
Run Code Online (Sandbox Code Playgroud)
我无法理解的一点是 frequency[word] = frequency[word]+1
不会frequency[word]给我这个词匹配吗?我们怎样才能添加它1?
我需要通过REST API创建一个融合页面。创建一个简单的页面是可行的,但是,如果我尝试向现有的HTML页面添加内容,则会收到http_response 400(错误请求)。
程式码片段:
confluence_page_content = File.open("local_html_report", "r").read
json_data = {
"body" => {
"storage" => {
"representation" => "storage",
"value" => "#{confluence_page_content}"
}
},
"space" => {
"key" => "#{test_parameters["confluence_space"]}"
},
"title" => "TestPageFromChef",
"type" => "page"
}.to_json
Run Code Online (Sandbox Code Playgroud) 以下代码长于推荐的80个字符.
我试图将其分解并用+运算符和<<运算符连接,但它似乎不起作用.我已经尝试过这种.to_s方法并将冒号移动到他们自己的字符串中但无济于事.
将此分成2行或3行而不会出现no method "+@":String错误的正确方法是什么?
string = "#{sprintf("%02i", hours)}:#{sprintf("%02i", minutes)}:#{sprintf("%02i", seconds)}"
Run Code Online (Sandbox Code Playgroud) 我正在使用元数据方法来处理一些代码.假设以下是一个字符串:
if $bmi >= 18.5 && $bmi <= 24.9 then return 'healthy' elsif $bmi >= 25 && $bmi <= 29.9 then return 'overweight' elsif $bmi > 30 then return 'obese' end
Run Code Online (Sandbox Code Playgroud)
$ bmi被正确替换,但我希望代码执行.
ruby ×8
arrays ×1
coding-style ×1
confluence ×1
regex ×1
routes ×1
rspec ×1
stderr ×1
stdout ×1
string ×1