这个问题有两个问题:
- 是否有一组特定的条件优先规则与 while 循环中的条件相关?
- 我怎样才能获得两个满足条件之一(即condition_x OR condition_y)来完成一个循环?
细节:
作为一个 python 新手,我在 while 循环中遇到了一种情况,其中某些条件优先于其他条件。
我正在尝试制作:
- 所需的两个值之一,即“y”或“n”
- 但是,如果选择“n”,则返回一个自定义提示,然后允许值“ok”
- 并使其在步骤 1 中输入 'y' 或在步骤 3 中输入 'ok' 将完成循环
发生的情况是,当输入“n”时,第一个条件优先并返回语句:
please enter 'y' or 'n'
当我希望它返回时:
oh come on, enter 'ok'
代码:
(我知道使用两个break
's 可能是错误的 - 我不知道如何让 'y' 或 'ok' 完成循环)
while True:
user_input = raw_input('question? (y/n)')
my_string = 'here is a string '
if len(user_input) == 0:
print 'question? (y/n)'
elif user_input is not 'y' or 'n':
print 'please enter \'y\' or \'n\''
elif user_input is 'n':
print 'oh come on, enter \'ok\''
elif user_input is 'ok':
print my_string + ', ' \
.join(list_var[:-1]), list_var[-1] + '?'
break
else:
print my_string + ', ' \
.join(list_var[:-1]), list_var[-1] + '?'
break