即使输入少于30
,也会继续“你比某些山丘还要老”age = raw_input("What age are you?")
def old(n):
if n >= 30:
print "You are older than some hills"
else:
print "Youth"
old(age)
答案 0 :(得分:8)
因为您忘记将输入转换为数字,因为它是一个字符串,而在Python 2中,任何字符串总是大于任何数字。
使用public class MyFirstClass1
{
public static void main(String[] args)
{
int halfSize;
int p = 0;
String message;
System.out.println("Please enter a string: ");
Scanner input = new Scanner(System.in);
message = input.nextLine();
//System.out.println((int)Math.ceil(message.length() / 2) + 1);
halfSize = message.length() / 2;
for (int i = 1; i <= message.length(); i++) {
//Print spaces
for (int k = 0; k < halfSize; k++)
System.out.print(" ");
halfSize--;
System.out.print("\n");
if((int)Math.ceil((float)message.length() / 2) + 1 >= p)
{
for (int j = 0; j < p + 1; j++)
System.out.print(message.charAt(j));
}
p+=2;
}
}
}
(当您尝试比较字符串和数字时,Python 3会引发错误,这是一个很好的设计决策。)
答案 1 :(得分:0)
raw_input()
函数将输入用作字符串,因此,您应该将输入转换为int
类型。
age = int(raw_input("What age are you?"))
def old(n):
if n >= 30:
print "You are older than some hills"
else:
print "Youth"
old(age)
这样可行。
答案 2 :(得分:0)
正如其他人所说,您需要将输入转换为整数。但是,如果用户输入一个字母,程序将抛出错误。为了确保不会发生这种情况,我建议使用try获取输入,除了,这可以按如下方式完成:
age = raw_input("What age are you?")
try:
int(age)
except ValueError:
print('That is not a number')