python进阶练习题:甲骨文:硬币的方法【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶

python进阶练习题:甲骨文:硬币的方法【难度:2级】:

介绍

在易经(益精,或易经)是六十四卦的中国古代书籍.
甲卦是一个六条堆叠水平线,其中每个行是杨(一个实线)或阴(虚线)组成图:


--------- ---- ---- ---------
---- ---- ---- ---- ---------
---- ---- ---- ---- ---------
--------- ---- ---- ---- ----
--------- --------- ---- ----
---- ---- ---- ---- ---------

这本书是常用的神谕.问其关于一个人的目前的情况下问题后,
每一行是通过随机方法测定为阳或阴.得到的卦然后由求卜者解读为自己现在的处境的象征,它如何展开.

这将习题用三个硬币方法咨询易经.

指令

一个硬币翻转三次,土地头
或尾巴.这三个结果用于
确定的线为是:


3个尾巴---- X ----阴(动线*)
2尾1头---------杨
1个2头---- ----阴
3头---- ----Ø阳(动线*)

* 如果好奇查看描述的底部.

这个过程被重复6次,以确定
卦的每一行.这些结果
操作然后存储在像这样的2D数组矩阵:

[[ '2', 'H', 'H', 'T'],[ '6', 'T', 'H', 'T'],[ '四', 'T', 'T', 'T'],
[ '一个', 'H', 'T', 'H'],[ '三', 'H', 'H', 'H'],[ '5', 'T', 'T'," H']]

在每个数组矩阵的第一索引将始终是行号("一"是底线,和"6"的顶部),并且其它三个值将硬币的属于该行的结果翻转头( ‘H’)和尾部( ‘T’).

编写将一个二维数组,像上面的参数,并返回其卦为一个字符串的函数.卦中的每一行应该开始一个新行.

甲骨文公司([[ '2', 'H', 'H', 'T'],[ '6', 'T', 'H', 'T'],[ '四', 'T',"吨", 'T'],
[ '一个', 'H', 'T', 'H'],[ '三', 'H', 'H', 'H'],[ '5', 'T', 'T'," H']]);

应该返回:


---------
---------
 -  - X -  - 
---- ----Ø
---- ----
---- ----

欢迎您按下提交之前,一个问题请教您的新的Oracle程序.您可以比较的结果这里.最后一个测试用例是随机的,可用于查询.

  • [1]移动线是阳线,这将改变
    尹反之亦然.由硬币制成的卦
    抛出表示求卜者的现状,
    并且,从改变产生的卦其
    动线代表了其即将推出的情况.*

编程目标:

def oracle(arr):
    #your code here


测试样例:

Test.describe('Initial Tests')
Test.assert_equals(oracle([["two",'h','h','t'],["six",'t','h','t'],[,'t','t','t'],["one",'h','t','h'],["three",'h','h','h'],["five",'t','t','h']]),"---------\n---------\n----x----\n----o----\n---- ----\n---- ----")
Test.assert_equals(oracle([["six",'t','t','h'],["one",'h','h','t'],[,'t','h','h'],["two",'t','t','t'],["five",'h','h','t'],["four",'t','t','h']]),"---------\n---- ----\n---------\n---- ----\n----x----\n---- ----")
Test.assert_equals(oracle([["five",'h','h','h'],["four",'t','t','h'],["two",'h','t','h'],["one",'h','h','t'],["six",'t','h','t'],["three",'h','h','h']]),"---------\n----o----\n---------\n----o----\n---- ----\n---- ----")
Test.assert_equals(oracle([["one",'t','t','t'],["two",'t','t','t'],[,'h','t','h'],["four",'h','h','t'],["six",'t','h','t'],["five",'t','h','h']]),"---------\n---- ----\n---- ----\n---- ----\n----x----\n----x----")
Test.assert_equals(oracle([["three",'h','t','h'],["four",'t','t',],["one",'h','h','h'],["two",'t','t','h'],["six",'t','h','t'],["five",'h','t','h']]),"---------\n---- ----\n---------\n---- ----\n---------\n----o----")
Test.assert_equals(oracle([["four",'t','h','h'],["six",'t','t','t'],["one",'h','h','t'],["three",'t','t','t'],["two",'t','h','t'],["five",'t','h','t']]),"----x----\n---------\n---- ----\n----x----\n---------\n---- ----")
Test.assert_equals(oracle([["five",'t','h','h'],["six",'t','t','t'],["three",'h','h','t'],["one",'t','t','t'],["two",'t','h','t'],["four",'t','h','t']]),"----x----\n---- ----\n---------\n---- ----\n---------\n----x----")
Test.assert_equals(oracle([["six",'t','h','t'],["one",'t','t','t'],[,'h','h','t'],["three",'t','t','t'],["two",'t','h','t'],["five",'t','h','t']]),"---------\n---------\n---- ----\n----x----\n---------\n----x----")
.(([[,,,],[,,,],[,'h','h','t'],["three",'t','h','t'],["four",'t','h','t'],["five",'t','h','h']]),"----x----\n---- ----\n---------\n---------\n---- ----\n---- ----")
.(([[,,,],[,,,],["three",'h','h','t'],["one",'t','h','h'],["five",'t','h','t'],["six",'t','h','t']]),"---------\n---------\n---- ----\n---- ----\n---------\n---- ----")


最佳答案(多种解法):

点击查看答案

更多关联题目:

交流讨论:

Python基础训练营景越Python基础训练营QQ群
python进阶练习题:甲骨文:硬币的方法【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶_第1张图片
欢迎各位同学加群讨论,一起学习,共同成长!

免责申明:

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/oracle-coin-method

你可能感兴趣的:(Python编程习题答案)