如何在Python中跟踪for循环的输出?

时间:2018-10-02 04:05:11

标签: python

我已经在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语句或变量,但同样,我也不知道如何处理它们。

能请你帮我吗?

6 个答案:

答案 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