ruby Matrix 输出 格式化

 1 require ‘matrix‘
 2
 3 class Matrix
 4     def to_pretty_s
 5         s = ""
 6         i = 0
 7         while i < self.column_size
 8             s += "\n" if i != 0
 9             j = 0
10             while j < self.row_size
11                 s += ‘ ‘ if j != 0
12                 s += self.element(i, j).to_s
13                 j += 1
14             end
15             i += 1
16         end
17         s
18     end
19
20     def to_readable
21         maximal_length = 15
22         column_counter = 0
23         columns_arrays = []
24         while column_counter < self.column_size
25             maximum_length = 0
26             self.column(column_counter).each do |column_element|# Get maximal size
27                 length = column_element.to_s.size
28                 if length > maximal_length
29                     maximum_length = length
30                 end
31             end # now we‘ve got the maximum size
32             column_array = []
33             self.column(column_counter).each do |column_element| # Add needed spaces to equalize each column
34                 element_string = column_element.to_s
35                 element_size = element_string.size
36                 space_needed = maximal_length - element_size +1
37                 if space_needed > 0
38                     space_needed.times {element_string.prepend " "}
39                     if column_counter == 0
40                         element_string.prepend "["
41                     else
42                         element_string.prepend ","
43                     end
44                 end
45                 column_array << element_string
46             end
47             columns_arrays << column_array # Now columns contains equal size strings
48             column_counter += 1
49         end
50         row_counter = 0
51         while row_counter < self.row_size
52             columns_arrays.each do |column|
53                 element = column[row_counter]
54                 print element #Each column yield the correspondant row in order
55             end
56             print "]\n"
57             row_counter += 1
58         end
59     end
60
61     def my_print
62         matrix = self.to_a
63         field_size = matrix.flatten.collect{|i|i.to_s.size}.max
64         matrix.each do |row|
65             puts (row.collect{|i| ‘ ‘ * (field_size - i.to_s.size) + i.to_s}).join(‘  ‘)
66         end
67     end
68 end
69
70 m = Matrix[[12345678910, 333, 22.111], [3, 0.12345678, 3], [-333, 3, 4]]
71
72 puts m # same as puts m.to_s
73 puts m.to_pretty_s
74 p m.to_pretty_s
75 m.to_readable
76 m.my_print
77 # Matrix[[12345678910, 333, 22.111], [3, 0.12345678, 3], [-333, 3, 4]]
78 # 12345678910 333 22.111
79 # 3 0.12345678 3
80 # -333 3 4
81 # "12345678910 333 22.111\n3 0.12345678 3\n-333 3 4"
82 # [     12345678910,             333,          22.111]
83 # [               3,      0.12345678,               3]
84 # [            -333,               3,               4]
85 # 12345678910          333       22.111
86 #           3   0.12345678            3
87 #        -333            3            4
时间: 2024-12-17 14:03:51

ruby Matrix 输出 格式化的相关文章

编写高质量代码改善C#程序的157个建议——建议13: 为类型输出格式化字符串

建议13: 为类型输出格式化字符串 有两种方法可以为类型提供格式化的字符串输出.一种是意识到类型会产生格式化字符串输出,于是让类型继承接口IFormattable.这对类型来 说,是一种主动实现的方式,要求开发者可以预见类型在格式化方面的要求.更多的时候,类型的使用者需为类型自定义格式化器,这就是第二种方法,也是最灵活 多变的方法,可以根据需求的变化为类型提供多个格式化器.下面就来详细介绍这两种方法. 最简单的字符串输出是为类型重写ToString方法,如果没有为类型重写该方法,默认会调用Obj

python输出格式化及函数format

总结了一些简单基本的输出格式化形式以及函数format函数基本使用形式. 字符串格式化代码: 格式 描述 %% 百分号标记 %c 字符及其ASCII码 %s 字符串 %d 有符号整数(十进制) %u 无符号整数(十进制) %o 无符号整数(八进制) %x 无符号整数(十六进制) %X 无符号整数(十六进制大写字符) %e 浮点数字(科学计数法) %E 浮点数字(科学计数法,用E代替e) %f 浮点数字(用小数点符号) %g 浮点数字(根据值的大小采用%e或%f) %G 浮点数字(类似于%g) %

Python3.2官方文档翻译--输出格式化

第八章 标准库二 第二部分涵盖了许多更能满足专业开发人员需求的高级模块.这些模块在小脚本中很少出现. 8.1 输出格式化 Reprlib模块为大型的或深度嵌套的容器缩写显示提供了repr()函数的一个定制版本. >>> import reprlib >>> reprlib.repr(set('supercalifragilisticexpialidocious')) "set(['a', 'c', 'd', 'e', 'f', 'g', ...])"

如何输出格式化的字符串(学习笔记四)

如何输出格式化的字符串(学习笔记四) 我们经常会输出类似 '亲爱的xxx你好!你xx月的话费是xx,余额是xx' 之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式. 在Python中,采用的格式化方式和C语言是一致的,用 % 实现,举例如下: >>> 'Hello, %s' % ('world') 'Hello, world' 截图如下: 注: (1)红线上的百分号,两边可有空格也可无: (2)对于只有一个变量的情况,我们可以将'world'外的括号

Ruby——输入&amp;输出

Ruby的输入和输出操作.输入是程序从键盘.文件或者其他程序读取数据.输出是程序产生数据.可以输出到屏幕.文件或者其他程序. Ruby中的一些类有些方法会执行输入&输出操作.例如Kernel.IO.Dir或者File.重点注意Kernal ,IO,两种不同方式 输出到终端 Ruby有一些在终端上打印输出的方法.这些方法是Kernel模块的一部分.Kernel模块的方法对于所有的Ruby对象都是有效的. print和puts方法会将文本输出到终端.它们的不同是会在最后加上一个换行符.print实际

js 输出格式化字符串

<title>范例2-10</title> <script language="javascript"> <!-- // 诗的内容 var comment = "静夜思李白床前明月光,疑是地上霜.举头望明月,低头思故乡."; var partial = comment.substring( 0, 3 ); // 取出标题 partial = partial.bold(); // 标题加粗 document.write( &q

Python中输出格式化的字符串

在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下: >>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.' 你可能猜到了,%运算符就是用来格式化字符串的.在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序

JSON.stringify可以输出格式化的JSON字符串

JSON.stringify() 方法用于将一个json值转为字符串: JSON.parse() 方法用于将json字符串转化成对象: 当我们用JSON.stringify()方法将json值转为字符串时,你会发现所有字符串都连在一块,根本看不懂.那么就有下面的解决方法了: JSON.stringify(json,null,"\t");  //缩进一个tab JSON.stringify(json,null,5);     //缩进5个空格 有时候你会发现,如果打印这些字符串,他们还是

输出格式化:str.format() 的基本使用

str.format() 的基本使用如下: >>> print('{}网址: "{}!"'.format('菜鸟教程', 'www.runoob.com')) 菜鸟教程网址: "www.runoob.com!" 括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换. 在括号中的数字用于指向传入对象在 format() 中的位置,如下所示: >>> print('{0} 和 {1}'.format('Goo