Ruby特别适合去解决一些小的程序问题,相比于c,c++和Java会很方便(至少代码量是少了不少),这样可以把更多的精力花在解决问题的算法上。然而几乎每次编程序都要涉及到输出输出操作(尤其是输入,不然你咋看结果)。...
Ruby特别适合去解决一些小的程序问题,相比于c,c++和Java会很方便(至少代码量是少了不少),这样可以把更多的精力花在解决问题的算法上。然而几乎每次编程序都要涉及到输出输出操作(尤其是输入,不然你咋看结果)。这次咱们就谈谈ruby的I/O。
一、输入
gets
输入一个带换行符的字符串
a=gets #输入123,按回车
a #"123\n"
输入一个不带换行符的字符串
使用chomp,在不指定参数的情况下,String.chomp删除尾部\n,\r和\r\n
a=gets.chomp #输入123(按回车)
a #"123"
输入数字,使用to_i转换为数字类型
a=gets.to_i #输入123(按回车)
a #123
输入一串数字,使用map
a=gets.split.map(&:to_i) #输入10 22 34(中间有空格,按回车)
a #[10, 22, 34]
输入指定个数的多个数字,暂时没想到更好的办法
a=[] #初始化一个空数组
gets.to_i.times{|i|a<<gets.to_i} #先指定输入数字个数,再依次输入数字。
#输入 3\n5\n8\n5\n \n为回车
a #[5,8,5]
总之Ruby中的输入只有gets一种函数,读取数据时很多时候需要对输入进行处理。
二、输出
print是比较常见的输出形式,变量是啥就输出啥,从不拖泥带水。
如果想要输出多个变量,用“,”隔开
print "123" #打印123
print 123 #打印123
print 1,2,3 #打印123
print [1,2,3] #打印[1, 2, 3]
a=3
print "12#{a}45" #打印12345,使用#{}读取变量值,因为是String的功能,其它输出也适用
puts
puts是在print的基础上,如果每次输出(下面第三行1,2,3都各算一次输出)末尾无换行符,则自动补换行符
puts "123", "123\n" #打印123\n123\n
puts "123\n\n" #打印123\n\n
puts 123 #打印123\n
puts 1,2,3 #打印1\n2\n3\n
puts [1,"2",3] #打印1\n2\n3\n
printf
格式化输出,与c语言中类似
printf("%d %d %s",1,2,"abc") #打印1 2 abc
printf("%s %s",["11111",2,3],1) #打印["11111", 2, 3] 1 感觉%s是万能的
p
p 根据数据的数据类型选择合适的输出方式,比较适合程序员调试(因为可以看出数字和数字组成的字符串之间的区别
p "123" #打印"123"\n
p "123\n" #打印"123\\n"\n 即123后面打印出了'\','n','"',然后换行
p 123 #打印123\n
p 1,2,3 #打印1\n2\n3\n
p [1,"2",3] #打印[1, "2", 3]\n
总结一下
puts | printf | p | ||
---|---|---|---|---|
数字自动增加双引号 | √ | |||
自动换行 | √ | √ | ||
数组换行 | √ | |||
使用逗号来连续输出 | √ | √ | √ | |
使用“%”格式化输出 | √ | |||
123 | 123 | 123\n | 123(%d) | 123\n |
“123” | 123 | 123\n | 123(%s) | “123”\n |
[1,2,3] | [1, 2, 3] | 1\n2\n3\n | [1, 2, 3](%s) | [1, 2, 3]\n |
本文标题为:Ruby即时编程——(一)输入输出
基础教程推荐
- UEFI开发基础HII代码示例 2023-07-07
- swift版webview加载网页进度条效果 2023-07-05
- R语言基于Keras的MLP神经网络及环境搭建 2022-12-10
- R包ggtreeExtra绘制进化树 2022-12-14
- R语言数可视化Split violin plot小提琴图绘制方法 2022-12-10
- ruby-on-rails-使用Nginx的Rails的多阶段环境 2023-09-21
- asm基础——汇编指令之in/out指令 2023-07-06
- swift 字符串String的使用方法 2023-07-05
- R语言-如何将科学计数法表示的数字转化为文本 2022-11-23
- Go web部署报错panic: listen tcp xxxxxxx:8090: bind: cannot assign requested address 2023-09-05