加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 循环多选题?

发布时间:2020-12-20 12:13:17 所属栏目:Python 来源:网络整理
导读:所以这就是我正在努力解决的问题.我希望Yes和No两者都相同,并且结束循环(我尚未开始),但是当输入的内容不是Yes或No时它会再次循环问题,直到是或否输入.我无法弄清楚如何做这个部分,我还在学习,而循环对我来说是个新的基础. 我正在使用2.7 d1 = raw_input('Pl
所以这就是我正在努力解决的问题.我希望Yes和No两者都相同,并且结束循环(我尚未开始),但是当输入的内容不是Yes或No时它会再次循环问题,直到是或否输入.我无法弄清楚如何做这个部分,我还在学习,而循环对我来说是个新的基础.

我正在使用2.7

d1 = raw_input('Please answer with Yes or No.n')
if d1 == 'Yes':
    print('Good,let's begin.')
elif d1 == 'No':
    print('Good,let's begin.')
if d1 == 'yes':
    print('Good,let's begin.')
elif d1 == 'no':
    print('Good,let's begin.')
else:
    ps('Mmmmm...')

解决方法

在编写任何类型的循环时要记住的两件事,特别是循环时

>我在循环什么?
>循环结束了什么?更具体地说,我可以立即知道这种情况还是我必须先运行循环?

在这种情况下,#1只是raw_input. #2是d1在某种形式上是或否.在进入循环之前你无法知道这一点,所以你不能直接把它放在循环的条件下.这有两个选择:

>设置一个变量来表示条件并初始化它以确保循环的第一次迭代:

found = False
while not found:
    d1 = raw_input(...)
    if d1.lower() in ('yes','no'):
        found = False
    else:
        print("Mmmm")
print("Good,let's begin.")

>满足条件时,打破无限循环:

while True:
    d1 = raw_input(...)
    if d1.lower() in ('yes','no'):
        break
    print("Mmmm")
print("Good,let's begin.")

我认为,对于你提出的简单例子,第二种选择更优雅.第一个选项对于更复杂的情况非常有用,在这种情况下,您需要在退出循环之前执行更多不相关的操作.它允许三种类型的响应来评估条件:true,false和其中之一.第二个版本仅支持前两个版本,它更适合您的情况.

我建议在输出处理之后输出命令(由print(“Good,let’s begin.”)表示)在循环外部.它们实际上与循环无关,因此不应该成为循环的一部分.

另外,如果字符串包含单引号,请在字符串周围使用双引号.这是Python有两种类型引用的很大一部分原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读