这是我在尝试制作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
我一直在寻找半小时的东西,无法弄清楚如何解决这个问题请帮助
答案 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')
非常感谢你们!