<a href="https://colab.research.google.com/github/eftropiosk94/Python_Course/blob/master/Assignment_1_EftropiosKaragkiozis.ipynb" target="_parent"></a>

## First Assignment

#### 1) Apply the appropriate string methods to the **x** variable (as '.upper') to change it exactly to: "$Dichlorodiphenyltrichloroethane$".


```python
x = "DiClOrod  IFeNi  lTRicLOr oETaNo  DiChlorod iPHeny lTrichL oroEThaNe"
```


```python
x = "DiClOrod  IFeNi  lTRicLOr oETaNo  DiChlorod iPHeny lTrichL oroEThaNe"
x.replace(' ','')[27:].title()
```




    'Dichlorodiphenyltrichloroethane'



#### 2) Assign respectively the values: 'word', 15, 3.14 and 'list' to variables A, B, C and D in a single line of code. Then, print them in that same order on a single line separated by a space, using only one print statement.


```python
A,B,C,D='word', 15, 3.14, 'list'
print(A,B,C,D)
```

    word 15 3.14 list


#### 3) Use the **input()** function to receive an input in the form **'68.4 1.71'**, that is, two floating point numbers in a line separated by space. Then, assign these numbers to the variables **w** and **h** respectively, which represent an individual's weight and height (hint: take a look at the '.split()' method). With this data, calculate the individual's Body Mass Index (BMI) from the following relationship: 
    
\begin{equation}
BMI = \dfrac{weight}{height^2}
\end{equation}


```python
x= input("enter height and weight separated by space ")

```

    enter height and weight separated by space 1.71 68.4 



```python
x.split(' ')
```




    ['1.71', '68.4', '']




```python
y=x.split(' ')
y
```




    ['1.71', '68.4', '']




```python
height= float(y[0])
height
```




    1.71




```python
weight= float(y[1])
weight
```




    68.4




```python
BMI= weight/height**2
BMI
```




    23.39181286549708



#### This value can also be classified according to ranges of values, following to the table below. Use conditional structures to classify and print the classification assigned to the individual. 

<center><\center>  


(source: https://healthtravelguide.com/bmi-calculator/)


```python
if BMI<18.5:
  print ('Underweight')
elif BMI<24.9:
  print ('Normal Weight')
elif BMI<29.9:
  print ('Pre-Obisity') 
elif BMI<34.9:
  print ('ObisityI')
elif BMI<39.9:
  print ('ObisityII')  
else:
  print ('ObisityIII')    
```

    Normal Weight


#### 4) Receive an integer as an input and, using a loop, calculate the factorial of this number, that is, the product of all the integers from one to the number provided. 


```python
num = int(input("Enter the number:"))
fact = 1
  
for i in range(1,num+1):
    fact = fact * i
      
print ("The factorial of 23 is : ",end="")
print (fact)
```

    Enter the number:23
    The factorial of 23 is : 25852016738884976640000


#### 5) Using a while loop and the input function, read an indefinite number of integers until the number read is -1. Present the sum of all these numbers in the form of a print, excluding the -1 read at the end. 


```python
x = input("Any integer except -1")
while x!=-1:
    inp = input("Insert input: ")
    if inp == -1:
        break
    inputs.append(inp)

print (inputs)
```

#### 6) Read the **first name** of an employee, his **amount of hours worked** and the **salary per hour** in a single line separated by commas. Next, calculate the **total salary** for this employee and show it to two decimal places.


```python
response = input("Please enter your first name, the amount of working hours and the salary per hour ")
```

    Please enter your first name, the amount of working hours and the salary per hour George 40 13



```python
response = response.split()
response
```




    ['George', '40', '13']




```python
total_salary = int(response[1]) * int(response[2]) * 30.00
total_salary
```




    15600.0



#### 7) Read three floating point values **A**, **B** and **C** respectively. Then calculate itens a, b, c, d and e: 


```python
response = input("please enter numbers A, B and C")
```

    please enter numbers A, B and C 6 7 9



```python
response = response.split()
response
```




    ['6', '7', '9']




```python
response[0]
```




    '6'




```python
response[1]
```




    '7'




```python
response[2]
```




    '9'



    a) the area of the triangle rectangle with A as the base and C as the height.


```python
area = 0.5 * int(response[0]) * int(response[1])
area
```




    21.0



    b) the area of the circle of radius C. (pi = 3.14159) 


```python
radius = int(response[2])/2*3.14159
radius
```




    14.137155



    c) the area of the trapezoid that has A and B for bases and C for height. 


