Ruby即时编程——(一)输入输出

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是比较常见的输出形式,变量是啥就输出啥,从不拖泥带水。
如果想要输出多个变量,用“,”隔开

	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 

总结一下

print 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即时编程——(一)输入输出