Semestrul 2
Semestrul 2
Lectia 1- Functii
# Task 1 - Creating and using a simple function
def printer():
print("Hello World")
printer()
def isItPrime():
number = int(input("Enter a number:\n"))
prime = True
for i in range(2,number):
if number % i == 0:
prime = False
if prime:
print(number, "is a prime number.")
else:
print(number, "is not a prime number.")
isItPrime()
def parameter(this_is_the_parameter):
print(this_is_the_parameter)
# Function argument
parameter("This is the argument")
parameter(3+4)
def isItPrimeWithParameter(num):
prime = True
for i in range(2,num):
if num % i == 0:
prime = False
if prime:
print(num, "is a prime number.")
else:
print(num, "is not a prime number.")
isItPrimeWithParameter(73)
isItPrimeWithParameter(12)
def right_triangle(a,b,c):
if (a**2 + b**2 == c**2) or (b**2 + c**2 == a**2) or (c**2 + a**2 ==
b**2):
print("It is a right triangle.")
else:
print("It is not a right triangle.")
right_triangle(3, 4, 5)
right_triangle(4, 5, 6)
def func_num():
x = 10
print(x)
x = 20
print(x)
func_num()
print(x)
# Task 7 - Return
def func_return(p):
if p >= 0:
return p
else:
return -p
print(func_return(6))
print(func_return(-5))
print(liters_100km_to_miles_gallon(6.3))
def miles_gallon_to_liters_100km(miles):
km = miles*1.609344
liters = 3.785411
return 100*liters/km
print(miles_gallon_to_liters_100km(62))
print(ExitFunction())
# Task 1 - Recursion
def recursion(num):
print(num)
if num > 0:
num -= 1
recursion(num)
recursion(10)
# Task 3 - Fibonacci
def fibonacci_recursive(n):
print(f"Calculating F({n})", end=", ")
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
fibonacci_recursive(3)
# Task 5 - Write a Python program to calculate the value of 'a' to the power
'b', e.g.: (power(3,4) -> 3*3*3*3 = 81
def power(a, b):
if b == 0:
return 1
elif a == 0:
return 0
elif b == 1:
return a
else:
return a * power(a, b - 1)
p = power(3, 4)
print(p)
insertion_sort(arr, n - 1)
last = arr[n - 1]
j = n - 2
while(j >= 0 and arr[j] > last):
arr[j + 1] = arr[j]
j = j - 1
arr[j + 1] = last
Lectia 3- Import
# Task 1 - math module and constants
import math
import random
import matplotlib.pyplot as plt
print(math.pi)
print(math.tau)
print(math.e)
print(math.inf)
print(math.nan)
def circle(radius):
print("The circumference of this circle is", round(radius*math.tau, 3),
"cm.")
print("The area of this circle is", round(radius ** 2 * math.pi, 4),
"cm2.")
circle(3)
print(math.factorial(5))
print(math.sqrt(4))
numbers = []
for i in range(0, 100):
numbers.append(random.randrange(0, 10, 2))
print(numbers)
print(math.fabs(-5))
chances = 7
solution = random.randint(1,101)
tip = 0
def check(num):
if num > solution:
return "I thought of a smaller number."
elif num < solution:
return "I thought of a greater number."
else:
return "The game will end now..."
piechart(data, games)
numbers = []
for i in range(0, 200):
numbers.append(random.randrange(0, 10, 2))
names = ['Zero', 'Two', 'Four', 'Six', 'Eight']
quantity = []
for i in range(0,5):
quantity.append(numbers.count(i*2))
plt.pie(quantity, labels=names, autopct='%.0f%%')
plt.show()
Lectia 4- Yield
def nextSquare():
k = 1
# An Infinite loop to generate squares
while True:
yield k * k # return the data, but not stop the process
k += 1 # Next execution resumes from this point
Lectia 5- Matrice
import random
# Task 1 - Creating a matrix
def createMatrix():
matrix_1 = [[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]]
print(matrix_1)
createMatrix()
def createMatrix3():
matrix_2 = []
for i in range(3):
temp_list = []
for j in range(4):
temp_list.append(j)
matrix_2.append(temp_list)
print(matrix_2)
createMatrix2()
createMatrix3()
Lectia 7- Sudoku
# Task 1 - Sudoku solver
board = [
[7, 8, 0, 4, 0, 0, 1, 2, 0],
[6, 0, 0, 0, 7, 5, 0, 0, 9],
[0, 0, 0, 6, 0, 1, 0, 7, 8],
[0, 0, 7, 0, 4, 0, 2, 6, 0],
[0, 0, 1, 0, 5, 0, 9, 3, 0],
[9, 0, 4, 0, 6, 0, 0, 0, 5],
[0, 7, 0, 3, 0, 0, 0, 1, 2],
[1, 2, 0, 0, 0, 7, 4, 0, 0],
[0, 4, 9, 2, 0, 6, 0, 0, 7]
]
def solve(bo):
find = find_empty(bo)
if not find:
return True
else:
row, col = find
def print_board(bo):
for i in range(len(bo)):
if i % 3 == 0 and i != 0:
print("- - - - - - - - - - - - - ")
for j in range(len(bo[0])):
if j % 3 == 0 and j != 0:
print(" | ", end="")
if j == 8:
print(bo[i][j])
else:
print(str(bo[i][j]) + " ", end="")
def find_empty(bo):
for i in range(len(bo)):
for j in range(len(bo[0])):
if bo[i][j] == 0:
return (i, j)
return None
print_board(board)
solve(board)
print("############################")
print_board(board)
def basicOp():
print(2 ** 2 ** 3)
print((-2 / 4), (2 / 4), (2 // 4), (-2 // 4))
print(5 % 4, -5 % 4, 5 % -4, -5 % -4)
print((5 * ((25 % 13) + 100) / (2 * 13)) // 2)
print(5 * 25 % 13 + 100 / 2 * 13 // 2)
print(2 * 3 % 5)
x = 0
y = 10
print(x < y and y % 2 == 0)
# basicOp()
# bitwiseOp()
# comparsion()
# powerOfTwo(32)
print(converted_num)
# numberSystemSwap()
# sepEnd()
# sum()
c = a | b # 1111
print(f"The result is {c}")
c = a ^ b # 1011
print(f"The result is {c}")
c = a<<2 # 110100
print(f"The result is {c}")
c = b>>2 # 1
print(f"The result is {c}")
c = a<<2 | b>>2 # 110100 + 1
print(f"The result is {c}")
Lectia 9- Tuple
# Task 1 - Creating tuples
empty_tuple = ()
tuple1 = (1, 2, 3, 4)
tuple2 = (1, "sth", True, [1, 2, 3], tuple1)
print(empty_tuple, tuple1, tuple2)
tuple3 = (1)
print(type(tuple3))
tuple4 = (4,)
print(type(tuple4))
tuple5 = 1, 10, 20
print(tuple5)
tuple6 = tuple((1, 2, 3))
print(tuple6)
list1 = [1, 2, 3]
print(type(list1))
tuple1 = tuple(list1)
print(type(tuple1))
list2 = list(tuple1)
print(type(list2))
list1 = [1, 2, 3]
tuple1 = (1, 2, 3)
list1.append(4)
del list1[3]
list1.insert(1, 10)
list1[2] = 20
print(list1)
del tuple1
import random
list1 = [random.randint(1, 100) for i in range(10)]
tuple1 = tuple(random.randint(1, 100) for j in range(10))
even_list = []
odd_list = []
even_tuple = []
odd_tuple = []
for i in range(len(list1)):
if list1[i] % 2 == 0:
even_list.append(list1[i])
else:
odd_list.append(list1[i])
if tuple1[i] % 2 == 0:
even_tuple.append(tuple1[i])
else:
odd_tuple.append(tuple1[i])
print(list1, even_list, odd_list)
print(tuple1, even_tuple, odd_tuple)
# Task 5 - Comparison
tuple1 = (1, 2, 3)
tuple2 = (1, 4, 5)
print(tuple1 == tuple2)
tuple3 = (3, 2, 1)
tuple4 = (1, 2, 3)
print(tuple3 == tuple4)
tuple5 = (6, 6, 5)
tuple6 = (6, 6, 5)
print(tuple5 == tuple6)
import random
tuple1 = tuple(random.randint(1, 10) for i in range(5))
print(tuple1)
for i in tuple1:
print(i*3, end=" ")
import random
list1 = [random.randint(1, 10) for i in range(5)]
print(list1)
for i in range(len(list1)):
list1.append(list1[i]**2)
print(list1)
tup1 = (1,)
tup2 = (1,)
tup3 = tup1+tup2
print(tup3)
# Task 10 - Contain
import random
tup1 = (3, 6, 1, 5, 9)
list1 = [2, 6, 4, 8, 1]
inTuple = 0
inList = 0
numbers = [] # collect the numbers
for i in range(10):
number = random.randint(1, 20)
numbers.append(number)
if number in list1:
inList += 1
if number in tup1:
inTuple += 1
print("numbers: ", numbers, "in list: ", inList, " in tuple: ", inTuple)
tup2 = (1, 2, 3, 4)
print(tup2)
tup2 = tup2[::-1]
print(tup2)
# Task 17 - Averages
tup1 = ((1, 2, 3), (3, 4), (10, 20, 60), (3, 4, 5))
averages = []
for i in tup1:
average = sum(i)/len(i)
averages.append(average)
print(averages)