首页 > 解决方案 > 2 骰子滚动直方图 python 参数传递问题

问题描述

import random
roll_list = []  
num_rolls = 100 

def init_list():
    for x in range (0,13):
      roll_list.append(0)

def roll_dice():
    dice1 = random.randint(1,6)
    dice2 = random.randint(1,6)
    roll = dice1 + dice2

def update_list(roll):
    previousvalue = roll_list.pop(roll)
    roll_list.insert(roll,previousvalue + 1)

def print_histogram():
  for numbers in range(0,13):
    print(numbers + ":", "*" * roll_list.pop(numbers))

init_list()
for y in range(0,num_rolls):
  update_list(roll_dice())
print(roll_list)
print_histogram(roll_list)
# sample output:

 0: 
 1: 
 2: ***
 3: ******
 4: ***************
 5: ************
 6: ************
 7: ************
 8: ***********
 9: ***********
10: ***********
11: ****
12: ***

输出我不知道如何传递参数,所以我可以打印我尝试将 roll_list 插入其中的直方图,但它似乎不起作用。这是我收到的错误消息。回溯(最后一次调用):文件“python”,第 64 行,类型错误:print_histogram() 采用 0 个位置参数,但给出了 1 个

如果您可以评论我如何使其工作,那么除了直方图外,一切都可以正常工作,那就太好了。

更新:工作代码:

import random

roll_list = []  
num_rolls = 100 

def init_list():
    for x in range (0,13):
      roll_list.append(0)

def roll_dice():
    dice1 = random.randint(1,6)
    dice2 = random.randint(1,6)
    roll = dice1 + dice2
    return roll  

def update_list(roll):
    previousvalue = roll_list.pop(roll)
    roll_list.insert(roll,previousvalue + 1)


def print_histogram():
  for numbers in range(0,13):
    print(numbers, ":", "*" * roll_list[numbers])

# main program
init_list()
for y in range(0,num_rolls):
  update_list(roll_dice())

print(roll_list)
print_histogram()

标签: python

解决方案


最终代码:

import random

roll_list = []  
num_rolls = 100 

def init_list():
    for x in range (0,13):
      roll_list.append(0)

def roll_dice():
    dice1 = random.randint(1,6)
    dice2 = random.randint(1,6)
    roll = dice1 + dice2
    return roll  

def update_list(roll):
    previousvalue = roll_list.pop(roll)
    roll_list.insert(roll,previousvalue + 1)


def print_histogram():
  for numbers in range(0,13):
    print(numbers, ":", "*" * roll_list[numbers])

# main program
init_list()
for y in range(0,num_rolls):
  update_list(roll_dice())

print(roll_list)
print_histogram()


推荐阅读