PRINT和IF语句难度大

时间:2013-07-07 14:27:06

标签: python python-3.x

所以我的代码基本上模拟了每场比赛中棒球运动员(Joe DiMaggio)的击球。这是到目前为止的代码

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,并显示错误:语法无效。

有关如何解决此问题的任何帮助? 编辑:语法错误已修复,但现在它只是第一次添加它们,其余的打印都是4-4。

2 个答案:

答案 0 :(得分:3)

您需要修复打印件声明:

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

或使用字符串连接:

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

或字符串格式:

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

然后,您的代码将进入一个infine循环,一遍又一遍地重新计算m的相同值,因为随机值每次重新计算。 ijkl静态,它们不引用函数调用,它们引用 1的返回值分别致电random.randint()

您可以使用循环简化代码,每次 根据新的随机值重新计算m

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

答案 1 :(得分:1)

您必须使用连接运算符。

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

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