“ True在Python中是什么意思?

问题描述 投票:80回答:15
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”赋值,该怎么办?

python syntax
15个回答
99
投票

while True表示永远循环。 while语句采用一个表达式并执行循环主体,同时该表达式的计算结果为(布尔)“ true”。 True始终求值为布尔值“ true”,因此无限期执行循环体。这是一个习惯,您最终会习惯的!您可能会遇到的大多数语言都有相同的习惯用法。

请注意,大多数语言通常都有一些机制可以尽早脱离循环。对于Python,它是您问题中样本的break情况下的cmd == 'e'语句。


1
投票

直接回答您的问题:循环条件为True时。在这段特定的代码中,它始终是。


0
投票

while循环继续循环直到条件为假。例如(伪代码):

i = 0
while i < 10
  i++

0
投票

没有什么比True更快地求True。因此,如果您使用while True而不是while 1==1等,则很好。


0
投票
while True:
    ...

表示无限循环。


0
投票

而True表示无限循环,通常用于较长的过程。您可以更改

while True:

-4
投票

在出现相反的情况之前,任何东西都可以视为True。这就是二元性的工作方式。这是比较对立面的一种方式。黑色可​​以为True,直到白色为止为False。黑色也可以是False,直到白色时才是True。它不是状态,而是相反状态的比较。如果任何一个为True,则另一个为错误。 True并不表示它正确或被接受。在这种状态下,对立始终为False。这是双重性。


48
投票

我的问题:什么是正确的?

TrueTrue

while循环将一直运行,只要条件表达式的值为True

由于True总是求值为True,所以循环将无限期地运行,直到循环return s或break s中有东西为止。


9
投票

我的问题:什么是正确的?

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时。


8
投票

True为真-即始终如此。这是一个无限循环

[注意,此处的重要区别True是一种语言,它表示特定类型的常量值,而'true'是数学概念。


4
投票

在这种情况下,我想它可以解释为

do
...
while cmd  != 'e' 

3
投票

[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的值。


3
投票

[正式地,Truebuilt-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认为TruthPerl 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。这是双重性。


1
投票

while循环采用条件参数(意味着通常为true或false或可以这样解释的东西),并且仅在条件产生True时执行。


1
投票

在某些语言中,True只是数字的别名。您可以通过阅读有关boolean logic的信息来了解更多原因。

© www.soinside.com 2019 - 2024. All rights reserved.