```python
area_trapezoid = (int(response[0])+int(response[1])/2)* int(response[2])
area_trapezoid
```




    85.5



    d) the area of the square that has side B. 


```python
area_square = int(response[1]) * 2
area_square
```




    14



    e) the area of the rectangle that has sides A and B. 


```python
area_rectangle = int(response[0]) * int(response[1])
area_rectangle
```




    42



#### 8) Read **the values a, b and c** and calculate the **roots of the second degree equation** $ax^{2}+bx+c=0$ using [this formula](https://en.wikipedia.org/wiki/Quadratic_equation). If it is not possible to calculate the roots, display the message **“There are no real roots”**. 


```python
print("Equation: ax^2 + bx + c ")
a=int(input("Enter a: "))
b=int(input("Enter b: "))
c=int(input("Enter c: "))
d=b**2-4*a*c
d1=d**0.5
if(d<0):
    print("There are no real roots. ")
else:
    r1=(-b+d1)/2*a
    r2=(-b-d1)/2*a
    print("The first root: ")
    print("The second root: ")
```

    Equation: ax^2 + bx + c 
    Enter a: 4
    Enter b: 3
    Enter c: 4
    There are no real roots. 


#### 9) Read four floating point numerical values corresponding to the coordinates of two geographical coordinates in the cartesian plane. Each point will come in a line with its coordinates separated by space. Then calculate and show the distance between these two points. 

(obs: $d=\sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}$)


```python
geo_coordinates1 = {"x1":'41.035', "x2":'24.649'}

```


```python
geo_coordinates2 = {'y1':'37.971', 'y2':'23.725'}

```


```python
geo_coordinates1 = {"x1":'41.035', "x2":'24.649'}
geo_coordinates2 = {'y1':'37.971', 'y2':'23.725'}

x1, x2 = 41.035,24.649
y1, y2 = 37.971, 23.725

result= ((((x2 - x1 )**2) + ((y2-y1)**2) )**0.5)

print("distance between",(x1,x2),"and",(y1,y2),"is : ", result)
```

    distance between (41.035, 24.649) and (37.971, 23.725) is :  21.712888154273713


#### 10) Read **two floating point numbers** on a line that represent **coordinates of a cartesian point**. With this, use **conditional structures** to determine if you are at the origin, printing the message **'origin'**; in one of the axes, printing **'x axis'** or **'y axis'**; or in one of the four quadrants, printing **'q1'**, **'q2**', **'q3'** or **'q4'**. 


```python
x, y = float(input("A floating point number x")), float(input("A floating point number y"))


    
```


```python
if (x > 0 and y > 0):
        print ("lies in First quadrant")
    elif (x < 0 and y > 0)
        print ("lies in Second quadrant")
 
    elif (x < 0 and y < 0)
        print ("lies in Third quadrant")
 
    elif (x > 0 and y < 0)
        print ("lies in Fourth quadrant")
 
    elif (x == 0 and y > 0)
        print ("lies at positive y axis")
 
    elif (x == 0 and y < 0)
        print ("lies at negative y axis")
 
    elif (y == 0 and x < 0)
        print ("lies at negative x axis")
 
    elif (y == 0 and x > 0)
        print ("lies at positive x axis")
 
    else
        print ("lies at origin")
```

#### 11) Read an integer that represents a phone code for international dialing.  
#### Then, inform to which country the code belongs to, considering the generated table below:
(You just need to consider the first 10 entries)  


```python
import pandas as pd
df = pd.read_html('https://en.wikipedia.org/wiki/Telephone_numbers_in_Europe')[1]
df = df.iloc[:,:2]
df.head(20)
```




