如果它高于值 99,为什么会打印?
Why does this print if it's above value 99?
mySpeed = input("What is your speed? ")
if mySpeed < ("50"):
print ("safe")
如果值大于 99,为什么会打印?
“50”是字符串,不是数字...尝试消除“”...
如果 mystring 是字符串,请尝试使用 int 函数进行强制转换 - 例如整数(我的字符串)
mySpeed < ("50")
正在检查字符串。您需要使用整数:
mySpeed = input("What is your speed? ")
if mySpeed < (50):
print ("safe")
试试这个:
mySpeed = int(input("What is your speed? "))
if mySpeed < 50:
# same as before
说明:您应该读取一个数字并将其与一个数字进行比较。您的代码当前正在读取一个字符串并将其与另一个字符串进行比较,这不会给出您期望的结果。
因为你比较的是两个字符串,而不是两个整数。字符串是一个序列,序列比较有效 as follows:
The comparison uses lexicographical ordering: first the first two items are compared, and if they differ this determines the outcome of the comparison; if they are equal, the next two items are compared, and so on, until either sequence is exhausted.
因此,如果您取的数字大于 '99'
,例如'100'
它将获取第一个字符 '1'
并将其与 '5'
('50'
的第一个字符)进行比较。 '1'
小于 ascii 中的 '5'
('1'==49
和 '5'==53
)。所以这个比较已经终止,结果确实 '100'
小于 '50'
.
同理'9'
不小于'50'
:
In [1]: b'9'<b'50'
Out[1]: False
你应该比较整数,如下:
mySpeed = int(input("What is your speed? "))
if mySpeed < 50:
print ("safe")
您不能将字符串当作整数来求值。将字符串想象成单词 "ten",而整数是“10”。您不能将三个字母 t-e-n 与一个整数相加并得到一个数字。但是,您可以添加“10+10”,例如得到“20”。您的代码应如下所示:
mySpeed = int(input("What is your speed? "))
if mySpeed < 50:
print ("safe")
注意:通过使用int()
函数将用户的输入变成一个整数,你实际上并没有验证他们输入的内容。如果用户输入字符串,例如 "ten",您的代码将 return 出错,因为 "ten" 无法转换为整数。
我的回答不是最佳做法,但会 "work"。
mySpeed = input("What is your speed? ")
if mySpeed < ("50"):
print ("safe")
如果值大于 99,为什么会打印?
“50”是字符串,不是数字...尝试消除“”...
如果 mystring 是字符串,请尝试使用 int 函数进行强制转换 - 例如整数(我的字符串)
mySpeed < ("50")
正在检查字符串。您需要使用整数:
mySpeed = input("What is your speed? ")
if mySpeed < (50):
print ("safe")
试试这个:
mySpeed = int(input("What is your speed? "))
if mySpeed < 50:
# same as before
说明:您应该读取一个数字并将其与一个数字进行比较。您的代码当前正在读取一个字符串并将其与另一个字符串进行比较,这不会给出您期望的结果。
因为你比较的是两个字符串,而不是两个整数。字符串是一个序列,序列比较有效 as follows:
The comparison uses lexicographical ordering: first the first two items are compared, and if they differ this determines the outcome of the comparison; if they are equal, the next two items are compared, and so on, until either sequence is exhausted.
因此,如果您取的数字大于 '99'
,例如'100'
它将获取第一个字符 '1'
并将其与 '5'
('50'
的第一个字符)进行比较。 '1'
小于 ascii 中的 '5'
('1'==49
和 '5'==53
)。所以这个比较已经终止,结果确实 '100'
小于 '50'
.
同理'9'
不小于'50'
:
In [1]: b'9'<b'50'
Out[1]: False
你应该比较整数,如下:
mySpeed = int(input("What is your speed? "))
if mySpeed < 50:
print ("safe")
您不能将字符串当作整数来求值。将字符串想象成单词 "ten",而整数是“10”。您不能将三个字母 t-e-n 与一个整数相加并得到一个数字。但是,您可以添加“10+10”,例如得到“20”。您的代码应如下所示:
mySpeed = int(input("What is your speed? "))
if mySpeed < 50:
print ("safe")
注意:通过使用int()
函数将用户的输入变成一个整数,你实际上并没有验证他们输入的内容。如果用户输入字符串,例如 "ten",您的代码将 return 出错,因为 "ten" 无法转换为整数。
我的回答不是最佳做法,但会 "work"。