微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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 

总结一下

@H_502_98@数字自动增加双引号 @H_502_98@ @H_502_98@ @H_502_98@ @H_502_98@√ @H_502_98@自动换行 @H_502_98@ @H_502_98@√ @H_502_98@ @H_502_98@√ @H_502_98@数组换行 @H_502_98@ @H_502_98@√ @H_502_98@ @H_502_98@ @H_502_98@使用逗号来连续输出 @H_502_98@√ @H_502_98@√ @H_502_98@ @H_502_98@√ @H_502_98@使用“%”格式化输出 @H_502_98@ @H_502_98@ @H_502_98@√ @H_502_98@ @H_502_98@ @H_502_98@ @H_502_98@ @H_502_98@ @H_502_98@ @H_502_98@123 @H_502_98@123 @H_502_98@123\n @H_502_98@123(%d) @H_502_98@123\n @H_502_98@“123” @H_502_98@123 @H_502_98@123\n @H_502_98@123(%s) @H_502_98@“123”\n @H_502_98@[1,2,3] @H_502_98@[1, 2, 3] @H_502_98@1\n2\n3\n @H_502_98@[1, 2, 3](%s) @H_502_98@[1, 2, 3]\n
print puts printf p

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