<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>Country</th>
      <th>Country calling code</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>Austria</td>
      <td>43</td>
    </tr>
    <tr>
      <th>1</th>
      <td>Belgium</td>
      <td>32</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Bulgaria</td>
      <td>359</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Croatia</td>
      <td>385</td>
    </tr>
    <tr>
      <th>4</th>
      <td>Cyprus</td>
      <td>357</td>
    </tr>
    <tr>
      <th>5</th>
      <td>Czech Republic</td>
      <td>420</td>
    </tr>
    <tr>
      <th>6</th>
      <td>Denmark</td>
      <td>45</td>
    </tr>
    <tr>
      <th>7</th>
      <td>Estonia</td>
      <td>372</td>
    </tr>
    <tr>
      <th>8</th>
      <td>Finland</td>
      <td>358</td>
    </tr>
    <tr>
      <th>9</th>
      <td>France</td>
      <td>33</td>
    </tr>
    <tr>
      <th>10</th>
      <td>Germany</td>
      <td>49</td>
    </tr>
    <tr>
      <th>11</th>
      <td>Greece</td>
      <td>30</td>
    </tr>
    <tr>
      <th>12</th>
      <td>Hungary</td>
      <td>36</td>
    </tr>
    <tr>
      <th>13</th>
      <td>Iceland</td>
      <td>354</td>
    </tr>
    <tr>
      <th>14</th>
      <td>Ireland</td>
      <td>353</td>
    </tr>
    <tr>
      <th>15</th>
      <td>Italy</td>
      <td>39</td>
    </tr>
    <tr>
      <th>16</th>
      <td>Latvia</td>
      <td>371</td>
    </tr>
    <tr>
      <th>17</th>
      <td>Liechtenstein</td>
      <td>423</td>
    </tr>
    <tr>
      <th>18</th>
      <td>Lithuania</td>
      <td>370</td>
    </tr>
    <tr>
      <th>19</th>
      <td>Luxembourg</td>
      <td>352</td>
    </tr>
  </tbody>
</table>
</div>




```python
codes = {"43":'Austria', "32":'Belgium', "359":'Bulgaria', "385":'Croatia',	"357":'Cyprus', "420":'Czech Republic', "45":'Denmark', "372":'Estonia',	"358":'Finland', "33":'France'}

my_code= input("What is your code?")


```

    What is your code?43



```python
codes[my_code]

```




    'Austria'



#### 12) Write a piece of code that reads 6 numbers in a row. Next, show the number of positive values entered. On the next line, print the average of the values to one decimal place. 


```python
list= [int(input("Add a number")), int(input("Add a number")), int(input("Add a number")), int(input("Add a number")), int(input("Add a number")), int(input("Add a number"))]

pos_count= 0

for num in list:
      
    if num >= 0:
        pos_count += 1
    print("Positive numbers in the list: ", pos_count)  

avg = sum(list)/len(list)
print("The average is ", round(avg,2))   
  
```

    Add a number7
    Add a number7
    Add a number8
    Add a number9
    Add a number4
    Add a number2
    Positive numbers in the list:  1
    Positive numbers in the list:  2
    Positive numbers in the list:  3
    Positive numbers in the list:  4
    Positive numbers in the list:  5
    Positive numbers in the list:  6
    The average is  6.17


#### 13) Read an integer **N**. Then print the **square of each of the even values**, from 1 to N, including N, if applicable, arranged one per line. 


```python
n = int(input("Add a number"))
for int in range [1:n]:
    square = n**2
    print ('The square of the number'int'is {square})
```

#### 14) Using **input()**, read an integer and print its classification as **'even / odd'** and **'positive / negative'** . The two classes for the number must be printed on the same line separated by a space. In the case of zero, print only **'null'**. 


```python
num = int(input())

if num == 0:
   print("Null")

if num > 0:
  if (num % 2) == 0:
   print("{0} is Positive Even".format(num))
  else:
    print("{0} is Positive Odd".format(num))

if (num % 2) == 0:
   print("{0} is Negative Even".format(num))
elif (num % 2) !=0:
     print: ("is Negative Odd".format(num))
```

    23
    23 is Positive Odd


## Challenge
#### 15) Ordering problems are recurrent in the history of programming. Over time, several algorithms have been developed to fulfill this function. The simplest of these algorithms is the [**Bubble Sort**](https://en.wikipedia.org/wiki/Bubble_sort), which is based on comparisons of elements two by two in a loop of passes through the elements. Your mission, if you decide to accept it, will be to input six whole numbers ramdonly ordered. Then implement the **Bubble Sort** principle to order these six numbers **using only loops and conditionals**.  
#### At the end, print the six numbers in ascending order on a single line separated by spaces. 


```python

```

c4d14891c70f3a92b13bce88ef73a916dc1032bc
ipynb
Jupyter Notebook
Assignment_1_EftropiosKaragkiozis.ipynb
eftropiosk94/Python_Course
ff93f6c8605b97a2734cd615667d6c52eb315bef
Apache-2.0
Assignment_1_EftropiosKaragkiozis.ipynb
eftropiosk94/Python_Course
ff93f6c8605b97a2734cd615667d6c52eb315bef
Apache-2.0
Assignment_1_EftropiosKaragkiozis.ipynb
eftropiosk94/Python_Course
ff93f6c8605b97a2734cd615667d6c52eb315bef
Apache-2.0
Qwen/Qwen-72B
1. YES
2. YES