while y != 100:
dice = random.randint(1,6)
print('Roll '+str(dice)+' ... '+str(y)+' + '+str(dice)+' is '+str(y+dice))
z = y
y = y + dice
if y > 100:
print('Roll '+str(dice)+' ... '+str(z)+' + '+str(dice)+' is over 100. Therefore it remains at '+str(z)+'\n')
y = z
input('Press <Enter> to roll again...\n')
上述代码的输出是:
(
再按一次滚动...
Roll 5 ... 98 + 5是103
Roll 5 ... 98 + 5超过100.因此它保持在98
再按一次滚动...)
如何跳过'Roll 5 ... 98 + 5 is 103'部分:
(
再按一次滚动...
Roll 5 ... 98 + 5超过100.因此它保持在98
再次按下滚动...)???
答案 0 :(得分:0)
以下是编辑过的代码:
#import time
y=0
while True:
#time.sleep(1.0) #Wait 1 second before rolling dice to prevent rolling too fast
dice = random.randint(1,6); y = y + dice
if y < 100: print('You rolled '+str(dice)+' ... '+str(y-dice)+' + '+str(dice)+' is '+str(y))
if y > 100: print('Roll '+str(dice)+' ... '+str(y-dice)+' + '+str(dice)+' is over 100. Therefore it remains at '+str(z)+'\n'); y = y-dice
try: a = input('Press <Enter> to roll again...\n')
except: a=''
elif
没有if语句input('Press <Enter> to roll again...\n')
作为其执行值a = input('Press <Enter> to roll again...\n')
无论如何都需要执行,而不是放在if语句中,并且它只需要一个空行,因此它需要捕获在调用空行时引发的错误答案 1 :(得分:0)
在打印之前检查y > 100
。然后,如果y
大于100,则打印“大于100”消息,并且不打印另一条消息。啊,用代码解释起来比较容易:
while y != 100:
dice = random.randint(1,6)
z = y
y = y + dice
if y > 100:
print('Roll '+str(dice)+' ... '+str(z)+' + '+str(dice)+' is over 100. Therefore it remains at '+str(z)+'\n')
y = z
input('Press <Enter> to roll again...\n')
else:
print('Roll '+str(dice)+' ... '+str(y)+' + '+str(dice)+' is '+str(y+dice))
您可以看到我已将包含实际总数的print语句移动到else
&lt; = 100时执行的y
语句。
我还没有检查过剩下的逻辑。