嵌套For循环Resu

2024-09-30 08:32:27 发布

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

我有一个关于嵌套for循环结果的查询。你知道吗

代码

dieCount = [0,0,0,0,0,0,0,0,0,0,0]

Die1 = random.randint(1,10)
dieCount[Die1] = dieCount[Die1] + 1

Die2 = random.randint(1,10)
dieCount[Die2] = dieCount[Die2] + 1

Die3 = random.randint(1,10)
dieCount[Die3] = dieCount[Die3] + 1


print ("Dice Roll Stats:")
index = 1
print ("\nFace Frequency")
while index < (len(dieCount)):
    print (index)
    for number in range(dieCount[index]):
        print ("*")
    index = index + 1 

结果:

Face Frequency
1
2
3
4
*
5
6
*
7
8
9
*
10

就我的一生而言,我不知道如何得到这样的结果:

Face Frequency
1
2
3
4*
5
6*
7
8
9*
10

如果没有答案,请引导我到礼仪材料,以便我可以阅读它,我已经尝试了许多不同的代码修改,但我仍然没有一个像样的结果了。我可以使用print(“*”,end=''),但这会在数字前加上*。像wise一样,我尝试了打印(index,“*”),然后是del dieCount[Die1]等等。。删除重复的号码,但这将删除该号码完全从名单中。你知道吗


Tags: 代码forindexrandomdice号码faceprint
2条回答

试试这个:

index = 1
print ("\nFace Frequency")
while index < (len(dieCount)):
    output = str(index)
    for number in range(dieCount[index]):
        output += "*"
    print(output)
    index = index + 1 

但是我会这样写:

import random

dieCount = [0]*10

for i in range(3):
    dieCount[random.randint(0,9)] += 1

for i,v in enumerate(dieCount):
    print(str(i) + v * '*')

请注意,您的代码有一个bug,您的列表被初始化为11个零,但是您的random只生成10个可能的数字。Python中的列表索引从0开始,因此一直缺少列表的第一项。你知道吗

不需要嵌套循环。您可以使用字符串乘法并将其附加到初始print语句的末尾,如下所示:

while index < (len(dieCount)):
    print (str(index) + "*" * dieCount[index])
    index += 1

相关问题 更多 >

    热门问题