Advanced Python: for more attractive code
Tags: datascience, python, tips, advanced
Published: 2019-05-20 16:15:59

---
title: Advanced Python: for more attractive code
published: true
description: 
tags: data science, python, tips, advanced
---


# Tips and Tricks for Advanced Python


![Python Logo](https://python.rs/pylogo.png)


 Python is a high-level, interpreted, interactive and object-oriented scripting language. Python is designed to be highly readable. It uses English keywords frequently whereas other languages use punctuation, and it has fewer syntactical constructions than other languages.

 The syntax of Python is clear, intuitive and easy to learn compared to other programming languages such as C/C++, JAVA, and Swift. Python has a lot of built-in standard features like comprehensions, dictionaries, sets, and generators to provide the most common functions required by modern programming languages. And Python also has tons of libraries provided by its own community such as 'pandas', 'numpy', 'matplotlib', and so on. Because of these, Python is one of the most popular programming languages, especially for data science.

 Besides the simplicity and user-friendly of Python, learning how to write code is not an easy task. It is very similar to learn a new unfamiliar language. It needs to be practiced again and again until could feel comfortable within it. And to write more clear code, it needs to understand how Python interpreter works, but it could be out of scope for the data science. But here is seven tips and tricks for more attractive Python code as a data scientist.


### 1. Underscore(_) separator for Large Number

 '_' can be used as a separator for expressing a large number

```python
ten_billion = 10_000_000_000

print(f'{ten_billion:,}')
10,000,000,000
```

### 2. Assign a value with if statement

 When 'if' statement has only an assignment code inside of it

```python
# general
isHappy = True

if isHappy == True:
    result_string = 'Happy'
else:
    result_string = 'Not Happy'

print(result_string)

Happy

# advanced
isHappy = True

result_string = 'Happy' if isHappy else 'Not Happy'

print(result_string)

Happy
```


### 3. Swap values between two variable

 Python can swap the values between two variable without temp variable

```python
# general
low = 10
high = 9

if low > high:
    temp = low
    low = high
    high = temp
    
print(low, high)

9 10

# advanced
low = 10
high = 9

if low > high:
    low, high = high, low
    
print(low, high)

9 10
```


### 4. Enumerate function

 If you need index value inside of for loop, use enumerate function

```python
# general
grades = ['A', 'B', 'C', 'D', 'E', 'F']

i = 1
for grade in grades:
    print(f'{i} : {grade}')
    i += 1

1 : A
2 : B
3 : C
4 : D
5 : E
6 : F

# advanced
grades = ['A', 'B', 'C', 'D', 'E', 'F']

for i, grade in enumerate(grades, 1):
    print(f'{i} : {grade}')

1 : A
2 : B
3 : C
4 : D
5 : E
6 : F
```


### 5. List Comprehensions

 a concise way to create lists

```python
# beginner
numbers = [1, 2, 3, 4, 5, 6, 7]

squared = []
for number in numbers:
    squared.append(number * number)
    
print(squared)

# advanced
numbers = [1, 2, 3, 4, 5, 6, 7]

squared = [number * number for number in numbers]
    
print(squared)

```


### 6. Unpacking 

 unpacking values inside of tuples
```python

# from 13 cards
cards = ('A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K' )

# extract ace, 2, 3 only
ace, two, three, *_ = cards
print(ace, two, three)
A 2 3


# extract ace, [numbers], J, Q, K
ace, *numbers, J, Q, K = cards
print(ace, numbers, J, Q, K)
A ['2', '3', '4', '5', '6', '7', '8', '9', '10'] J Q K
```


### 7. For~Else

 else statement also be used after for loop, it is executed after for loop

```python
# For ~ Else
grades = ['A', 'B', 'C', 'D', 'E', 'F']

my_grade = 'A+'

for grade in grades:
    if grade == my_grade:
        print('grade found')
        break
else:
    print('grade not found')

grade not found
```