一个关于“真实”的基本问题
等级:初学者
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." 我的问题:什么是真的?
我认为“虽然真实”是速记,但为什么呢? 而variables“手”正在分配一个值? 以及如果variables“手”没有被赋值?
  while True意味着循环永远。  while语句需要一个expression式,并在expression式求值为(boolean)“true”时执行循环体。  True总是评估为布尔“真”,从而无限期地执行循环体。 这是一个习惯,你会习惯最终! 你可能遇到的大多数语言都有相同的习语。 
 请注意,大多数语言通常都有一些早期打破循环的机制。 在Python的情况下,它是你的问题中的示例中cmd == 'e'情况下的break语句。 
我的问题:什么是真的?
 而True的。 
 只要条件expression式的计算结果为True ,while循环就会运行。 
 由于True总是计算为True ,因此循环将无限期地运行,直到循环中的某些内容return或break为止。 
 而“ True是真的 – 即永远。 这是一个无限循环 
请注意这里的重要区别,它是表示一个特定types的常数值的语言中的关键字“真”和作为math概念的“真”。
我的问题:什么是真的?
while语句()中的所有内容都将被评估为布尔值。 这意味着它被转换成真或假。
 在while(6 > 5) 
 它首先评估expression式6 > 5 ,这是true , 
任何非FALSE,0,emptrystring“”,null或undefined都可能被评估为true。
 当我第一次开始编程时,我曾经做过如if(foo == true)事情,但是我没有意识到这与if(foo)几乎是一样的。 
 所以当你说的while(true)就像是在说while(true == true) 
所以要回答你的问题:而TRUE是真的。
在这种情况下,我想这可以解释为
 do ... while cmd != 'e' 
 在forms上, True是一个Python 内置的booltypes的常量 。 
你可以在booltypes上使用布尔操作 (例如在交互式python提示符下) 并将数字转换为booltypes:
 >>> 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如何在内部存储booltypes的提示,您可以将booltypes转换为整数,True将会变为1,并且为False 0:
 >>> print True+0 1 >>> print True+1 2 >>> print False+0 0 >>> print False+1 1 
 实际上,Python booltypes是Python inttypes的一个子类: 
 >>> type(True) <type 'bool'> >>> isinstance(True, int) True 
 你问题中更重要的部分是“什么是while True ?” 是“什么是真的”,一个重要的推论:什么是错误的? 
首先,对于你正在学习的每种语言,学习语言认为“真实”和“虚假”。 例如,Python认为Truth与Perl Truth稍有不同。 其他语言的真/假概念略有不同 。 知道你的语言认为是真的和假的不同的操作和stream量控制,以避免以后很多头痛!
有很多algorithm,你想处理的东西,直到你find你在找什么。 因此无限循环或无限循环。 每种语言对于这些结构都倾向于有自己的成语。 这里是常见的C无限循环,也适用于Perl:
 for(;;) { /* loop until break */ } /* or */ while (1) { return if (function(arg) > 3); } 
  while True:forms在Python中是常见的,因为它有一些突破循环的不确定循环。 了解Python stream程控制,以了解如何while True循环中跳出。 与大多数语言不同,例如,Python可以在循环中有一个else子句。 最后一个链接中有一个例子。 
  while循环需要一个条件参数(意思是通常是真或假,或者可以被解释为这样),并且只有在条件成立时才执行。 
 至于while True ? 那么,最简单的真正的条件是True本身! 所以这是一个无限循环,通常在需要大量循环的游戏中是很好的。  (但从我的angular度来看,更常见的是将某种“完成”variables设置为false,然后将结果设置为true来结束游戏,而循环看起来更像是while not done: )。 
在某些语言中,True只是数字的别名。 你可以通过阅读关于布尔逻辑的更多信息来了解更多信息。
  while循环继续循环直到条件为false。 比如(伪代码): 
 i = 0 while i < 10 i++ 
 随着循环的每一次迭代, i将增加1,直到它为10.在这一点上,条件i < 10不再是真实的,循环将完成。 
 由于while True的条件是明确且始终为true ,所以循环将永远不会结束(直到它以某种其他方式分裂出来,通常由循环体内的构造如break )。 
  True永远是True ,所以while True会永久循环。 
  while关键字接受一个expression式,并在expression式为真时循环。  True是一个永远是真的expression。 
作为一个可能的澄清的例子,考虑以下几点:
 a = 1 result = a == 1 
 在这里, a == 1将返回True ,并因此将True变成result 。 因此, 
 a = 1 while a == 1: ... 
相当于:
 while True: ... 
 前提是你不要改变while循环内部的值。 
 没有什么比True计算结果更快。 所以,如果你使用while True而不是while 1==1等 
 while True: ... 
意味着无限循环。
while语句经常使用有限循环。 但是使用常量“True”可以保证while语句的重复,而不需要控制循环(例如,在迭代中设置一个布尔值),除非你想打破这个循环。
事实上
 True == (1 == 1) 
而True则意味着无限循环,这通常是由长进程使用的。 你可以改变
 while True: 
同
 while 1: 
要直接回答你的问题:while循环条件为True。 它总是在这个特定的代码中。
任何东西都可以被视为真,直到相反。 这是双重性的工作方式。 这是对比的一种方式。 黑色可以是真的,直到白色,这是错误的。 黑色也可以是错误的,直到白色是真的。 这不是一个国家,而是一个相反状态的比较。 如果其中一个是对的,另一个是错的。 并不意味着这是正确的或被接受的。 这是一个对面总是假的状态。 这是双重性。