我是编程的新手,我学习了基本命令,现在我尝试创建类似于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时,它说: "抱歉,但答案是不正确的!",与其他所有号码一样,请帮助。你能否解释一下我的错误,因为我真的想学习:)
答案 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()