при использовании его, чтобы использовать его как целое число.

ал вокруг, чтобы проверить, почему в строке 7 был TypeError, который говорит, что мои аргументы не преобразуются во время форматирования строки, но чтобы помочь.

Есть ли здесь кто-нибудь, кто может мне помочь и сообщить, что именно пошло не так с моими кодами, чтобы я мог исправить себя.

Ниже приведена ссылка на мои коды.

import sys

even, odd = [], []
count_odd, count_even = 0, 0

for value in sys.argv[1:]:
    if value % 2 == 0:    #TypeError: not all arguments converted during string formatting
        even.append(value)
        total_even = sum(even)
        count_even += 1
    elif value % 2 == 1:
        odd.append(value)
        total_odd = sum(odd)
        count_odd += 1
    else:
        print "Please enter valid integers."

diff = max(sys.argv[1:]) - min(sys.argv[1:])

sys.argv[1:].remove(max(sys.argv[1:]))
sys.argv[1:].remove(min(sys.argv[1:]))
mean = sum(sys.argv[1:])/3

print .......
 Jean-François Fabre19 сент. 2017 г., 18:13
if value % 2 == 0: =>if int(value) % 2 == 0:

Ответы на вопрос(2)

Решение Вопроса

str тип.

Когда используешь% в строке вы вызываете оператор форматирования, и поскольку ваша строка не содержит никаких%, вы получите это странное сообщение.

Исправить это просто, если вы знаете, что:

if int(value) % 2 == 0:

сделаю это

(please enter valid integers часть не работает, вы должны пойматьValueError в случае, если аргумент не целое число вместо)

Следующие странные ошибки у вас возникнут, когда вы попытаетесь использоватьmax в списке аргументов. Будет использована неправильная сортировка (лексикографическая)

Лучшим способом было бы преобразовать ваш arglist в целые числа заранее и обработать этот список.

Позвольте мне предложить автономный пример, который вычисляет нечетный и четный список и разность, используя более питонические методы (а также более производительный, например: нет необходимости вычислять сумму ваших чисел на каждой итерации):

import sys

even, odd = [], []

argument_list = ["1","10","24","15","16"]  # sys.argv[1:]

integer_list = [int(x) for x in argument_list]  # let python signal the conversion errors and exit

for value in integer_list:
    # ternary to select which list to append to
    (odd if value % 2 else even).append(value)

total_even = sum(even)
total_odd = sum(odd)
count_even = len(even)  # if you need that
count_odd = len(odd)

diff = max(integer_list) - min(integer_list)
 Luke19 сент. 2017 г., 18:16
Я попытался добавить это, но после того, как я набрал несколько цифр, это дало мне эту ошибку. ValueError: недопустимый литерал для int () с основанием 10: '12, '
 Jean-François Fabre19 сент. 2017 г., 18:18
это потому, что вы передаете 1 аргумент с запятой ...

помощью

int(value) 

при использовании его, чтобы использовать его как целое число.

Ваш ответ на вопрос