Skip to content

Commit

Permalink
each challenge has been separated
Browse files Browse the repository at this point in the history
  • Loading branch information
Asabeneh committed Apr 29, 2020
1 parent 8a87595 commit 7a89944
Show file tree
Hide file tree
Showing 45 changed files with 10,927 additions and 16 deletions.
9 changes: 6 additions & 3 deletions day_1/helloworld.py → 01_Day/helloworld.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Day 1 - 30DaysOfPython Challenge

# Day 1 - 30DaysOfPython Challenge

print(2 + 3) # addition(+)
print(3 - 1) # subtraction(-)
Expand All @@ -7,11 +8,13 @@
print(3 ** 2) # exponential(**)
print(3 % 2) # modulus(%)
print(3 // 2) # Floor division operator(//)

# Checking data types

print(type(10)) # Int
print(type(3.14)) # Float
print(type(1 + 3j)) # Complex
print(type('Asabeneh')) # String
print(type([1, 2, 3])) # List
print(type({'name':'Asabeneh'})) #Dictionary
print(type({9.8, 3.14, 2.7})) #Tuple
print(type({'name':'Asabeneh'})) # Dictionary
print(type({9.8, 3.14, 2.7})) # Tuple
290 changes: 290 additions & 0 deletions 02_Day/02_variables.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,290 @@
<div align="center">
<h1> 30 Days Of Python: Day 2 - Variables</h1>
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
</a>
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
</a>

<sub>Author:
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
<small> First Edition: Nov 22 - Dec 22, 2019</small>
</sub>
</div>
</div>

[<< Day 1](../01_Day/introduction.md) | [Day 3 >>](../03_Day/03_operators.md)

![30DaysOfPython](../images/[email protected])

- [📘 Day 2](#%f0%9f%93%98-day-2)
- [Built in functions](#built-in-functions)
- [Variables](#variables)
- [Data Types](#data-types)
- [Checking Data types and Casting](#checking-data-types-and-casting)
- [Number](#number)
- [💻 Exercises - Day 2](#%f0%9f%92%bb-exercises---day-2)



# 📘 Day 2

## Built in functions

In python we have lots of built in functions. Built-in functions are globally available for your use. Some of the most commonly used python built-in functions are the following: _print()_, _len()_, _type()_, _int()_, _float()_, _str()_, _input()_, _list()_, _dict()_, _min()_, _max()_, _sum()_, _sorted()_, _open()_, _file()_, _help()_, and _dir()_. In the following table you will see an exhaustive list of python built in functions taken from [python documentation](https://docs.python.org/2/library/functions.html).

![Built in Functions](../images/builtin-functions.png)

Let's open the python shell and start using some of the most common built in functions.

![Built in functions](../images/builtin-functions_practice.png)

Let's practice more by using different built-in functions

![Help and Dir Built in Functions](/../images/help_and_dir_builtin.png)

As you can see from the above terminal, python has reserved words. We do not use reserved words to declare variables or functions. We will cover variables in the next section.

I believe, by now you are familiar with built-in functions. Let's do one more practice of built-in functions and we will move on to the next section

![Min Max Sum](../images/builtin-functional-final.png)

## Variables

Variables store data in a computer memory. Mnemonic variables are recommend to use in many programming languages. A variable refers to an a memory address in which a data is stored.
Number at the beginning, special character, hyphen are not allowed. A variable can have a short name (like x,y,z) but a more descriptive name (firstname, lastname, age, country) is highly recommended .
Python Variable Name Rules

- A variable name must start with a letter or the underscore character
- A variable name cannot start with a number
- A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and \_ )
- Variable names are case-sensitive (firstname, Firstname, FirstName and FIRSTNAME are different variables)

Valid variable names

```shell
firstname
lastname
age
country
city
first_name
last_name
capital_city
_if # if we want to use reserved word as a variable
year_2019
year2019
current_year_2019
num1
num2
```

Invalid variables names

```shell
first-name
num-1
1num
```

We will use standard python variable naming style which has been adopted by many python developers. The example below is an example of standard naming of variables, underscore when the variable name is long.

When we assign a certain data type to a variable is called variable declaration. For instance in the example below my first name is assigned to a variable first_name. The equal sign is an assignment operator. Assigning means storing data in the variable.

_Example:_

```py
# Variables in Python

first_name = 'Asabeneh'
last_name = 'Yetayeh'
country = 'Finland'
city = 'Helsinki'
age = 250
is_married = True
skills = ['HTML', 'CSS', 'JS', 'React', 'Python']
person_info = {
'firstname':'Asabeneh',
'lastname':'Yetayeh',
'country':'Finland',
'city':'Helsinki'
}
```

Let's use _print()_ and _len()_ built in functions. Print function will take multiple arguments. An argument is a value which we pass or put inside the function parenthesis, see the example below.

**Example:**

```py
print('Hello, World!')
print('Hello',',', 'World','!') # it can take multiple arguments
print(len('Hello, World!')) # it takes only one argument
```

Let's print and also find the length of the variables declared at the top:

**Example:**

```py
# Printing the values stored in the variables

print('First name:', first_name)
print('First name length:', len(first_name))
print('Last name: ', last_name)
print('Last name length: ', len(last_name))
print('Country: ', country)
print('City: ', city)
print('Age: ', age)
print('Married: ', is_married)
print('Skills: ', skills)
print('Person information: ', person_info)
```

Variable can also be declared in one line:

**Example:**

```py
first_name, last_name, country, age, is_married = 'Asabeneh', 'Yetayeh', 'Helsink', 250, True

print(first_name, last_name, country, age, is_married)
print('First name:', first_name)
print('Last name: ', last_name)
print('Country: ', country)
print('Age: ', age)
print('Married: ', is_married)
```

Getting user input using the _input()_ built-in function. Let's assign the data we get from a user into first_name and age variables.
**Example:**

```py
first_name = input('What is your name: ')
age = input('How old are you? ')

print(first_name)
print(age)
```

## Data Types

There are several data types in python. To identify the data type we use the _type_ builtin function. I like you to focus understanding different data types very well. When it comes to programming it is all about data types. I introduced data types at the very beginning and it comes again, because every topic is related to data types. We will cover data types in more detail in their respective sections.

## Checking Data types and Casting

- Check Data types: To check the data type of a certain data type we use the _type_
**Example:**

```py
# Different python data types
# Let's declare different data types

first_name = 'Asabeneh' # str
last_name = 'Yetayeh' # str
country = 'Finland' # str
city= 'Helsinki' # str
age = 250 # int, it is not my real age, don't worry about it

# Printing out types
print(type('Asabeneh')) # str
print(type(first_name)) # str
print(type(10)) # int
print(type(3.14)) # float
print(type(1 + 1j)) # complex
print(type(True)) # bool
print(type([1, 2,3,4])) # list
print(type({'name':'Asabeneh','age':250, 'is_married':250})) # dict
print(type((1,2))) # tuple
print(type(zip([1,2],[3,4]))) # set
```

- Casting: Converting one data type to another data type. We use _int()_, _float()_, _str()_, _list_
When we do arithmetic operations string numbers should be first converted to int or float if not it returns an error. If we concatenate a number with string, the number should be first converted to a string. We will talk about concatenation in String section.
**Example:**

```py
# int to float

num_int = 10
print('num_int',num_int) # 10
num_float = float(num_int)
print('num_float:', num_float) # 10.0

# float to int

gravity = 9.81
print(int(gravity)) # 9

# int to str
num_int = 10
print(num_int) # 10
num_str = str(num_int)
print(num_str) # '10'

# str to int
num_str = '10.6'
print('num_int', int(num_str)) # 10
print('num_float', float(num_str)) # 10.6

# str to list
first = 'Asabeneh'
print(first_name)
print(first_name) # 'Asabeneh'
first_name_to_list = list(first_name)
print(first_name_to_list) # ['A', 's', 'a', 'b', 'e', 'n', 'e', 'h']
```

## Number

Numbers are python data types.

1. Integers: Integer(negative, zero and positive) numbers
Example:
... -3, -2, -1, 0, 1, 2, 3 ...

2. Floating Numbers(Decimal numbers)
Example:
... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...

3. Complex Numbers
Example:
1 + j, 2 + 4j, 1 - 1j

## 💻 Exercises - Day 2

1. Inside 30DaysOfPython create a folder called day_2. Inside this folder create a file name called variables.py
2. Writ a python comment saying 'Day 2: 30 Days of python programming'
3. Declare a first name variable and assign a value to it
4. Declare a last name variable and assign a value to it
5. Declare a full name variable and assign a value to it
6. Declare a country variable and assign a value to it
7. Declare a city variable and assign a value to it
8. Declare an age variable and assign a value to it
9. Declare a year variable and assign a value to it
10. Declare a variable is_married and assign a value to it
11. Declare a variable is_true and assign a value to it
12. Declare a variable is_light_on and assign a value to it
13. Declare multiple variable on one line
14. Check the data type of all your variables using type() built in function
15. Using the _len()_ built-in function find the length of your first name
16. Compare the length of your first name and your last name
17. Declare 5 as num_one and 4 as num_two
1. Add num_one and num_two and assign the value to a variable _total_
2. Subtract num_two from num_one and assign the value to a variable _diff_
3. Multiply num_two and num_one and assign the value to a variable _product_
4. Divide num_one by num_two and assign the value to a variable _division_
5. Use modulus division to find num_two divided by num_one and assign the value to a variable _remainder_
6. Calculate num_one the power of num_two and assign the value to a variable _exp_
7. Find floor division of num_one by num_two and assign the value to a variable _floor_division_
18. The radius of a circle is 30 meters.
1. Calculate the area of a circle and assign the value to a variable _area_of_circle_
2. Calculate the circumference of a circle and assign the value to a variable _circum_of_circle_
3. Take radius as user input and calculate the area.
19. Use the built-in input function to get first name, last name, country and age from a user and store the value to their corresponding variable names
20. Run help('keywords') on python shell or in your file check the reserved words


🎉 CONGRATULATIONS ! 🎉

[<< Day 1](../01_Day/introduction.md) | [Day 3 >>](../03_Day/03_operators.md)
6 changes: 6 additions & 0 deletions day_2/variables.js → 02_Day/variables.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@

# Variables in Python

first_name = 'Asabeneh'
last_name = 'Yetayeh'
country = 'Finland'
Expand All @@ -12,7 +14,9 @@
'country':'Finland',
'city':'Helsinki'
}

# Printing the values stored in the variables

print('First name:', first_name)
print('First name length:', len(first_name))
print('Last name: ', last_name)
Expand All @@ -25,7 +29,9 @@
print('Person information: ', person_info)

# Declaring multiple variables in one line

first_name, last_name, country, age, is_married = 'Asabeneh', 'Yetayeh', 'Helsink', 250, True

print(first_name, last_name, country, age, is_married)
print('First name:', first_name)
print('Last name: ', last_name)
Expand Down
Loading

0 comments on commit 7a89944

Please sign in to comment.