# Python: Is there an equivalent of mid, right, and left from BASIC?

## Python: Is there an equivalent of mid, right, and left from BASIC?

slices to the rescue ðŸ™‚

```
def left(s, amount):
return s[:amount]
def right(s, amount):
return s[-amount:]
def mid(s, offset, amount):
return s[offset:offset+amount]
```

If I remember my QBasic, right, left and mid do something like this:

```
>>> s = 123456789
>>> s[-2:]
89
>>> s[:2]
12
>>> s[4:6]
56
```

http://www.angelfire.com/scifi/nightcode/prglang/qbasic/function/strings/left_right.html

#### Python: Is there an equivalent of mid, right, and left from BASIC?

Thanks Andy W

I found that the mid() did not quite work as I expected and I modified as follows:

```
def mid(s, offset, amount):
return s[offset-1:offset+amount-1]
```

I performed the following test:

```
print([1]23, mid(123, 1, 1))
print(1[2]3, mid(123, 2, 1))
print(12[3], mid(123, 3, 1))
print([12]3, mid(123, 1, 2))
print(1[23], mid(123, 2, 2))
```

Which resulted in:

```
[1]23 1
1[2]3 2
12[3] 3
[12]3 12
1[23] 23
```

Which was what I was expecting. The original mid() code produces this:

```
[1]23 2
1[2]3 3
12[3]
[12]3 23
1[23] 3
```

But the left() and right() functions work fine. Thank you.