繁体   English   中英

掷两个骰子:SyntaxError:'return' 外部函数?

[英]rolling two dice: SyntaxError: 'return' outside function?

我正在尝试实现一个将两个骰子作为输入并计算两个值的函数。

第一个值是第一个骰子获胜的次数(在所有可能的 36 个选择中),第二个值是第二个骰子获胜的次数。

这是我的代码:

def count_wins(dice1, dice2):
  assert len(dice1) == 6 and len(dice2) == 6
  dice1_wins, dice2_wins = 0, 0

# write your code here
dice1 = input('1, 2, 3, 4, 5, 6')
dice2 = input('1, 2, 3, 4, 5, 6')
def roll_dice():
  return(random.randint(1, 2, 3, 4, 5, 6),random.randint(1, 2, 3, 4, 5, 6))
for i in range(36):
  dice1, dice2 = roll_dice()
  if dice1 > dice2:
    dice1_wins+=1
  if dice2 > dice1:
    dice2_wins+=1
  if dice2 == dice1:
    pass
return (dice1_wins, dice2_wins)

但它给了我这个错误:

Error on line 17:
    return (dice1_wins, dice2_wins)
    ^
SyntaxError: 'return' outside function

我试图为你修复缩进,试试下面的代码:

import random

def count_wins():
    dice1_wins, dice2_wins = 0, 0
    for i in range(0,36):
      dice1, dice2 = roll_dice()
      if dice1 > dice2:
        dice1_wins+=1
      if dice2 > dice1:
        dice2_wins+=1
      if dice2 == dice1:
        pass
    return (dice1_wins, dice2_wins)


def roll_dice():
  return(random.randint(1,6),random.randint(1,6))#returns random numbers between 1 to 6.

print (count_wins())#Calls the method count_wins and prints the required output.
from random import  randint


dice1 = [1, 1, 6, 6, 8, 8]

dice2 = [2, 2, 4, 4, 9, 9]


def count_wins():
dice1_wins, dice2_wins = 0, 0
for i in range(0,36):
  dice1, dice2 = roll_dice()
  if dice1 > dice2:
    dice1_wins+=1
  if dice2 > dice1:
    dice2_wins+=1
  if dice2 == dice1:
    pass
return dice1_wins, dice2_wins


def roll_dice():
  return(randint(1,6),randint(1,6))#returns random numbers between 1 to 6.
print (count_wins())
from random import randint, seed
from datetime import datetime

seed(datetime.now())

dice1=[2, 2, 2, 2, 3, 3]
dice2=[1, 1, 1, 1, 6, 6]

num_rounds = 36

assert len(dice1) == 6 and len(dice2) == 6

num_dice1_wins = 0
num_dice2_wins = 0

for _ in range(num_rounds):
    dice1_result = dice1[randint(0, 5)]
    dice2_result = dice2[randint(0, 5)]

    if dice1_result > dice2_result:
            num_dice1_wins += 1
    elif dice2_result > dice1_result:
            num_dice2_wins += 1

if num_dice1_wins > num_dice2_wins:
        print("  ({} , {} ) ".format(   num_dice1_wins,num_dice2_wins))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM