关于"真实"的基本问题

Bab*_*aba 76 python syntax

级别:初学者

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."
Run Code Online (Sandbox Code Playgroud)

我的问题:什么是真的?

我认为"虽然真实"是简写但是为了什么?而变量'hand'被赋值?如果变量'hand'没有赋值?该怎么办?

Ric*_*ook 97

while True意味着永远循环.该while语句采用表达式并执行循环体,而表达式求值为(boolean)"true".True始终求值为布尔值"true",从而无限期地执行循环体.这是你最终会习惯的成语!您可能遇到的大多数语言都有相同的习语.

请注意,大多数语言通常都有一些早期打破循环的机制.在Python的情况下,它是您问题中样本的break声明cmd == 'e'.

  • 正如我的一位老师所指出的那样:如果你认为'true == true`是一种改进,你会在哪里停下来?`(true == true)== true`会不会更好? (30认同)
  • 克里斯,"而真的==真实"是丑陋的.它和`'苹果'一样难看!!='oranges'` :) (9认同)
  • @Chris,最终应该知道可以使用布尔值或变量代替逻辑表达式,并且"最终"应该尽快. (9认同)
  • 为清楚起见,我相信你可以在大多数语言中做到(true == true).这可能有助于新程序员更好地理解其背后的逻辑. (7认同)
  • @Chris:我看不出添加语法会有什么帮助. (3认同)
  • @Mark最终应该意识到,有时需要一些额外的帮助才能让新程序员理解布尔逻辑等.我所要做的就是帮助他理解它. (3认同)
  • 这只是对那些不理解的人的澄清,您不必在那里进行比较,只需一个布尔值。(true==true) 在一般意义上并不是更好,只是为了解释一些事情。这不是你在现实世界或任何其他时间会做的事情。 (2认同)
  • 如果你认为`while True == True`是好的,而'False == False`是坏的,你就误解了一切. (2认同)

Dag*_*bit 45

我的问题:什么是真的?

虽然TrueTrue.

只要条件表达式求值为,while循环就会运行True.

由于True总是求值True,循环将无限期地运行,直到循环returns或breaks 内的某些东西.

  • 这是python.没有带括号的表达式; P. (4认同)

Chr*_*odd 8

虽然True是真的 - 即总是如此.这是一个无限循环

注意这里的重要区别True是,语言中的关键字表示特定类型的常量值,而"true"是数学概念.

  • @Blindy:在带有自动转换的弱类型语言中,你可以说x'评估为'y ...不是5而不是严格等于0,而5是松散等于True. (3认同)
  • 我认为说“无限循环”更合适;必须假设循环将在某个时刻被中断或返回中断。真正的“无限”循环是程序员的错误;“无限循环”是由设计创造的。 (2认同)

JD *_*cks 8

我的问题:什么是真的?

while语句的()内​​的所有内容都将被计算为布尔值.意味着它被转换为true或false.

请在声明中考虑 while(6 > 5)

它首先评估表达式6 > 5,这true与说法相同while(true)

任何非FALSE,0,emptry字符串"",null或undefined都可能被评估为true.

当我第一次开始编程时,我常常做的事情if(foo == true),我没有意识到这几乎是一样的if(foo).

所以,当你说它while(true)喜欢说while(true == true)

所以回答你的问题:虽然TRUE是真的.