如果和其他人帮忙;蟒

时间:2017-10-04 18:04:34

标签: python if-statement input

我是编程的新手,我学习了基本命令,现在我尝试创建类似于quizz的东西,所以这是我的代码让我头疼......

 prvo =input("How much is 5+5? ")
if (prvo)==10:
    print("Correct!")
else:
    print ("Sorry, but the answer isn't correct!")
    sys.exit()

当我输入10时,它说: "抱歉,但答案是不正确的!",与其他所有号码一样,请帮助。你能否解释一下我的错误,因为我真的想学习:)

4 个答案:

答案 0 :(得分:2)

您可以尝试if prvo == str(10): 或如上所述使用prvo = int(input("How much is 5 + 5? "))

原因是因为您正在尝试比较两种不同的数据类型。这不起作用,因此您需要确保您要比较的数据类型是相同的类型。

答案 1 :(得分:1)

input函数将字符串作为输入,因此input的返回值应转换为int类型并进行比较。代码中的第一行应该是

prvo = int(input("How much is 5+5? "))

答案 2 :(得分:0)

输入始终返回一个字符串。

尝试将10转换为字符串,然后再将其与输入进行比较:

#include <iostream>
#include <string>
#include <vector>

namespace myns{
    using Token = std::string;
    using Tokens = std::vector<Token>;

    template<typename T>
    T& operator<<(T& t, const Tokens& tokens) {
        for ( const auto& token : tokens) {
            t << '[' << token << ']';
        }
        return t;
    }
}

int main() {

    myns::Tokens tokens {"sin", "(", "4"};
    std::cout << tokens << std::endl;
    return 0;
}

答案 3 :(得分:0)

您将整数与字符串进行比较(默认情况下,input()采用字符串)。

您可以使用type():

轻松检查
prvo = input("How much is 5+5? ")
print(type(prvo))

这将返回:

<class 'str'>

str 含义字符串。

为了方便起见,我只需要在引号中加上10个也可以成为字符串。当你启动if语句时,你也不需要将prvo放在括号中。

这样的事情:

import sys

prvo = input("How much is 5+5? ")

if prvo == "10":
    print("Correct!")
else:
    print ("Sorry, but the answer isn't correct!")
    sys.exit()