while
循环采用条件参数(意味着通常为true或false或可以这样解释的东西),并且仅在条件产生True
时执行。
def play_game(word_list):
hand = deal_hand(HAND_SIZE) # random init
while True:
cmd = raw_input('Enter n to deal a new hand, r to replay the last hand, or e to end game: ')
if cmd == 'n':
hand = deal_hand(HAND_SIZE)
play_hand(hand.copy(), word_list)
print
elif cmd == 'r':
play_hand(hand.copy(), word_list)
print
elif cmd == 'e':
break
else:
print "Invalid command."
什么是正确的?
我认为说'while true'是速记,但是为什么呢?为变量“手”分配值时?如果没有为变量“ hand”赋值,该怎么办?
while True
表示永远循环。 while
语句采用一个表达式并执行循环主体,同时该表达式的计算结果为(布尔)“ true”。 True
始终求值为布尔值“ true”,因此无限期执行循环体。这是一个习惯,您最终会习惯的!您可能会遇到的大多数语言都有相同的习惯用法。
请注意,大多数语言通常都有一些机制可以尽早脱离循环。对于Python,它是您问题中样本的break
情况下的cmd == 'e'
语句。
直接回答您的问题:循环条件为True时。在这段特定的代码中,它始终是。
while
循环继续循环直到条件为假。例如(伪代码):
i = 0
while i < 10
i++
没有什么比True
更快地求True
。因此,如果您使用while True
而不是while 1==1
等,则很好。
while True: ...
表示无限循环。
而True表示无限循环,通常用于较长的过程。您可以更改
while True:
在出现相反的情况之前,任何东西都可以视为True。这就是二元性的工作方式。这是比较对立面的一种方式。黑色可以为True,直到白色为止为False。黑色也可以是False,直到白色时才是True。它不是状态,而是相反状态的比较。如果任何一个为True,则另一个为错误。 True并不表示它正确或被接受。在这种状态下,对立始终为False。这是双重性。
我的问题:什么是正确的?
而True
是True
。
while循环将一直运行,只要条件表达式的值为True
。
由于True
总是求值为True
,所以循环将无限期地运行,直到循环return
s或break
s中有东西为止。
我的问题:什么是正确的?
while语句()中的所有内容都将被评估为布尔值。意味着它会转换为true或false。
考虑语句while(6 > 5)
首先计算表达式6 > 5
,即true
,所以与说while(true)
相同
任何不是FALSE,0,空字符串“”,null或undefined的值都可能被评估为true。
[当我第一次开始编程时,我曾经做过if(foo == true)
之类的事情,但我没有意识到这实际上与if(foo)
是同一件事。
所以当您说while(true)
时,就像在说while(true == true)
因此回答您的问题:当TRUE为True时。
而True
为真-即始终如此。这是一个无限循环
[注意,此处的重要区别True
是一种语言,它表示特定类型的常量值,而'true'是数学概念。
在这种情况下,我想它可以解释为
do
...
while cmd != 'e'
[True
始终为True
,因此while True
将永远循环。
while
关键字采用一个表达式,并在表达式为true时循环。 True
是始终为真的表达式。
作为一个可能澄清的示例,请考虑以下内容:
a = 1
result = a == 1
这里,a == 1
将返回True
,因此将True
放入result
。因此,
a = 1
while a == 1:
...
等效于:
while True:
...
只要您不更改a
循环内的while
的值。
[正式地,True
是built-in constant类型的Python bool。
您可以在布尔类型上使用Boolean operations(例如在交互式python提示符下,并在布尔类型上使用convert numbers:
>>> print not True
False
>>> print not False
True
>>> print True or False
True
>>> print True and False
False
>>> a=bool(9)
>>> print a
True
>>> b=bool(0)
>>> print b
False
>>> b=bool(0.000000000000000000000000000000000001)
>>> print b
True
而且您所看到的以及Python编译器所看到的可能存在“陷阱”:
>>> n=0
>>> print bool(n)
False
>>> n='0'
>>> print bool(n)
True
>>> n=0.0
>>> print bool(n)
False
>>> n="0.0"
>>> print bool(n)
True
作为关于Python如何在内部存储bool类型的提示,您可以将bool类型转换为整数,True的值为1和False 0:
>>> print True+0
1
>>> print True+1
2
>>> print False+0
0
>>> print False+1
1
实际上,Python bool
类型是Python int
类型的子类:
>>> type(True)
<type 'bool'>
>>> isinstance(True, int)
True
您问题中最重要的部分是“ while True
是什么?”是“什么是真实的”,还有一个重要的推论:什么是错误的?
首先,对于您正在学习的每种语言,要学习该语言所认为的“真实的”和“虚假的”。例如,Python认为Truth与Perl Truth略有不同。其他语言的slightly different concepts为true / false。 知道您的语言对于不同的操作和流控制认为是对还是错,以避免以后出现很多头痛!]] >> [在很多算法中,您需要处理某些东西,直到找到所需的东西为止。因此,infinite loop或不确定循环。每种语言在这些结构上都有自己的成语。这是常见的C无限循环,也适用于Perl:
for(;;) { /* loop until break */ } /* or */ while (1) { return if (function(arg) > 3); }
while True:
形式在Python中很常见,用于不确定的循环,具有某种打破循环的方式。学习Python flow control以了解如何突破while True
循环。例如,与大多数语言不同,Python在循环上可以具有else
子句。最后一个链接中有一个示例。
while
循环采用条件参数(意味着通常为true或false或可以这样解释的东西),并且仅在条件产生True
时执行。
关于while True
?好吧,最简单的真实条件是True
本身!因此,这是一个无限循环,通常适用于需要大量循环的游戏。 (不过,从我的角度来看,更常见的做法是将某种“完成”变量设置为false,然后将其设置为true结束游戏,循环看起来更像while not done:
或其他。)
在某些语言中,True只是数字的别名。您可以通过阅读有关boolean logic的信息来了解更多原因。
直接回答您的问题:循环条件为True时。在这段特定的代码中,它始终是。
while
循环继续循环直到条件为假。例如(伪代码):
i = 0
while i < 10
i++
在循环的每次迭代中,i
将增加1,直到达到10。这时,条件i < 10
不再成立,循环将完成。
由于while True
中的条件是明确且始终为true
,所以循环永远不会结束(直到它以某种其他方式被打破,通常是通过循环体内的break
之类的结构)。
没有什么比True
更快地求True
。因此,如果您使用while True
而不是while 1==1
等,则很好。
while True: ...
表示无限循环。
while语句通常用于有限循环。但是使用常量'True'可以保证while语句的重复,而无需控制循环(例如,在迭代过程中设置一个布尔值),除非您想打破它。
实际上
True == (1 == 1)
而True表示无限循环,通常用于较长的过程。您可以更改
while True:
with
while 1:
在出现相反的情况之前,任何东西都可以视为True。这就是二元性的工作方式。这是比较对立面的一种方式。黑色可以为True,直到白色为止为False。黑色也可以是False,直到白色时才是True。它不是状态,而是相反状态的比较。如果任何一个为True,则另一个为错误。 True并不表示它正确或被接受。在这种状态下,对立始终为False。这是双重性。
while
循环采用条件参数(意味着通常为true或false或可以这样解释的东西),并且仅在条件产生True
时执行。
在某些语言中,True只是数字的别名。您可以通过阅读有关boolean logic的信息来了解更多原因。