【发布时间】:2018-01-18 08:49:37
【问题描述】:
我知道这个问题可能看起来很愚蠢,但我真的不明白逻辑。 这真的很简单,我想做一个写入或读取文件的程序。 所以我要求这个人输入“w”或“r”。 只要输入不是“w”或“r”,我就会一直问。 下面的代码有效,我尝试了不同的方法,但我不明白为什么它与'and'一起工作,因为对我来说它应该是'or':
re=input("type w for write , r for read\n")
while re != 'w' and re!='r':
re=input("type w or r")
print("ok")
【问题讨论】:
-
只需使用
If而不是while并更改or而不是and并尝试。 -
这就像在问“我不明白为什么 1+1 是 2 而我应该是 5”。你错了,没什么好解释的……这是
or和and的基本定义…… -
评估表达式并再次查看,例如,如果 re 不是 w 或 r,则结果为
while True and True: -
这是De Morgan's Laws。即 ~ (A v B) ~A ^ ~B ... 用简单的英语,来自 wolfram alpha:“A 或 B 为真不是真的”和“A 不是真的,B 不是真的”是等价的。类似地,“A 和 B 不为真”和“A 不为真或 B 不为真”这两个陈述是等价的。”
-
这真的是你应该用笔和纸简单地完成的事情。