【问题标题】:How can I solve the output error in flipping a coin?如何解决掷硬币时的输出错误?
【发布时间】:2020-06-01 12:20:17
【问题描述】:

我正在编写关于掷硬币概率的代码,如下所示,但我不断收到错误消息。

import random

tries = 0
number = random.randint(0, 1)
def coin_probability(hehe):
    for a in range(1, 101):
        heads = 0; tails = 0
        tries += 1
        if tries <= 10:
            if number == 0:
                heads += 1
            cp = heads/n
            print("%4d 번째까지 던지기에서 앞면이 나온 확률 :%5d%%" %(tries, cp))
        else:
            if number == 0:
                heads += 1
            cp = heads/n
            print("%4d 번째까지 던지기에서 앞면이 나온 확률 :%5d%%" %(tries, cp))
n = int(input("동전 던지기 시도 횟수를 입력(1 - 100) : "))
print('*' * 47)
print('총 %d번 동전 던지기에서 앞면이 나올 확률 :  %s' %(n, coin_probability(n))) `

我想让概率从1到10一个一个出来,从11到100显示10个单位。例如:

1 번째까지~: (probability)% 
2 번째까지~: (probability)%
3 번째까지~: (probability)%
...
10 번째까지~: (probability)%
20 번째까지~: (probability)%
...

应该这样打印。 (※我将heads设置为0,tails设置为1。)

【问题讨论】:

    标签: python function coin-flipping


    【解决方案1】:

    我希望这就是你想要的:

    import random
    
    def coin_probability(attempts):
        heads = 0
        for try_number in range(1, attempts + 1):
            number = random.randint(0, 1)
    
            if number == 0: 
                heads += 1
    
            cp = (heads/try_number) * 100
    
            if try_number <= 10 or (try_number % 10) == 0:
                print(f"{try_number} 번째까지 던지기에서 앞면이 나온 확률: {round(cp,5)}")
    
    
    def main():
        attempts = int(input("동전 던지기 시도 횟수를 입력: "))
        print('*' * 47)
        coin_probability(attempts)
    
    
    if __name__ == "__main__":
        main()
    

    【讨论】:

      【解决方案2】:

      我相信这就是你要找的。​​p>

      import random
      
      def coin_probability(n):
          tries = 0
          heads = 0
          for a in range(n):
              number = random.randint(0, 1)
              tries += 1
              if tries <= 10:
                  if number == 0:
                      heads += 1
                  cp = 100*heads/tries
                  print("%4d 번째까지 던지기에서 앞면이 나온 확률 :%5f%%" %(tries, cp))
              else:
                  if number == 0:
                      heads += 1
                  cp = 100*heads/tries
                  if tries%10 == 0:
                     print("%4d 번째까지 던지기에서 앞면이 나온 확률 :%5f%%" %(tries, cp))
          return cp
      n = int(input("동전 던지기 시도 횟수를 입력(1 - 100) : "))
      print('*' * 47)
      p = coin_probability(n)
      print('*' * 47)
      print('총 %d번 동전 던지기에서 앞면이 나올 확률 :  %s' %(n, p))
      

      【讨论】:

      • 这就是我想要的答案!!但我只想再问一个问题。如果我想将这部分 '*********' 放在 '총 %d번 동전 던지기에서 앞면이 나올 확률 : %s' 之前,我应该怎么做??
      • @Pia 我已将答案更新为在最后一行之前打印“*********”。
      【解决方案3】:

      如果使用

      ,您可以一个接一个地处理 print()
      ...
      else:
          if tries % 10 == 0:
              print("something", cp, tries)
      

      您也将 n 赋予您的功能“呵呵”,但从不使用它?除此之外,您可以更具体地说明会发生什么样的错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-17
        • 1970-01-01
        • 1970-01-01
        • 2022-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多