Python - нужен совет - PullRequest
       7

Python - нужен совет

0 голосов
/ 21 октября 2011

Ниже у меня есть сценарий, который я выполнил, пытаясь выполнить задание, которое у меня есть.

То, что сценарий должен сделать, это попросить пользователя ввести 2 ввода, а затем вернуть большее из входных данных,(Это я еще не выяснил полностью)

Смысл этого задания слишком посмотреть, что произойдет, если я вместо того, чтобы ввести 2 числа, введу два слова "Hej" и "Hå".

Мне нужно несколько советов о том, как разрешить этому сценарию принимать 2 пользовательских ввода и возвращать большее из них два.

def maximum(x, y):
    i = 0
    maxnra = 0
    maxnrb = 0

    while i < len(x) :
        if x[i] > maxnra:
            maxnra = x[i]
            i = i + 1
        else:
            i = i + 1
    print "I första ordet är maximum: ", maxnra

    i = 0
    while i < len(y) :
        if y[i] > maxnrb:
            maxnrb = y[i]
            i = i + 1
        else:
            i = i + 1
    print "I andra ordet är maximum: ", maxnrb

  maximum("hej", "hå")

РЕДАКТИРОВАТЬ:

Я пытался решить эту проблему другим способом,это способ решить эту проблему?

print "First"
x = input()

print "Second"
y = input()


def printMax(x, y):
     if x > y:
        print(x, 'is maximum')
    elif a == b:
        print(x, 'is equal to', y)
    else:
        print(y, 'is maximum')

сейчас я что-то упускаю, потому что ничего не возвращается, когда я ввожу 2 значения.

Ответы [ 3 ]

1 голос
/ 21 октября 2011

Если вам нужен простой способ получить пользовательский ввод из окна терминала, взгляните на функцию raw_input .

1 голос
/ 21 октября 2011

Прочтите документацию по команде raw_input , чтобы узнать, как вы можете получить ввод от пользователя.

0 голосов
/ 30 января 2012

Ваш первый код просто берет два списка и печатает максимальное значение каждого отдельного списка. Итак, это не то, что вы хотите.

Во втором коде, хотя подход правильный, вы допустили несколько мелких ошибок.

print "First"
x = input() # use raw_input() for python 2.7

print "Second"
y = input()


def printMax(x, y):
     if x > y:
        print(x, 'is maximum')
    elif x == y: 
        # not a==b
        print(x, 'is equal to', y)
    else:
        print(y, 'is maximum')

На самом деле, когда вы вводите ввод в этом коде, хотя вы вводите числа, они все равно считаются строками. Таким образом, не будет большой разницы, если вы введете строку.

Эти строки сравниваются лексикографически с использованием (порядок значений ASCII). Поскольку ваш ввод не из ASCII, он покажет ошибку.

Итак, вам нужно заменить input() или raw_input() следующим

    import sys # do this at the top of program.
    x = raw_input().decode(sys.stdin.encoding)
      # similarly do it for y

Пожалуйста, прочитайте следующий вопрос stackoverflow, чтобы узнать больше об этой ссылке

...