gpt4 book ai didi

Python 'while' 有两个条件 : "and" or "or"

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:22 24 4
gpt4 key购买 nike

这是一个非常简单的掷骰子程序,它会不断掷两个骰子,直到得到双六。所以我的 while 语句结构如下:

while DieOne != 6 and DieTwo != 6:

出于某种原因,程序在 DieOne 得到 6 后立即结束。 DieTwo 完全没有考虑。

但是,如果我在 while 语句中将 and 更改为 or,程序将完美运行。这对我来说没有意义。

import random
print('How many times before double 6s?')
num=0
DieOne = 0
DieTwo = 0

while DieOne != 6 or DieTwo != 6:
num = num + 1
DieOne = random.randint(1,6)
DieTwo = random.randint(1,6)
print(DieOne)
print(DieTwo)
print()
if (DieOne == 6) and (DieTwo == 6):
num = str(num)
print('You got double 6s in ' + num + ' tries!')
print()
break

最佳答案

底部的 TLDR。

首先,如果以下条件为真,则 while 循环运行,所以

DieOne != 6 or DieTwo != 6:

简化后必须返回真,while 函数才能运行

如果两个条件都为真,则运算符返回真,因此while循环只会在真和真时运行。

例如,如果其中一个骰子掷出 6,则不会运行以下代码:

while DieOne != 6 and DieTwo != 6:

如果 DieOne 掷出 4 而 DieTwo 掷出 6,则 while 循环不会运行,因为 DieOne != 6 为真,而 DieTwo != 6 为假。我把这个思路写成下面的代码。

while DieOne != 6 and DieTwo != 6:
while True and False:
while False: #So it won't run because it is false

or 运算符的工作方式不同,当一个条件为真时,or 运算符返回 true,因此 while 循环将在它是 True 或 TrueTrue 或 False,或者 _False 或 True。所以

while DieOne != 6 or DieTwo != 6:

如果只有一个骰子掷出 6,就会运行。例如:

如果 DieOne 掷出 4 而 DieTwo 掷出 6,则 while 循环将运行,因为 DieOne != 6 为真,而 DieTwo != 6 为假。我把这个思路写成下面的代码。

while DieOne != 6 or DieTwo != 6:
while True or False:
while True: #So it will run because it is true

TLDR/审查:

while True: #Will run
while False: #Won't run

和:

while True and True: #Will run
while True and False: #Won't run
while False and True: #Won't run
while False and False: #Won't run

或者:

while True or True: #Will run
while True or False: #Will run
while False or True: #Will run
while False or False: #Won't run

关于Python 'while' 有两个条件 : "and" or "or",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54163163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com