这个cod的语义错误是什么

2024-10-04 03:16:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些我找不到的语义错误代码。第一行没有告诉我们抛硬币是什么。1000次翻转在数学上是不可能的1000次翻转。当值应该在1和6之间时,骰子滚动0。两个骰子的结果只是告诉我们有关函数的信息,10个骰子的结果中也有零

import random
import numpy as np

def flipacoin():
    #This function flips a virtual coin and returns "Heads" or "Tails"
    coin = random.randint(1, 2) #returns a 1 or a 2
    if coin == 1:
        coin = "Heads"
    elif coin == 2:
        coin = "Tails"

def flipNcoins(n):
    #This function flips a coin a number of times (n flips total) and returns a string stating results.
    total_heads = 0
    total_tails = 0
    for i in range(n):
        if flipacoin() == "Heads":
            total_heads += 1
        else:
            total_tails += 1
    return "Heads " + str(total_heads) + ", Tails " + str(total_tails)


def rolladie():
    #This function rolls a virtual die and returns a number between 1 and 6.
    die = random.randint(0,6)
    return die

def rolltwodice():
    #This function rollstwo virtual dice and returns a tuple of the two values.
    die1 = rolladie()
    die2 = rolladie()
    return die1, die2

def rollNdice(n):
    #This function rolls n virtual dice and returns an array of roll values between 1 and 6.
    rolls = np.zeros((n,))
    for i in range(n):
        die = rolladie()
        rolls[i] = die
    return rolls

Tags: andreturndefvirtualfunctionrandom骰子this
1条回答
网友
1楼 · 发布于 2024-10-04 03:16:04

coin = "Heads"将局部变量coin设置为"Heads"。它不会返回它return "Heads"将(或者,等效地,在函数的末尾return coin)。任何在return结束之前未执行的函数都假定返回NoneNone显然不是"Heads",所以您累积1000total_tails

如果random.randint(0,6)将数字从0滚动到6,而不是从1滚动到6,这不应该让人大吃一惊。要实现后者,请使用random.randint(1,6)

我不明白你所说的“两个骰子的结果只是告诉我们函数”是什么意思

相关问题 更多 >