当前位置: 首页 > 面试题库 >

在Python中比较数字会得出错误的结果

司徒高丽
2023-03-14
问题内容

如果我输入的任何值都小于24,它会打印“ You will be old …”语句。如果我输入的任何值都大于24(最大为99),它将打印“ you
old”语句。

问题是,如果您输入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.')

问题答案:

您正在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))-您应该习惯于这种字符串格式样式,而不是使用+-进行字符串连接-
您可以在文档中阅读有关它的更多信息。但这确实与您的核心问题无关。



 类似资料:
  • 问题内容: 我对为什么该操作有效感到非常困惑。有人可以解释吗? 为了澄清起见,我正在尝试将字符串与变量进行比较。我已经知道要修复可以随便附上in s中的代码 我想知道这是PHP错误,服务器错误还是某种有效的操作。根据此操作 无效 。 编辑: 从头开始,显然它确实提到字符串和0之间的松散比较是正确的。但是我仍然不知道为什么。 编辑2: 我修改了我的问题,为什么值不起作用? 问题答案: 从PHP手册:

  • Java在进行比较时抛出的错误是: 然后比较的方法(比较器 你知道发生了什么事吗?

  • 我正在尝试使用Java8按姓名和年龄对员工列表进行排序,我在下面创建了,但它给我一个编译器错误

  • 问题内容: 当我比较具有相同下划线字符串的两个StringBuilder对象时,即使value应该为true也会返回。 问题答案: 这是因为不会覆盖类中的方法。 您将必须将两个对象都转换为,然后进行比较 这将为您提供正确的结果。显然,您必须注意 null 检查等。 根据合同,如果覆盖equals,则也必须覆盖它们,但是由于可变,因此其值的任何更改都会影响对象的哈希码。如果用作键,可能会导致存储的值

  • 问题内容: 我正在尝试使用Java8按名称对员工进行排序,然后按年龄进行排序,我在下面创建了该代码,但它给了我一个编译器错误 但是如果我明确指定类型,它就可以工作 或通过创建两个s和链 我已经在左侧指定了类型,但是为什么自动类型推断没有找到正确的类型并期望明确指定。 有人可以澄清吗? 这是代码 输出 问题答案: Java需要知道所有变量的类型。在许多lambda中,它可以推断类型,但是在您的第一个

  • 问题内容: 我试图比较2个1000字节的字符串,并想知道差异的确切位置,即;字符串与哪个字节不同。.是否有任何函数可以确定它? 问题答案: 我试图测试此处给出的答案,并且提出了另一个 更快 (通常情况下)的解决方案,尽管它不太优雅。 首先,让我们看看所提出的解决方案有多快: 如您所见,genexp比快很多,但这可能是由于它比查找第一个非等号字符要好得多。 现在,我们如何加快速度?好吧,我们可以使用