# [Solved] Syntax: non-default argument follows default argument

Hello Guys, How are you all? Hope You all Are Fine. Today I get the following error Syntax: non-default argument follows default argument in python. So Here I am Explain to you all the possible solutions here.

## How Syntax: non-default argument follows default argument Error Occurs?

Today I get the following error Syntax: non-default argument follows default argument in python.

## How To Solve Syntax: non-default argument follows default argument Error ?

1. How To Solve Syntax: non-default argument follows default argument Error ?

To Solve Syntax: non-default argument follows default argument Error As the error message says, non-default argument `til` should not follow default argument `hgt`.

2. Syntax: non-default argument follows default argument

To Solve Syntax: non-default argument follows default argument Error As the error message says, non-default argument `til` should not follow default argument `hgt`.

## Solution 1

Let me clarify two points here :

• Firstly non-default argument should not follow the default argument, it means you can’t define `(a = 'b',c)` in function. The correct order of defining parameter in function are :
• positional parameter or non-default parameter i.e `(a,b,c)`
• keyword parameter or default parameter i.e `(a = 'b',r= 'j')`
• keyword-only parameter i.e `(*args)`
• var-keyword parameter i.e `(**kwargs)`

`def example(a, b, c=None, r="w" , d=[], *ae, **ab):`

`(a,b)` are positional parameter

`(c=none)` is optional parameter

`(r="w")` is keyword parameter

`(d=[])` is list parameter

`(*ae)` is keyword-only

`(*ab)` is var-keyword parameter

• now the second thing is you have to define len1 when you are doing hgt=len1 the len1 argument is not defined when default values are saved, Python computes and saves default values when you define the function len1 is not defined, does not exist when this happens (it exists only when the function is executed)

so second remove this `"len1 = hgt"` it’s not allowed in python.

keep in mind the difference between argument and parameters.

## Solution 2

As the error message says, non-default argument `til` should not follow default argument `hgt`.

Changing order of parameters (function call also be adjusted accordingly) or making `hgt` non-default parameter will solve your problem.

```def a(len1, hgt=len1, til, col=0):
```

->

```def a(len1, hgt, til, col=0):
```

UPDATE

Another issue that is hidden by the SyntaxError.

`os.system` accepts only one string parameter.

```def a(len1, hgt, til, col=0):
system('mode con cols=%s lines=%s' % (len1, hgt))
system('title %s' % til)
system('color %s' % col)```

## Summery

It’s all About this issue. Hope all solution helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which solution worked for you? Thank You.