@ Эдвард, теперь я это понимаю. Спасибо!

яюсь за вопрос новичка, но я прочитал руководство,это вопрос и пробовал несколько раз безрезультатно я ожидал.

Поэтому я использовал vim для редактирования файла (прилагается). Но при запуске я получил TabError: непоследовательное использование табуляции и пробелов в ошибке отступа.

Вот что я попробовал:

Откройте файл с помощью Vim. тип:retab, а также:x, Запустите файл снова. Все еще получил сообщение TabError.Откройте файл еще раз и введите:retab! а также:x, Запустите файл снова. Все еще получил сообщение TabError.Откройте файл еще раз и введите:retab! 4 а также:x, Запустите файл снова. На этот раз это работает, но я понятия не имею, почему? Плюс в файлах отступы кажутся чрезмерно длинными. (Я читаюВот что редактор может отображать 8 пробелов для вкладки)

Мои вопросы:

Что значит:retab, :retab!, а также:retab! 4 значит?

Почему не:retab работать над моим файлом?

#!/usr/bin/env python
#Reduce function for computing matrix multiply A*B    
#Input arguments:
#variable n should be set to the inner dimension of the matrix product (i.e., the number of columns of A/rows of B) 
import sys
import string
import numpy

#number of columns of A/rows of B
n = int(sys.argv[1]) 

#Create data structures to hold the current row/column values (if needed; your code goes here)

currentkey = None
alist = [] # list for elelents in  A
blist = [] # list ,for elements in B
# input comes from STDIN (stream data that goes to the program)
for line in sys.stdin:
    #Remove leading and trailing whitespace
    line = line.strip()
    #Get key/value 
    key, value = line.split('\t',1)
    print(key, value)
    #Parse key/value input (your code goes here)
    key = (key.split(',', 1)[0], key.split(',',1)[1])   
    value = (value.split(',', 1)[0], value.split(',',1)[1], value.split(',',1)[2])  
    #If we are still on the same key...
    if key==currentkey:
        #Process key/value pair (your code goes here)
        # store all values in a lisl
        if value[0]=='A':
        alist.append([value[1], value[2]])
        else:
        blist.append([value[1], value[2]])
        #Otherwise, if this is a new key...
    else:
    #If this is a new key and not the first key we've seen, i.e. currentkey!=None
        if currentkey:
    #compute/output result to STDOUT (your code goes here)
        alist = sorted(alist)
        blist = sorted(blist)
        newlist = [a[1]*b[1] for a,b in zip(alist, blist)]
        res = newlist.sum() 
        print(currentkey, res)
        currentkey = key
        #Process input for new key (your code goes here)

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

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