我已经在python中定义了一个名为days_of_week()
的函数,该函数每次运行时都会在一周中的任意一天输出(即,Sun,Mon,Tu,Wed,Th,Fri,Sat)。此功能位于名为myrandom.py
的模块中。
现在,我正在创建脚本并导入该模块以创建一个新功能(称为myfunction()
),该功能将运行days_of_week()
一百次。为了做到这一点,我使用了for循环。我现在想做的是跟踪此新功能的“结果”,并打印随机功能选择一周中的每一天的次数。例如,
Sun 20
Mon 15
Tu 13
Wed 14
Th 10
Fri 14
Sat 14
这是我到目前为止的代码:
import myrandom
def myfunction()
for i in range(100):
myrandom.days_of_week()
我不知道我需要在此脚本中包含哪些函数才能获得所需的输出。我曾考虑过使用if语句或变量,但同样,我也不知道如何处理它们。
能请你帮我吗?
答案 0 :(得分:0)
只需将days_of_week()中的结果保存在这样的列表中:
import myrandom
def myfunction()
days = []
for i in range(100):
days.append(myrandom.days_of_week())
return days
然后,您可以计算myfuction()
返回列表中的天数。
rand_days = myfunction()
print "Su %s" % rand_days.count('Su')
etc ...
更新:要输出列表中的天数,请定义myfunction
,如下所示:
import myrandom
def myfunction():
days_of_the_week = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat']
random_days = []
for i in range(100):
random_days.append(myrandom.days_of_week())
for d in days_of_the_week:
print "%s %s" % ( d, random_days.count(d))
答案 1 :(得分:0)
您可以创建一个词典,并使用天作为键,并将每一天频率的计数存储在其对应的值中
import random
days_of_week = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']
res = [random.choice(days_of_week) for i in range(100)]
d = {i: res.count(i) for i in days_of_week}
Su 9 Mo 13 Tu 18 We 21 Th 16 Fr 12 Sa 11
答案 2 :(得分:0)
您应该使days_of_week
函数返回选择的日期,以便调用者可以跟踪字典中每天选择的次数:
from random import choice
def days_of_week():
day = choice(['Sun', 'Mon', 'Tu', 'Wed', 'Th', 'Fri', 'Sat'])
print('Picked: ' + day)
return day
然后:
def myfunction()
day_counts = {}
for i in range(100):
day = myrandom.days_of_week()
day_counts[day] = day_counts.get(day, 0) + 1
for day, count in day_counts.items()
print(day, count)
答案 3 :(得分:0)
将结果追加到列表中
import myrandom
def myfunction():
My_list =[ ]
for i in range(100):
My_list.appebd(myrandom.days_of_week())
print(My_list)
答案 4 :(得分:0)
import myrandom
def myfunction()
counter = {}
for i in range(100):
day = myrandom.days_of_week()
if day in counter:
counter[day] += 1
else:
counter[day] = 1
只需添加到您已经编写的函数中,而无需对其进行大量更改,就可以定义一个字典,在星期几中添加起始值1,然后在每次点击时将该值添加到该值中。您可以以print counter
结尾或通过调用等于您感兴趣的日期的键来使用所需的信息。
编辑:要以原始格式打印出来,您可以执行以下操作。
for key in counter:
print key + counter[key]
要考虑的一件事是字典不保留其顺序。您可以通过将以上内容更改为以下内容来强制执行所需的订单:
day_order = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
for day in day_order:
print day + counter[day]
答案 5 :(得分:0)
在for循环中保持计数的一个简单示例是跟踪抛硬币。
value
将其摘要到您一周中的某天示例中。
count = 0
for i in range(100):
if random.randint(0,1): #returns 0 or 1, aka heads/tails
count += 1