我试图在循环中使用if语句,但它不起作用

2024-10-03 13:24:51 发布

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

在我们开始之前,我想为我更改的瑞典名字提前道歉。 因此,我制作了一袋大理石,每种颜色(蓝色、红色、绿色)有三个大理石,具体代码如下:

if dragning_1 == dragning_2 == dragning_3: three = three + 1

如果我理解正确,它只在完成后计数一次,但我希望每个循环计数一次。完整代码如下:

import random

def ten_times (n):
  if n > 0:
    three = 0
    marbles = ["blue","blue","blue","red","red","red","green","green,","green"]
    dragning_1 = random.choice(marbles)
    kulpåse.remove(dragning_1)
    dragning_2 = random.choice(marbles)
    kulpåse.remove(dragning_2)
    dragning_3 = random.choice(marbles) 
    if dragning_1 == dragning_2 == dragning_3:
      three = three + 1
    n = n - 1
  print("så här många gånger drog vi tre av samma färg", three, "när vi drog", n + 1 , "gånger")

Tags: 代码ifrandomgreenblueredremove计数
2条回答

事实证明,这比那要复杂一点。第一个问题是它没有正确地循环。通过将n = n - 1更改为n-=1进行修复@卡拉OK别担心,我将开始使用一个计数器变量。:)

下一个问题是实际计数,需要进行两个主要更改才能解决: 第一个if n > 0:更改为while n > 0: 第二,我在打印它时遇到了一个问题,因为3只是定义中的一个值。我通过在ten_timeselse: print("this many times we got three", three)的定义末尾添加这行代码来解决这个问题

我想你应该试着理解if和while的结构

如果:如果满足条件(n>;0):执行

WHILE:只要满足条件:DO

在后一种情况下,代码运行n次

  import random

def ten_times (n):
    three = 0
    counter = n
    while counter > 0:
        marbles = ["blue","blue","blue","red","red","red","green","green,","green"]
        dragning_1 = random.choice(marbles)
        marbles.remove(dragning_1)
        dragning_2 = random.choice(marbles)
        marbles.remove(dragning_2)
        dragning_3 = random.choice(marbles) 
        if dragning_1 == dragning_2 == dragning_3:
            three+= 1
        counter-=1
    print("så här många gånger drog vi tre av samma färg", three, "när vi drog", n , "gånger")

也请使用计数器变量

相关问题 更多 >