def varpos(var1, *var3, var2='b'): print('var1:', var1) print('var2:', var2) print('var3:', var3) print('-----') ''' varpos(1, 2) varpos('a') varpos(1, 2, 3, var2='c') varpos(1, 2, 3, 4, 5, 6) ''' ''' def average(total, count=None, *values): if count == None: if not isinstance(total, (list, tuple)): raise TypeError('If only one argument is given, it must be a list or tuple') return sum(total) / len(total) else: return total / count ''' def average2(total, count=None, *values): print('total =', total) print('count =', count) print('values =', values) if count == None: if not isinstance(total, (list, tuple)): raise TypeError('If only one argument is given, it must be a list or tuple') return sum(total) / len(total) elif len(values) == 0: return total / count else: return sum((total, count)+tuple(values)) / (2+len(values)) print(average2((1,2,3,4))) print(average2(count=10, 4)) print(average2(4, 10, 8))