打印和IF语句有困难

2024-04-26 15:11:52 发布

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

所以我的代码基本上是模拟棒球运动员(乔·迪马吉奥)在每场比赛中的击球。这是目前为止的代码

import random
i = random.randint(1, 100)
j = random.randint(1, 100)
k = random.randint(1, 100)
l = random.randint(1, 100)
while True:
    if i <= 32:
        i = 1
    else:
        i = 0
    if k <= 32:
        k = 1
    else:
        k = 0
    if j <= 32:
        j = 1
    else:
        j = 0
    if l <= 32:
        l = 1
    else:
        l = 0
    m = i+j+k+l
    print("He went", m, "-4")

我想知道它是否适用于所有不同的if和ELSE语句。同样,当我尝试运行这个命令时,它会突出显示print语句中的m,并显示错误:Invalid Syntax。你知道吗

有人帮我修吗? 编辑:语法错误已经修复,但现在只是第一次加起来,其余的打印都是4-4。你知道吗


Tags: 代码importtrueifrandom语句elsehe
2条回答

必须使用串联运算符。你知道吗

print("He went " + str(m) + "-4")

因此,在打印输出之前,将输出连接为单个字符串

您需要修复打印位置:

print("He went", m, "-4")

或使用字符串串联:

print("He went" + str(m) + "-4")

或字符串格式:

print("He went {} -4".format(m))

然后,您的代码将进入一个infine循环,一次又一次地重新计算m的相同值,因为每次都是而不是重新计算的随机值。ijkl静态的,它们不引用函数调用,而是引用每个调用的一个调用的返回值。你知道吗

您可以使用循环来简化代码,循环每次都基于新的随机值重新计算m

m = sum(1 for i in range(4) if random.random() < 0.32)

相关问题 更多 >