如果我输入任何小于24的值,它会打印"你将会变老......"声明。如果我输入任何大于24的值(最多99个),它会打印"你老了"言。
问题是,如果输入的值为100或更高,它会打印"在您知道它之前,您将会变老。"言。
print ('What is your name?')
myName = input ()
print ('Hello, ' + myName)
print ('How old are you?, ' + myName)
myAge = input ()
if myAge > ('24'):
print('You are old, ' + myName)
else:
print('You will be old before you know it.')
答案 0 :(得分:6)
您正在针对另一个字符串值myAge
测试字符串值'24'
,而不是整数值。
if myAge > ('24'):
print('You are old, ' + myName)
应该是
if int(myAge) > 24:
print('You are old, {}'.format(myName))
在Python中,你可以大于/小于字符串,但它并不像你想象的那样工作。因此,如果要测试字符串的整数表示的值,请使用int(the_string)
>>> "2" > "1"
True
>>> "02" > "1"
False
>>> int("02") > int("1")
True
您可能也注意到我将print('You are old, ' + myName)
更改为print('You are old, {}'.format(myName))
- 您应该习惯这种字符串格式,而不是使用+
进行字符串连接 - 您可以在the docs.中详细了解它。但它与你的核心问题没有任何关系。
答案 1 :(得分:1)
字符串'100'
确实小于字符串'24'
,因为'1'
“按字母顺序”小于'2'
。您需要比较数字。
my_age = int(input())
if my_age > 24:
答案 2 :(得分:1)
print ('What is your name?')
myName = input ()
print ('Hello, ' + myName)
print ('How old are you?, ' + myName)
myAge = input ()
if int(myAge) > 24:
print('You are old, ' + myName)
else:
print('You will be old before you know it.')
关于代码的一小部分。您应该将输入从myAge
转换为整数(int
)(数字),然后将该数字与数字24进行比较。
此外,您通常不应该将字符串添加到一起,因为它会考虑 non-pythonic 并且速度很慢。尝试print ('Hello, %s' % myName)
而不是print ('Hello, ' + myName)
。
答案 3 :(得分:0)
使用int(myAge)
。我总是使用raw_input
而且,你不必打印你的问题。而是将问题放入raw_inputs中,如下所示:
myName = raw_input("Whats your name?")
print ('Hello, ' + myName)
myAge = raw_input('How old are you?, ' + myName)
if int(myAge) > ('24'):
print('You are old, ' + myName)
else:
print('You will be old before you know it.')