通过将while转换为do-while来缩短python中的骰子匹配游戏[重复]

Posted

技术标签:

【中文标题】通过将while转换为do-while来缩短python中的骰子匹配游戏[重复]【英文标题】:Shortening the dice-matching game in python by converting a while to a do-while [duplicate] 【发布时间】:2017-09-01 20:35:19 【问题描述】:

以下程序按预期工作。它首先打印一个字符串,然后将 3 个变量分配给 3 个单独的整数。使用这些整数,它会检查第三个整数是否不等于第一个整数加上第二个整数。如果前两个整数相加后不等于第三个整数,程序会打印出所有三个整数,然后重复分配整数并继续,直到前两个整数等于加在一起的第三个整数。例如:6 + 6 = 12 或 3 + 3 = 10

from __future__ import print_function
import random
print("HERE COMES THE DICE!")
r1 = random.randint(1,6)
r2 = random.randint(1,6)
total = r1 + r2
while r1 != r2:
    r1 = random.randint(1,6)
    r2 = random.randint(1,6)
    total = r1 + r2
    print("Roll #1: ".format(r1))
    print("Roll #2: ".format(r2))
    print("The total is !".format(total))

我目前在使用这个程序时遇到的问题是如何通过将 while 循环转换为 do-while 循环来缩短它。我了解 Java 中的 do-while 循环,但对 Python 版本一无所知。

【问题讨论】:

python 中没有do-while。这就是while @Ev.Kounis 我认为有一种方法可以在 python 中模拟或模拟 do-while @RichardGreen 如果你觉得是,请投票结束这个问题,我会这样做 【参考方案1】:

Python 没有 do while 循环,因此最接近模拟它的方法是更改​​它:

while r1 != r2:
    [...]

变成这样:

while True:
    [...]
    if r1 != r2:
        break

【讨论】:

以上是关于通过将while转换为do-while来缩短python中的骰子匹配游戏[重复]的主要内容,如果未能解决你的问题,请参考以下文章

题目1194:八进制----------------------进制转换用do-while就OK了

Do-While 循环,但 while 语句的值在 Do 语句内

while和do-while的区别

《C#零基础入门之百识百例》(十六)循环结构do-while语句 -- 这道题会做了吗?

如何在我的 do-while 循环中解决此分段错误?

Swift学习——使用if和switch来进行条件操作,使用for,while,和do-while来进行循环