Вы используете nb как числовое значение, так и должно быть.Попробуйте:
print(type(nb))
Должен вернуть str, как указывает ошибка.
просто преобразуйте его в целое число следующим образом:
or i in range(int(nb)):
Или попросите agparser рассматривать ввод как целое число:
def main():
parser = argparse.ArgumentParser()
parser.add_argument('nb=',type=int)
nb = parser.parse_args()