所以我的代码基本上模拟了每场比赛中棒球运动员(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。
答案 0 :(得分:3)
您需要修复打印件声明:
print("He went", m, "-4")
或使用字符串连接:
print("He went" + str(m) + "-4")
或字符串格式:
print("He went {} -4".format(m))
然后,您的代码将进入一个infine循环,一遍又一遍地重新计算m
的相同值,因为随机值每次不重新计算。 i
,j
,k
和l
是静态,它们不引用函数调用,它们引用 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")
因此,在打印输出之前,您将输出连接为单个字符串