while循环计算两个数字的最大值

时间:2016-11-18 00:33:44

标签: python

我刚开始学习python;我是编程新手。请好好看一下这篇文章,告诉我一开始我的变量声明是否错误,以及我可以编写代码的更好方法。使用if else语句最多两个数字。蟒蛇。感谢。

#determine the maximum of two numbers
A = 2
B=1
print 'Exit program by entering 0 for the first integer.'
while A != B:
    A = int(input('Enter an integer: '))
    if A == 0:
        break
    B = int(input('Enter a second integer: '))    
    if A > B:
        print 'The maximum number is {0}'.format(A)
    if B > A:
        print 'The maximum number is ' + str(B)

print('Done')

你可以帮我把它修好一个循环吗? @ maze88和其他大师请。

while True:
    try:
        A=int(input('Enter a number:'))
    except ValueError:
        print('Not an integer! Try again.')
    else:
        break

while True:
    try:
        B=int(input('Enter a second number:'))
    except ValueError:
        print('Not an integer! Try again.')
    else:
        break


if A>B:
    print(A)
elif B>A:
    print(B)
else:
    print('Equal numbers')

print('Done')  

3 个答案:

答案 0 :(得分:0)

看起来正确。但我会使用 "analyzer" : { "standard" : { "type" : "standard" }, "autocomplete" : { "filter" : [ "standard", "lowercase" ], "char_filter" : [ "html_strip" ], "type" : "custom", "tokenizer" : "ngram" } 函数。

max()

答案 1 :(得分:0)

你的代码是Python 2吗?如果是的话,我建议使用Python 3.5.2,因为它更新,并且不再有很多人使用Python 2了。

但无论如何,你可以做的第一个改进就是使用elif语句,而不是只使用3个if语句。您还可以使格式化更好一点,以便其他程序员更容易阅读。

像这样:

#determine the maximum of two numbers
A = 2
B = 1

print 'Exit program by entering 0 for the first integer.'

while A != B:
    A = int(input('Enter an integer: '))
    B = int(input('Enter a second integer: '))

    if A == 0:
        break    

    elif A > B:
        print 'The maximum number is {0}'.format(A)

    elif B > A:
        print 'The maximum number is ' + str(B)


print 'Done'

Elif语句对于这种情况会更好,因为在第二个if语句中

if A > B:

如果A大于B,则接下来的两个elif语句将被忽略,但在您的代码中,即使A大于B,Python也会检查if语句。

答案 2 :(得分:0)

你的程序很好并且有效,你似乎已经掌握了条件语句的基本用法 这是您的代码,我做了一些基本的更改,仔细阅读它们,希望您能学到新的东西。

A = 2
B = 1
print 'Exit program by entering 0 for the first integer.'

while A != B:
    A = input('Enter an integer: ')  # change 1
    if not A:  # change 2
        break
    B = input('Enter a second integer: ')  # change 1

    if A > B:
        print 'The maximum number is {0}'.format(A)

    elif A < B:  # change 3
        print 'The maximum number is ', B   # change 4

    else:  # change 5
        print 'The numbers are equal'
        break

print 'Done'

的变化:

  1. input()功能不需要你周围的int()功能。只有在使用raw_input()
  2. 时才需要这样做
  3. 任何非零整数将始终评估为 True ,我们可以将此规则与not 关键字结合使用因此,只有当A等于0时才会将条件评估为 True
  4. 不使用多个if语句,尤其是嵌套时,您可以使用elif来测试其他条件 - 假设您之前的if(以及之前的其他elif s,如果存在)未被评估为 True
  5. 格式化字符串的另一种替代方法;虽然首选方法与A一样。
  6. 添加了else分支来处理所有其他情况(没有满足ifelif条件),在这种情况下,这意味着A并且B是相同的,所以我还添加了一个印刷声明来表达。
  7. 扩展理念:让您的程序检查用户输入是否为正确的类型数据(整数,在您的情况下)或返回如果不这样做的消息说明。