我在学习如何使用in语句来使if语句更好地工作的过程中编写了一些不必要的复杂代码.我在代码片段后面有两个问题.
answer = ['Yes', 'yes', 'YES']
answer2 = ['No', 'no', 'NO']
ans = raw_input()
for i in range(0, 3):
if ans in answer[i]:
print "Yes!"
elif ans in answer2[i]:
print "No!"
else:
print "Don't know what that means"
Run Code Online (Sandbox Code Playgroud)
第一个问题:我认为if n in listname:自动返回True或False.有谁知道是否是这种情况?
第二个问题:上面的代码返回3行,这些行取决于if ans是否实际在answer或answer2.我试图通过更换相关部分来消除这种情况:
if ans in answer[i] == True:
这具有使代码仅输出else:语句的奇怪效果.因此,谁能向我解释如何蟒蛇解释之间的差异if ans in answer[i]:和if ans in answer[i] == True:好吗?
这是有问题的代码:
double cf_converter(double t){
//This function converts from celsius to farenheit
if (t <= 200 && t >= -200){
printf("0.00 C ==> 32.00 F");
return CFR*t+32.00;
}
else{
printf("Invalid Farenheit Temperature\n");
return pow(t,3);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的函数是编译器告诉我发生错误的地方。我看过其他示例,但无法确定为什么会收到错误消息。根据编译器,该错误显然是在第一个return语句中发生的,它读取的是CFR * t + 32.00。
void main(){
//Main Loop
char c;
double t, o, input;
printf("Please enter F or C: ");
scanf("%c", &c);
switch(c){
case 'c':
case 'C':
printf("\nPlease enter a celsius degree number: ");
scanf("%lf", t);
o = cf_converter(t);
break;
case 'f':
case 'F': …Run Code Online (Sandbox Code Playgroud)