首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >初始化整型变量以进行比较

初始化整型变量以进行比较
EN

Stack Overflow用户
提问于 2018-08-06 02:12:32
回答 5查看 237关注 0票数 2

我正在学习麻省理工学院的开放式课件课程Introduction to Computer Science and Programming in Python,我花了很长一段时间试图把我的头围绕在教科书上的“手指练习”上:

编写一个程序,检查三个变量-x、y和z-并打印其中最大的奇数。如果它们都不奇怪,它应该打印一条消息来说明这一点。

我写了几个不太有效的解决方案,如果有更大的偶数,就会遗漏奇数。我最终认输了,在这里寻找解决方案,这是其他在这门课上工作的人所要求的。对我来说,This solution from AFDev似乎是最简单的(考虑到练习的目的和解决方案的简洁性)。我将其与我的用户输入相结合,以获得以下内容:

x=int(input('Enter your first number:'))
y=int(input('Enter your second number:'))
z=int(input('Enter your third number:'))
largest = None
if x%2:
    largest = x
if y%2:
    if y > largest:
        largest = y
if z%2:
    if z > largest:
        largest = z
if largest:
    print ('The largest odd number is', largest)
else:
    print ('There are no odd numbers.')

只要x是奇数,这就很有效。如果x是零或偶数,我会得到以下错误:

TypeError: '>' not supported between instances of 'int' and 'NoneType'

我在谷歌上做的一些工作表明,Python2在NoneType和整数之间的比较上更加自由。我更改了这一行以初始化largest = 0,但随后意识到,如果用户输入负数,这将产生无效的结果。

我将代码调整为以下代码:

x=int(input('Enter your first number:'))
y=int(input('Enter your second number:'))
z=int(input('Enter your third number:'))

largest = None
if x%2:
    largest = x
if y%2:
    if largest == None:
        largest = y
    if y > largest:
        largest = y
if z%2:
    if largest == None:
        largest = z
    if z > largest:
        largest = z
if largest:
    print ('The largest odd number is', largest)
else:
    print ('There are no odd numbers.')

有没有更好的方法来初始化“最大的”(因为没有更好的术语),以便我可以将它与整数进行比较,或者我做得足够好了吗?

我知道有更好的方法来比较这些数字以找到最大的(我在谷歌搜索时发现了max )。我正试着一步一步地解决这个问题。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51697030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档