我主要有使用visual basic编程的经验,并且我正在尝试学习python。我试图以do until循环的形式创建一个条件循环。我不知道如何在python中做到这一点,我可以使用一些帮助。我有一个do until循环,其中包含if语句。这就是我所拥有的。
number = 18
do while number = 1
if number%2==0 then
number = number/2
else number = (number*3)+1
loop
print(number)
任何帮助都会很棒。感谢
答案 0 :(得分:1)
Python中没有do … while
循环。我相信FAQ中的某个地方可以解释原因,以及如何解决它。
但这并不重要,因为你所写的不是do … while
循环,它只是一个简单的while
循环。在每种语言中do … while
的唯一一点就是你将测试条件放在循环体之后而不是之前,这样可以保证循环至少运行一次,这样可以避免这样做预循环设置,你必须在循环内复制。
所以,要将代码翻译成Python:
number = 18
while number == 1:
if number%2==0:
number = number/2
else:
number = (number*3)+1
print(number)
然而,值得注意的是,自循环之前的number = 18
以来,第一次永远不会是== 1
,所以这只是跳过整个事情并打印出来{{1} }。
您可能想要18
或while number != 1
,但在任何人编写之前,您必须弄清楚您真正想要写的内容。
答案 1 :(得分:0)
Python中没有'do / while'。最接近的是一个循环,保证循环一次,然后在1次迭代后得到退出测试。
while True: # kinda like 'do'
# do something at least once
if fail_condition(): # here is your 'while' test
break # end the loop if 'fail_condition' is True
# loop again if 'fail_condition' is not True
您的代码(Collatz/Hailstone?)大致如下:
number, i = 18, 0
while number>1:
i+=1
if number%2==0:
number = number/2
else:
number = (number*3)+1
print 'Reached {} after {} loops'.format(number,i)
# prints 'Reached 1 after 20 loops'
答案 2 :(得分:-1)
即使在python中也是上面的代码?而不是做,而只是一会儿。在if语句之后,没有。快速重新格式化将如下所示:
number = 18
while number == 18:
if number%2==0:
number = number/2
else:
number = (number*3)+1
print(number)
答案 3 :(得分:-2)
do while
不是python中常用的构造。只需使用while
循环。
https://wiki.python.org/moin/WhileLoop
例如,您的代码可以修改如下。
number = 18
while number == 1:
if ( number % 2 ) == 0:
number = number / 2
else:
number = ( number * 3 ) + 1
print number
这些语言之间最大的区别之一是python是关于制表符分隔的。您无需指定循环的开始和结束,选项卡会为您执行此操作。此外,不是条件语句后的':'。
但我会注意到上述代码不会产生任何有效答案。也许你的意思是循环运行而数字不等于1?