为什么if-then语句不起作用?

时间:2017-03-05 20:12:57

标签: python

这是我在尝试制作if-then语句时所做的代码,但它总是默认为else。此外,我刚刚开始尝试从在线教程编写代码。

print('yes or no?')

if sys.stdin.readline() == 'yes' : 
    print('Yay')
else : 
    print('Aww')

这就是:

Console:yes or no?

Me:yes

Console:Aww

我一直在寻找半小时的东西,无法弄清楚如何解决这个问题请帮助

3 个答案:

答案 0 :(得分:2)

sys.stdin.readline()读取以' \ n'结尾的行。 (当你点击"输入")。

所以你需要删除这个' \ n'使用strip()从捕获的输入中获取。

print('yes or no?')

if sys.stdin.readline().strip() == 'yes' : 
    print('Yay')
else : 
    print('Aww')

我尝试解释并解决您的具体问题,但您当然可以使用其他答案中提到的raw_input()input()(PY3)。

答案 1 :(得分:1)

在python中,获取用户字符串的输入可以通过input()完成(或者在python 2.7中,使用raw_input())。

如果您包含以下代码:

user_input = raw_input("yes or no?")

这将首先打印字符串“yes or no?”,然后等待用户输入(通过stdin),然后将其保存为名为user_input的字符串。

因此,您将代码更改为:

user_input = raw_input("yes or no?")
if user_input == "yes":
    print("Yay")
else:
    print("Aww")

这应该会产生预期的效果。

答案 2 :(得分:0)

好的我在字符串上使用了user_input和input而不是sys.stdin.readline(),我在基本的计算器中使用它:

import random
import sys
import os


user_input = input("Would you like to add or subtract?")
if user_input == 'add' :
    print('What would you like to add?')
    plus1 = float(sys.stdin.readline())
    print('Ok so %.1f plus what?' % (float(plus1)))
    plus2 = float(sys.stdin.readline())
    print('%.1f plus %.1f equals %.1f' % (float(plus1),float(plus2), float(plus1+plus2)))
elif user_input == 'subtract' :
    print('What would you like to subtract?')
    minus1 = float(sys.stdin.readline())
    print('Ok so %.1f minus what?' % (float(minus1)))
    minus2 = float(sys.stdin.readline())
    print('%.1f minus %.1f equals %.1f' % (float(minus1), float(minus2), float(minus1 - minus2)))
    else :
        print('That is not one of the above options')

非常感谢你们!