Skip to main content
 首页 » 编程设计

python之设置循环条件

2025年05月04日15freeliver54

编程新手,为了练习,我正在尝试编写 I-Ching oracle。 我得到了我想要的输出,但只是将此代码块复制到我的程序中 6 次。

我可以设置一个循环条件来使它更简洁吗?

我已经阅读了有关循环的文档和教程,但还没有看到如何在这种情况下应用它。

import random  
 
oracle = random.randint(6,9) 
 
if oracle == 6: 
   print "__ __~" 
elif oracle == 7: 
 print "_____" 
elif oracle == 8: 
 print "__ __" 
elif oracle == 9: 
 print "_____~"   (X6) 

=> 这是我得到的输出:

_____ 
__ __ 
__ __~ 
_____ 
_____~ 
__ __ 

请您参考如下方法:

请注意,您的概率分布是错误的。

要阅读易经,您应该掷 3 个均匀的硬币,每条反面加 2 分,每条正面加 3 分:

Coin1  Coin2  Coin3  Points 
t      t      t      6 
t      t      h      7 
t      h      t      7 
t      h      h      8 
h      t      t      7 
h      t      h      8 
h      h      t      8 
h      h      h      9 

您可以看到有 3 种方法求和为 7 或 8,但只有一种方法求和为 6 或 9;因此分配应该是 6: 12.5%, 7: 37.5%, 8: 37.5%, 9: 12.5%。 randint 给出一个均匀分布,即每个 25%。

我建议如下:

from random import randint 
 
xyin  = "__ __~" 
yang  = "_____" 
yin   = "__ __" 
xyang = "_____~" 
 
three_coins = [ xyin, yang, yang, yin, yang, yin, yin, xyang ] 
 
def cast(): 
    return three_coins[randint(0, 7)] 
 
def hexagram(): 
    return '\n'.join(cast() for i in range(6)) 
 
print hexagram()