From e70d188bb451814bdc1c43f49ac0145a7f7aa576 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Mon, 7 Apr 2025 21:37:45 +0200 Subject: [PATCH 01/22] Create zahid_team_leader_week1.py Question no 1 to 8 are solved --- zahid_team_leader_week1.py | 78 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 zahid_team_leader_week1.py diff --git a/zahid_team_leader_week1.py b/zahid_team_leader_week1.py new file mode 100644 index 0000000..50795c8 --- /dev/null +++ b/zahid_team_leader_week1.py @@ -0,0 +1,78 @@ +#Question #1 +# i=0 +# for i in range(1,13): +# print(i) + +#Quesion #2 +# user_input = input('Please Enter Number') +#i = 1 +# for i in range(i,int(user_input)): +# if i%2 == 0: +# print(i) +# while i <= int(user_input): +# i += 1 +# if i%2 == 0: +# print(i) + +#Question #3 +# value1 = int(input('Please Enter First Number')) +# value2 = int(input('Please Enter 2nd Number')) +# if value1 > value2: +# print("Error! Please Enter Valid first Value should less the 2nd value") +# else: +# while value1 < value2: +# value1 += 1 +# print(value1) + +# Question #4 +# value1 = int(input('Please Enter Number')) +# if value1 % 2 == 0: +# print('Even Number') +# else: +# print("Odd Number") + +#Question #5 + +# number = int(input('Please Enter Number')) +# factorial = 1 +# for i in range(2, number + 1): +# factorial *= i +# print(factorial) + + +# Question # 6 +# value1=int(input('enter the number')) +# for i in range(2, int(value1**0.5) + 1): +# if value1 % i == 0: +# print(str(value1)+" Not a Prime number ") +# break +# print(str(value1)+" Not a Prime number ") Need To bit discuss + + +#Question # 7 +# number = int(input('Please Enter Number')) +# i=0 +# numer_calc = 0 +# add_number = 1 +# while i < number: +# final_number = numer_calc + add_number +# print(numer_calc) +# numer_calc = add_number +# add_number = final_number +# i += 1 + + + +#Question no 8 + +# text = input('Please Enter Word') +# tlen = len(text) - 1 +# new_text = '' +# for i in range(tlen, -1, -1): +# new_text = new_text+text[i] +# print(new_text) + +#Question # 9 + +string = "hello" +print(string[::-1]) \ No newline at end of file From aa136fa3f74b03cd60239e3c5bca7caf3f800c2e Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Mon, 7 Apr 2025 21:41:31 +0200 Subject: [PATCH 02/22] Update zahid_team_leader_week1.py remove comments --- zahid_team_leader_week1.py | 105 +++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 52 deletions(-) diff --git a/zahid_team_leader_week1.py b/zahid_team_leader_week1.py index 50795c8..2e21ce3 100644 --- a/zahid_team_leader_week1.py +++ b/zahid_team_leader_week1.py @@ -1,76 +1,77 @@ #Question #1 -# i=0 -# for i in range(1,13): -# print(i) +i=0 +for i in range(1,13): + print(i) #Quesion #2 -# user_input = input('Please Enter Number') -#i = 1 -# for i in range(i,int(user_input)): -# if i%2 == 0: -# print(i) -# while i <= int(user_input): -# i += 1 -# if i%2 == 0: -# print(i) +user_input = input('Please Enter Number') +i = 1 +for i in range(i,int(user_input)): + if i%2 == 0: + print(i) +while i <= int(user_input): + i += 1 + if i%2 == 0: + print(i) #Question #3 -# value1 = int(input('Please Enter First Number')) -# value2 = int(input('Please Enter 2nd Number')) -# if value1 > value2: -# print("Error! Please Enter Valid first Value should less the 2nd value") -# else: -# while value1 < value2: -# value1 += 1 -# print(value1) +value1 = int(input('Please Enter First Number')) +value2 = int(input('Please Enter 2nd Number')) +if value1 > value2: + print("Error! Please Enter Valid first Value should less the 2nd value") +else: + while value1 < value2: + value1 += 1 + print(value1) # Question #4 -# value1 = int(input('Please Enter Number')) -# if value1 % 2 == 0: -# print('Even Number') -# else: -# print("Odd Number") +value1 = int(input('Please Enter Number')) +if value1 % 2 == 0: + print('Even Number') +else: + print("Odd Number") #Question #5 -# number = int(input('Please Enter Number')) -# factorial = 1 -# for i in range(2, number + 1): -# factorial *= i -# print(factorial) +number = int(input('Please Enter Number')) +factorial = 1 +for i in range(2, number + 1): + factorial *= i +print(factorial) # Question # 6 -# value1=int(input('enter the number')) -# for i in range(2, int(value1**0.5) + 1): -# if value1 % i == 0: -# print(str(value1)+" Not a Prime number ") -# break -# print(str(value1)+" Not a Prime number ") Need To bit discuss +value1=int(input('enter the number')) +for i in range(2, int(value1**0.5) + 1): + if value1 % i == 0: + print(str(value1)+" Not a Prime number ") + break +print(str(value1)+" Not a Prime number ") +#Need To bit discuss #Question # 7 -# number = int(input('Please Enter Number')) -# i=0 -# numer_calc = 0 -# add_number = 1 -# while i < number: -# final_number = numer_calc + add_number -# print(numer_calc) -# numer_calc = add_number -# add_number = final_number -# i += 1 +number = int(input('Please Enter Number')) +i=0 +numer_calc = 0 +add_number = 1 +while i < number: + final_number = numer_calc + add_number + print(numer_calc) + numer_calc = add_number + add_number = final_number + i += 1 #Question no 8 -# text = input('Please Enter Word') -# tlen = len(text) - 1 -# new_text = '' -# for i in range(tlen, -1, -1): -# new_text = new_text+text[i] -# print(new_text) +text = input('Please Enter Word') +tlen = len(text) - 1 +new_text = '' +for i in range(tlen, -1, -1): + new_text = new_text+text[i] +print(new_text) #Question # 9 From 22302e08e47048dd126dcbc353ebe1e18a0d2b40 Mon Sep 17 00:00:00 2001 From: Asem-Altaweel Date: Thu, 10 Apr 2025 13:43:33 +0200 Subject: [PATCH 03/22] Create Week_1_Answers.py Question 1 is done --- Week_1_Answers.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Week_1_Answers.py diff --git a/Week_1_Answers.py b/Week_1_Answers.py new file mode 100644 index 0000000..009fa21 --- /dev/null +++ b/Week_1_Answers.py @@ -0,0 +1,3 @@ +# Write a Python code that prints numbers from 1 to 10 on the screen. +for i in range(1, 11): + print(i) \ No newline at end of file From 3bc6bc8293c9a3846333eb9a71d07827c93425c0 Mon Sep 17 00:00:00 2001 From: Asem-Altaweel Date: Thu, 10 Apr 2025 13:57:24 +0200 Subject: [PATCH 04/22] Add files via upload --- Week_1_Answers.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Week_1_Answers.py diff --git a/Week_1_Answers.py b/Week_1_Answers.py new file mode 100644 index 0000000..ee5f1a8 --- /dev/null +++ b/Week_1_Answers.py @@ -0,0 +1,3 @@ +# Write a Python code that prints numbers from 1 to 10 on the screen. +for i in range(1, 11): + print(i) \ No newline at end of file From 29663f2a73b509639a16b0d7186ab0250396e572 Mon Sep 17 00:00:00 2001 From: Asem-Altaweel Date: Fri, 11 Apr 2025 01:02:16 +0200 Subject: [PATCH 05/22] Questions 1 t0 9 are done --- Asem_Answers_Week1_in_team.py | 136 ++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 Asem_Answers_Week1_in_team.py diff --git a/Asem_Answers_Week1_in_team.py b/Asem_Answers_Week1_in_team.py new file mode 100644 index 0000000..42cf4e5 --- /dev/null +++ b/Asem_Answers_Week1_in_team.py @@ -0,0 +1,136 @@ +# Q1: Write a Python code that prints numbers from 1 to 10 on the screen. + +for i in range(1, 11): + print(i) + +# Q2:Take a number input from the user and write a Python program that prints even numbers up to this number on the screen. +# Do this first with 'for' and then with 'while' loops. +user_input = input('Please Enter Number') +i=0 +for i in range(i,int(user_input)): + if i%2 == 0: + print(i) + +i = 0 +user_input = input('Please Enter Number') +while i <= int(user_input): + if i == 0 : + print(i) + i += 1 + if i%2 == 0 : + if i > int (user_input): + break + print(i) + +# Q3: Write a Python code that receives a start and end value from the user +# and prints all the numbers between these values ​​(including the end value) on the screen. +Start_Value = input('Enter a start Number ') +End_Value = input('Enter an End Number') +if int(Start_Value) > int(End_Value): + print("End Number Should be Biger Than Start Number ") + Start_Value = input('Enter a start Number ') + End_Value = input('Enter an End Number') + x = range(int(Start_Value), int(End_Value) + 1) + for n in x: + print(n) +else: + x = range(int(Start_Value), int(End_Value) + 1) + for n in x: + print(n) + +# Q4: Get a number from the user and write a Python code that prints whether this number is odd or even +user_input = int(input('Inter integer number')) +if user_input % 2 == 0 : + print("This Number is Even") +else: + print('This Number is Odd') + +# Q5: Write a Python program that takes a positive integer input from the user and calculates its factorial. +# Factorial is the product of all positive integers between a number itself and 1. +# For example: if the user entered 5, the program should give the following output: +# Enter a number from the user: 5 +# Factorial: 120 +number = int(input("Enter a positive integer to calculate its factorial: ")) +factorial = 1 +i = 1 +while i <= number: + factorial *= i + i += 1 +print("The factorial of", number , " is:", factorial) + +# Q6: Write a Python code that receives a number from the user and checks whether this number is prime. +num = int (input("Insert Positive integer Number")) +if num < 0: + print("The Number in negative , inter a positive Number " ) +elif num == 0 or num == 1 : + print(num, "is not a prime number") +elif num > 1: + # check for factors + for i in range(2, num): + if (num % i) == 0: + print(num, "is not a prime number") + + break + else: + print(num, "is a prime number") + +# Q7: How to create a loop that calculates the Fibonacci sequence +# and returns the result as a list containing numbers up to a certain limit? +Num_terms = int(input("How many terms? ")) + +# first two terms +x = 0 +y = 1 + +num_list =[x] +# check if the number of terms is valid +if Num_terms <= 0: + print("Please enter a positive integer") +# if there is only one term, return n1 +elif Num_terms == 1: + print("Fibonacci sequence upto",Num_terms,":",num_list) + +# generate fibonacci sequence +else: + num_list = [x,y] + count=2 + while count < Num_terms: + z = x + y + num_list.append(z) + # update values + x = y + y = z + count +=1 + print("Fibonacci sequence upto",Num_terms,":",num_list) + +# Q8: Write a Python code that takes a word from the user and prints the reverse of this word on the screen. +word = input("Input a word to reverse: ") +for char in range(len(word) - 1, -1, -1): + # Print each character from the word in reverse order without a new line (end="") + print(word[char], end="") + +# Q9: How to create a combination of loop and conditional statement that takes a word input from the user +# and checks whether that word is a palindrome (the same when read backwards)? +word = input("Inter a word to check if it is palindrome ") +first = 0 +length = len(word) +last = length +half = int(length/ 2) + +while half > 0 : + if word[first] != word[last-1]: + print("This word is not palindrome") + break + first += 1 + last -= 1 + half -= 1 +if half <= 1: + print("This word is a palindrome") + + #Question 10: Write the code that calculates the person's weight index and returns the result as underweight, + # overweight or overweight according to the index value. (You can look on the internet for the weight index calculation) +#To do this, ask the user for their weight and height measurements. weight index +# If it is below 25, it is weak, +# Between 25-30 is normal, +# If you are over 30-40, you are overweight. +# If you are over 40, you are overweight. \ No newline at end of file From e114d3cb65a77894bfdcf87aea13dfed249afdc4 Mon Sep 17 00:00:00 2001 From: Asem-Altaweel Date: Fri, 11 Apr 2025 15:53:01 +0200 Subject: [PATCH 06/22] Week one Ansers from Asem is Completed --- Asem_Answers_Week1_in_team.py | 88 ++++++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 1 deletion(-) diff --git a/Asem_Answers_Week1_in_team.py b/Asem_Answers_Week1_in_team.py index 42cf4e5..41d7b4b 100644 --- a/Asem_Answers_Week1_in_team.py +++ b/Asem_Answers_Week1_in_team.py @@ -120,6 +120,7 @@ while half > 0 : if word[first] != word[last-1]: print("This word is not palindrome") + break first += 1 last -= 1 @@ -133,4 +134,89 @@ # If it is below 25, it is weak, # Between 25-30 is normal, # If you are over 30-40, you are overweight. -# If you are over 40, you are overweight. \ No newline at end of file +# If you are over 40, you are overweight. + +kg = float(input("Please enter your weight in Kg and more than zero ")) +while kg <= 0 : + kg = float(input("Please re-enter your weight in Kg and more than zero")) + +le = float(input('Please enter your height in M and more than zero')) +while le <= 0 : + le = float(input('Please re-enter your height in M and more than zero ')) + +bmi = le / (kg *kg) +if bmi > 40 :(print("You are Highly overweight.")) +elif bmi > 30 : + print('You are Overweight.') +elif bmi >= 25 : + print('Your Weight is Normal ') +else: print(' You are underweight ') + +# Q 11: How to write a Python program that finds the largest of three numbers +# entered by a user? +x = float(input("put the first num" )) +y = float(input("put the second num" )) +z= float(input("put the third num" )) +largest = x +if y >= x : + largest = y + if y <= z : + largest = z +elif x<= z: + largest = z +print("The largest Num is :", largest) + +# Q12: Get Midterm and Final grades from a student for any course. +# The sum of 40% of the midterm exam grade and 60% of the final +# grade will give the year-end average. +# If the average is below 50, "FAILED" will appear on the screen +# and if it is 50 or above, "CSUCESSFUL" will be displayed on the screen. +# This printing process is 4 lessons. +# and the lessons will be written one after the other. + +eng_res = "" +math_res = "" +his_res = "" +geo_res = "" +md_E = -1 +while md_E not in range (0,100): + md_E = float(input('Enter the student Midterm English grades')) +fl_E = -1 +while fl_E not in range (0,101): + fl_E = float(input('Enter the student English Final grades')) +if (md_E * 0.4 + fl_E *0.6) >= 50 : + eng_res= "Passed" +else: + eng_res= 'Failed' +md_E = -1 +while md_E not in range (0,100): + md_E = float(input('Enter the student Midterm Math grades')) +fl_E = -1 +while fl_E not in range (0,101): + fl_E = float(input('Enter the student Math Final grades')) +if (md_E * 0.4 + fl_E *0.6) >= 50 : + math_res= "Passed" +else: + math_res= 'Failed' +md_E = -1 +while md_E not in range (0,100): + md_E = float(input('Enter the student Midterm History grades')) +fl_E = -1 +while fl_E not in range (0,101): + fl_E = float(input('Enter the student Final History grades')) +if (md_E * 0.4 + fl_E *0.6) >= 50 : + his_res= "Passed" +else: + his_res= 'Failed' +md_E = -1 +while md_E not in range (0,100): + md_E = float(input('Enter the student Midterm Geography grades')) +fl_E = -1 +while fl_E not in range (0,101): + fl_E = float(input('Enter the student Final Geography grades')) +if (md_E * 0.4 + fl_E *0.6) >= 50 : + geo_res= "Passed" +else: + geo_res= 'Failed' +print("English Result is:",eng_res,"\nMath Result is:",math_res,"\nHistory result is:",his_res,"\nGeography Result is:",geo_res) + From 7e8e776f05bfc56efe9a88bc4af325e6c041f353 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 18:19:08 +0200 Subject: [PATCH 07/22] All Question are fixed --- zahid_team_leader_week1.py | 156 ++++++++++++++++++++++++------------- 1 file changed, 100 insertions(+), 56 deletions(-) diff --git a/zahid_team_leader_week1.py b/zahid_team_leader_week1.py index 2e21ce3..f090c39 100644 --- a/zahid_team_leader_week1.py +++ b/zahid_team_leader_week1.py @@ -1,79 +1,123 @@ #Question #1 -i=0 -for i in range(1,13): - print(i) +# i=0 +# for i in range(1,13): +# print(i) #Quesion #2 -user_input = input('Please Enter Number') -i = 1 -for i in range(i,int(user_input)): - if i%2 == 0: - print(i) -while i <= int(user_input): - i += 1 - if i%2 == 0: - print(i) +# user_input = input('Please Enter Number') +#i = 1 +# for i in range(i,int(user_input)): +# if i%2 == 0: +# print(i) +# while i <= int(user_input): +# i += 1 +# if i%2 == 0: +# print(i) #Question #3 -value1 = int(input('Please Enter First Number')) -value2 = int(input('Please Enter 2nd Number')) -if value1 > value2: - print("Error! Please Enter Valid first Value should less the 2nd value") -else: - while value1 < value2: - value1 += 1 - print(value1) +# value1 = int(input('Please Enter First Number')) +# value2 = int(input('Please Enter 2nd Number')) +# if value1 > value2: +# print("Error! Please Enter Valid first Value should less the 2nd value") +# else: +# while value1 < value2: +# value1 += 1 +# print(value1) # Question #4 -value1 = int(input('Please Enter Number')) -if value1 % 2 == 0: - print('Even Number') -else: - print("Odd Number") +# value1 = int(input('Please Enter Number')) +# if value1 % 2 == 0: +# print('Even Number') +# else: +# print("Odd Number") #Question #5 -number = int(input('Please Enter Number')) -factorial = 1 -for i in range(2, number + 1): - factorial *= i -print(factorial) +# number = int(input('Please Enter Number')) +# factorial = 1 +# for i in range(2, number + 1): +# factorial *= i +# print(factorial) # Question # 6 -value1=int(input('enter the number')) -for i in range(2, int(value1**0.5) + 1): - if value1 % i == 0: - print(str(value1)+" Not a Prime number ") - break -print(str(value1)+" Not a Prime number ") -#Need To bit discuss +# value1=int(input('enter the number')) +# for i in range(2, int(value1**0.5) + 1): +# if value1 % i == 0: +# print(str(value1)+" Not a Prime number ") +# break +# print(str(value1)+" Not a Prime number ") Need To bit discuss #Question # 7 -number = int(input('Please Enter Number')) -i=0 -numer_calc = 0 -add_number = 1 -while i < number: - final_number = numer_calc + add_number - print(numer_calc) - numer_calc = add_number - add_number = final_number - i += 1 +# number = int(input('Please Enter Number')) +# i=0 +# numer_calc = 0 +# add_number = 1 +# while i < number: +# final_number = numer_calc + add_number +# print(numer_calc) +# numer_calc = add_number +# add_number = final_number +# i += 1 #Question no 8 -text = input('Please Enter Word') -tlen = len(text) - 1 -new_text = '' -for i in range(tlen, -1, -1): - new_text = new_text+text[i] -print(new_text) +# text = input('Please Enter Word') +# tlen = len(text) - 1 +# new_text = '' +# for i in range(tlen, -1, -1): +# new_text = new_text+text[i] +# print(new_text) -#Question # 9 -string = "hello" -print(string[::-1]) \ No newline at end of file +# #Question # 9 + +# text = input('Please Enter Word') +# revers_word = text[::-1] +# if text == revers_word: +# print("word is a palindrome") +# else: +# print("word is Not a palindrome") + + +# #Question # 10 +# weight = int(input('Please Enter Weight')) +# height = int(input('Please Enter Height in cm')) +# # convert cm to meters +# meter = height/100 +# BMI = round(weight/(meter**2)) +# if(BMI < 25): +# print("You are Week!") +# elif(BMI >= 25 and BMI <= 30): +# print("You are Normal!") +# elif(BMI > 30 and BMI <= 40): +# print("You are over weight!") +# else: +# print("You are obese weight!") + + +#Question # 11 +# number1 = int(input('Please Enter first number')) +# number2 = int(input('Please Enter 2nd number')) +# number3 = int(input('Please Enter 3rd number')) +# if number1 > number2 and number1 > number3: +# print("number1 is Largest ") +# elif number2 > number1 and number2 > number3: +# print("number2 is Largest ") +# else: +# print("Number2 is Largest") + +#Question no 12 + +for i in range(1,5): + seconde_term = float(input(f"Enter midterm grade Subject {i}:")) + final_term = float(input(f"Enter final term grade {i}:")) + average_marks_subject = (seconde_term * 0.4) + (final_term * 0.6) + if average_marks_subject >= 50: + final_result = "SUCCESSFUL" + else: + final_result = "FAILED" + print(f"Averege Marks{average_marks_subject:.2f} Result {final_result}") \ No newline at end of file From 733cfd3ad6da05ab41eac628f293c9a1c1f1e5f4 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:30:10 +0200 Subject: [PATCH 08/22] branch rename and question 1 Done --- zahid_team_leader_week1.py | 123 --------------------------- zahid_team_leader_week1_question1.py | 4 + 2 files changed, 4 insertions(+), 123 deletions(-) delete mode 100644 zahid_team_leader_week1.py create mode 100644 zahid_team_leader_week1_question1.py diff --git a/zahid_team_leader_week1.py b/zahid_team_leader_week1.py deleted file mode 100644 index f090c39..0000000 --- a/zahid_team_leader_week1.py +++ /dev/null @@ -1,123 +0,0 @@ -#Question #1 -# i=0 -# for i in range(1,13): -# print(i) - -#Quesion #2 -# user_input = input('Please Enter Number') -#i = 1 -# for i in range(i,int(user_input)): -# if i%2 == 0: -# print(i) -# while i <= int(user_input): -# i += 1 -# if i%2 == 0: -# print(i) - -#Question #3 -# value1 = int(input('Please Enter First Number')) -# value2 = int(input('Please Enter 2nd Number')) -# if value1 > value2: -# print("Error! Please Enter Valid first Value should less the 2nd value") -# else: -# while value1 < value2: -# value1 += 1 -# print(value1) - -# Question #4 -# value1 = int(input('Please Enter Number')) -# if value1 % 2 == 0: -# print('Even Number') -# else: -# print("Odd Number") - -#Question #5 - -# number = int(input('Please Enter Number')) -# factorial = 1 -# for i in range(2, number + 1): -# factorial *= i -# print(factorial) - - -# Question # 6 -# value1=int(input('enter the number')) -# for i in range(2, int(value1**0.5) + 1): -# if value1 % i == 0: -# print(str(value1)+" Not a Prime number ") -# break -# print(str(value1)+" Not a Prime number ") Need To bit discuss - - -#Question # 7 -# number = int(input('Please Enter Number')) -# i=0 -# numer_calc = 0 -# add_number = 1 -# while i < number: -# final_number = numer_calc + add_number -# print(numer_calc) -# numer_calc = add_number -# add_number = final_number -# i += 1 - - - -#Question no 8 - -# text = input('Please Enter Word') -# tlen = len(text) - 1 -# new_text = '' -# for i in range(tlen, -1, -1): -# new_text = new_text+text[i] -# print(new_text) - - -# #Question # 9 - -# text = input('Please Enter Word') -# revers_word = text[::-1] -# if text == revers_word: -# print("word is a palindrome") -# else: -# print("word is Not a palindrome") - - -# #Question # 10 -# weight = int(input('Please Enter Weight')) -# height = int(input('Please Enter Height in cm')) -# # convert cm to meters -# meter = height/100 -# BMI = round(weight/(meter**2)) -# if(BMI < 25): -# print("You are Week!") -# elif(BMI >= 25 and BMI <= 30): -# print("You are Normal!") -# elif(BMI > 30 and BMI <= 40): -# print("You are over weight!") -# else: -# print("You are obese weight!") - - -#Question # 11 -# number1 = int(input('Please Enter first number')) -# number2 = int(input('Please Enter 2nd number')) -# number3 = int(input('Please Enter 3rd number')) -# if number1 > number2 and number1 > number3: -# print("number1 is Largest ") -# elif number2 > number1 and number2 > number3: -# print("number2 is Largest ") -# else: -# print("Number2 is Largest") - -#Question no 12 - -for i in range(1,5): - seconde_term = float(input(f"Enter midterm grade Subject {i}:")) - final_term = float(input(f"Enter final term grade {i}:")) - average_marks_subject = (seconde_term * 0.4) + (final_term * 0.6) - if average_marks_subject >= 50: - final_result = "SUCCESSFUL" - else: - final_result = "FAILED" - print(f"Averege Marks{average_marks_subject:.2f} Result {final_result}") \ No newline at end of file diff --git a/zahid_team_leader_week1_question1.py b/zahid_team_leader_week1_question1.py new file mode 100644 index 0000000..79ebf74 --- /dev/null +++ b/zahid_team_leader_week1_question1.py @@ -0,0 +1,4 @@ +#Question #1 +i=0 +for i in range(1,13): + print(i) \ No newline at end of file From d59cbfb952b10143f8336c686d865142efc9acbb Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:37:43 +0200 Subject: [PATCH 09/22] Zahid team leader question2 --- zahid_team_leader_week1_question2.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 zahid_team_leader_week1_question2.py diff --git a/zahid_team_leader_week1_question2.py b/zahid_team_leader_week1_question2.py new file mode 100644 index 0000000..8522d7e --- /dev/null +++ b/zahid_team_leader_week1_question2.py @@ -0,0 +1,10 @@ +#Quesion #2 +user_input = input('Please Enter Number') +i = 1 +for i in range(i,int(user_input)): + if i%2 == 0: + print(i) +while i <= int(user_input): + i += 1 + if i%2 == 0: + print(i) From f03a2702ff6abcf7c43f949162bcbb89d35a7ba4 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:41:38 +0200 Subject: [PATCH 10/22] Zahid team leader question3 --- zahid_team_leader_week1_question3.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 zahid_team_leader_week1_question3.py diff --git a/zahid_team_leader_week1_question3.py b/zahid_team_leader_week1_question3.py new file mode 100644 index 0000000..b01b193 --- /dev/null +++ b/zahid_team_leader_week1_question3.py @@ -0,0 +1,9 @@ +#Question #3 +value1 = int(input('Please Enter First Number')) +value2 = int(input('Please Enter 2nd Number')) +if value1 > value2: + print("Error! Please Enter Valid first Value should less the 2nd value") +else: + while value1 < value2: + value1 += 1 + print(value1) \ No newline at end of file From 5482d59155375607bc4c0da373fe5f30bcfc8cd2 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:44:46 +0200 Subject: [PATCH 11/22] Zahid team leader question4 --- zahid_team_leader_week1_question4.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 zahid_team_leader_week1_question4.py diff --git a/zahid_team_leader_week1_question4.py b/zahid_team_leader_week1_question4.py new file mode 100644 index 0000000..e241d40 --- /dev/null +++ b/zahid_team_leader_week1_question4.py @@ -0,0 +1,6 @@ +# Question #4 +value1 = int(input('Please Enter Number')) +if value1 % 2 == 0: + print('Even Number') +else: + print("Odd Number") \ No newline at end of file From 5218967ebe5d324d1ea26afc71658d6a48c3ef0c Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:47:43 +0200 Subject: [PATCH 12/22] Zahid team leader question6 --- zahid_team_leader_week1_question5.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 zahid_team_leader_week1_question5.py diff --git a/zahid_team_leader_week1_question5.py b/zahid_team_leader_week1_question5.py new file mode 100644 index 0000000..d24c73c --- /dev/null +++ b/zahid_team_leader_week1_question5.py @@ -0,0 +1,7 @@ +#Question #5 + +number = int(input('Please Enter Number')) +factorial = 1 +for i in range(2, number + 1): + factorial *= i +print(factorial) From a81bc022574a60102931b3b7e90dc291daa51bf6 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:51:33 +0200 Subject: [PATCH 13/22] Zahid team leader question6 --- zahid_team_leader_week1_question6.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 zahid_team_leader_week1_question6.py diff --git a/zahid_team_leader_week1_question6.py b/zahid_team_leader_week1_question6.py new file mode 100644 index 0000000..75fa57e --- /dev/null +++ b/zahid_team_leader_week1_question6.py @@ -0,0 +1,8 @@ +# Question # 6 +value1=int(input('enter the number')) +for i in range(2, int(value1**0.5) + 1): + if value1 % i == 0: + print(str(value1)+" Not a Prime number ") + break +print(str(value1)+" Not a Prime number ") +# Need To bit discuss From ec22d634f8cacbec0ea3003e0c4f03c3159bebbd Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:54:29 +0200 Subject: [PATCH 14/22] Zahid team leader question7 --- zahid_team_leader_week1_question7.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 zahid_team_leader_week1_question7.py diff --git a/zahid_team_leader_week1_question7.py b/zahid_team_leader_week1_question7.py new file mode 100644 index 0000000..88bbefc --- /dev/null +++ b/zahid_team_leader_week1_question7.py @@ -0,0 +1,11 @@ +#Question # 7 +number = int(input('Please Enter Number')) +i=0 +numer_calc = 0 +add_number = 1 +while i < number: + final_number = numer_calc + add_number + print(numer_calc) + numer_calc = add_number + add_number = final_number + i += 1 \ No newline at end of file From b019eeaae196e6ccbed8e3363aefed3a9643e56b Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:56:54 +0200 Subject: [PATCH 15/22] Zahid team leader question8 --- zahid_team_leader_week1_question8.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 zahid_team_leader_week1_question8.py diff --git a/zahid_team_leader_week1_question8.py b/zahid_team_leader_week1_question8.py new file mode 100644 index 0000000..68db842 --- /dev/null +++ b/zahid_team_leader_week1_question8.py @@ -0,0 +1,8 @@ +#Question no 8 + +text = input('Please Enter Word') +tlen = len(text) - 1 +new_text = '' +for i in range(tlen, -1, -1): + new_text = new_text+text[i] +print(new_text) \ No newline at end of file From 440f429ca82fdec55c82c79c7e5a864c5239d388 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 21:59:07 +0200 Subject: [PATCH 16/22] Zahid team leader question9 --- zahid_team_leader_week1_question9.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 zahid_team_leader_week1_question9.py diff --git a/zahid_team_leader_week1_question9.py b/zahid_team_leader_week1_question9.py new file mode 100644 index 0000000..ac05275 --- /dev/null +++ b/zahid_team_leader_week1_question9.py @@ -0,0 +1,8 @@ +#Question no 9 + +text = input('Please Enter Word') +revers_word = text[::-1] +if text == revers_word: + print("word is a palindrome") +else: + print("word is Not a palindrome") \ No newline at end of file From e4dfc50d59cd089f47220b66767cbbc1ad67c377 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 22:03:01 +0200 Subject: [PATCH 17/22] Zahid team leader question10 --- zahid_team_leader_week1_question10.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 zahid_team_leader_week1_question10.py diff --git a/zahid_team_leader_week1_question10.py b/zahid_team_leader_week1_question10.py new file mode 100644 index 0000000..bae72cf --- /dev/null +++ b/zahid_team_leader_week1_question10.py @@ -0,0 +1,15 @@ +#Question no 10 + +weight = int(input('Please Enter Weight')) +height = int(input('Please Enter Height in cm')) +# convert cm to meters +meter = height/100 +BMI = round(weight/(meter**2)) +if(BMI < 25): + print("You are Week!") +elif(BMI >= 25 and BMI <= 30): + print("You are Normal!") +elif(BMI > 30 and BMI <= 40): + print("You are over weight!") +else: + print("You are obese weight!") From 0b465d3ab616360efbaa8b9827c54f005b2a5714 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 22:05:50 +0200 Subject: [PATCH 18/22] Zahid team leader question11 --- zahid_team_leader_week1_question11.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 zahid_team_leader_week1_question11.py diff --git a/zahid_team_leader_week1_question11.py b/zahid_team_leader_week1_question11.py new file mode 100644 index 0000000..97cda79 --- /dev/null +++ b/zahid_team_leader_week1_question11.py @@ -0,0 +1,11 @@ +#Question no 11 + +number1 = int(input('Please Enter first number')) +number2 = int(input('Please Enter 2nd number')) +number3 = int(input('Please Enter 3rd number')) +if number1 > number2 and number1 > number3: + print("number1 is Largest ") +elif number2 > number1 and number2 > number3: + print("number2 is Largest ") +else: + print("Number2 is Largest") From 39020c73262259aab02353310a60fd2e68560614 Mon Sep 17 00:00:00 2001 From: zahidulsilam Date: Fri, 11 Apr 2025 22:08:09 +0200 Subject: [PATCH 19/22] Zahid team leader question12 --- zahid_team_leader_week1_question12.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 zahid_team_leader_week1_question12.py diff --git a/zahid_team_leader_week1_question12.py b/zahid_team_leader_week1_question12.py new file mode 100644 index 0000000..ace3554 --- /dev/null +++ b/zahid_team_leader_week1_question12.py @@ -0,0 +1,11 @@ +#Question no 12 + +for i in range(1,5): + seconde_term = float(input(f"Enter midterm grade Subject {i}:")) + final_term = float(input(f"Enter final term grade {i}:")) + average_marks_subject = (seconde_term * 0.4) + (final_term * 0.6) + if average_marks_subject >= 50: + final_result = "SUCCESSFUL" + else: + final_result = "FAILED" + print(f"Averege Marks{average_marks_subject:.2f} Result {final_result}") From 25a7c4fac3b581699581c65247f198d6d8d7edda Mon Sep 17 00:00:00 2001 From: Mohammed-1-IT Date: Wed, 16 Apr 2025 20:14:21 +0200 Subject: [PATCH 20/22] Created using Colab --- Welcome_to_Colab.ipynb | 460 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 460 insertions(+) create mode 100644 Welcome_to_Colab.ipynb diff --git a/Welcome_to_Colab.ipynb b/Welcome_to_Colab.ipynb new file mode 100644 index 0000000..3dd7d3d --- /dev/null +++ b/Welcome_to_Colab.ipynb @@ -0,0 +1,460 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Wf5KrEb6vrkR" + }, + "source": [ + "# Welcome to Colab!\n", + "\n", + "## Explore the Gemini API\n", + "The Gemini API gives you access to Gemini models created by Google DeepMind. Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, code and audio.\n", + "\n", + "**How to get started**\n", + "* Go to Google AI Studio and log in with your Google Account.\n", + "* Create an API key.\n", + "* Use a quickstart for Python or call the REST API using curl.\n", + "\n", + "**Discover Gemini's advanced capabilities**\n", + "* Play with Gemini multimodal outputs, mixing text and images in an iterative way.\n", + "* Discover the multimodal Live API (demo here).\n", + "* Learn how to analyse images and detect items in your pictures using Gemini (bonus, there's a 3D version as well!).\n", + "* Unlock the power of the Gemini thinking model, capable of solving complex tasks with its inner thoughts.\n", + " \n", + "**Explore complex use cases**\n", + "* Use Gemini grounding capabilities to create a report on a company based on what the model can find on the Internet.\n", + "* Extract invoices and form data from PDFs in a structured way.\n", + "* Create illustrations based on a whole book using Gemini large context window and Imagen.\n", + "\n", + "To learn more, take a look at the Gemini cookbook or visit the Gemini API documentation.\n" + ] + }, + { + "cell_type": "code", + "source": [ + "#The list:\n", + "students=[{'name':'Ahmet','sname':'yilmaz','mid':85,'final':90,'oral':75,'GPA':0},\n", + " {'name':'Mehmit','sname':'Dimer','mid':92,'final':88,'oral':76,'GPA':0},\n", + " {'name':'Ayse','sname':'Kaya','mid':78,'final':89,'oral':95,'GPA':0},\n", + " {'name':'Zynep','sname':'Celik','mid':65,'final':70,'oral':80,'GPA':0},\n", + " {'name':'Ali','sname':'Kara','mid':50,'final':60,'oral':55,'GPA':0},\n", + " {'name':'Fatma','sname':'Yildiz','mid':88,'final':85,'oral':90,'GPA':0},\n", + " {'name':'Murat','sname':'Aydin','mid':72,'final':68,'oral':74,'GPA':0},\n", + " {'name':'Elif','sname':'Aksoy','mid':95,'final':90,'oral':88,'GPA':0},\n", + " {'name':'Hakan','sname':'Ozturk','mid':45,'final':50,'oral':55,'GPA':0},\n", + " {'name':'Canan','sname':'Tas','mid':80,'final':75,'oral':82,'GPA':0}]\n", + "#The answers:\n", + "#The first requirement(Calculate each student's GPA and add it to the dictionary):\n", + "for i in range(len(students)):\n", + " GPA=(students[i]['mid']+students[i]['final']+students[i]['oral'])/3\n", + " students[i]['GPA']=GPA\n", + " print(students[i])\n", + "##The second requirement(Find the student with the highest GPA and print it on the screen):\n", + "maxGPA=max(students,key=lambda x:x['GPA'])\n", + "print(maxGPA)\n", + "print(maxGPA['name'],maxGPA['sname'],maxGPA['GPA'],maxGPA['mid'],maxGPA['final'],maxGPA['oral'])\n", + "student_data = []\n", + "for student in students:\n", + " student_data.append((student['name'], student['sname']))\n", + "\n", + "student_data\n", + "#The Third and fourth requirements(Sort students by name and surname alphabetically)and(Separate each student's name from their surname and store them in a separate tuple and add them to a list):\n", + "sorted_students = sorted(students, key=lambda student: (student['name'], student['sname']))\n", + "\n", + "#The fifth requirement(Keep students with a GPA below 70 in a cluster):\n", + "for student in sorted_students:\n", + " print(f\"{student['name']},{student['sname']}\")\n", + "low_gpa_students = set()\n", + "for student in students:\n", + " if student['GPA'] < 70:\n", + " low_gpa_students.add(student['name'])\n", + "low_gpa_students\n" + ], + "metadata": { + "id": "xGIn4MjYnoj4", + "outputId": "390ae73e-0b25-4de4-9987-801ba18714f0", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "{'name': 'Ahmet', 'sname': 'yilmaz', 'mid': 85, 'final': 90, 'oral': 75, 'GPA': 83.33333333333333}\n", + "{'name': 'Mehmit', 'sname': 'Dimer', 'mid': 92, 'final': 88, 'oral': 76, 'GPA': 85.33333333333333}\n", + "{'name': 'Ayse', 'sname': 'Kaya', 'mid': 78, 'final': 89, 'oral': 95, 'GPA': 87.33333333333333}\n", + "{'name': 'Zynep', 'sname': 'Celik', 'mid': 65, 'final': 70, 'oral': 80, 'GPA': 71.66666666666667}\n", + "{'name': 'Ali', 'sname': 'Kara', 'mid': 50, 'final': 60, 'oral': 55, 'GPA': 55.0}\n", + "{'name': 'Fatma', 'sname': 'Yildiz', 'mid': 88, 'final': 85, 'oral': 90, 'GPA': 87.66666666666667}\n", + "{'name': 'Murat', 'sname': 'Aydin', 'mid': 72, 'final': 68, 'oral': 74, 'GPA': 71.33333333333333}\n", + "{'name': 'Elif', 'sname': 'Aksoy', 'mid': 95, 'final': 90, 'oral': 88, 'GPA': 91.0}\n", + "{'name': 'Hakan', 'sname': 'Ozturk', 'mid': 45, 'final': 50, 'oral': 55, 'GPA': 50.0}\n", + "{'name': 'Canan', 'sname': 'Tas', 'mid': 80, 'final': 75, 'oral': 82, 'GPA': 79.0}\n", + "{'name': 'Elif', 'sname': 'Aksoy', 'mid': 95, 'final': 90, 'oral': 88, 'GPA': 91.0}\n", + "Elif Aksoy 91.0 95 90 88\n", + "Ahmet,yilmaz\n", + "Ali,Kara\n", + "Ayse,Kaya\n", + "Canan,Tas\n", + "Elif,Aksoy\n", + "Fatma,Yildiz\n", + "Hakan,Ozturk\n", + "Mehmit,Dimer\n", + "Murat,Aydin\n", + "Zynep,Celik\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "{'Ali', 'Hakan'}" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Nma_JWh-W-IF" + }, + "source": [ + "Colab now has AI features powered by Gemini. The video below provides information on how to use these features, whether you're new to Python or a seasoned veteran.\n", + "\n", + "
\n", + " \n", + " Thumbnail for a video showing three AI-powered Google Colab features\n", + " \n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "5fCEDCU_qrC0" + }, + "source": [ + "
\n", + "

What is Colab?

\n", + "
\n", + "\n", + "Colab, or ‘Colaboratory’, allows you to write and execute Python in your browser, with\n", + "- Zero configuration required\n", + "- Access to GPUs free of charge\n", + "- Easy sharing\n", + "\n", + "Whether you're a student, a data scientist or an AI researcher, Colab can make your work easier. Watch Introduction to Colab or Colab features you may have missed to learn more or just get started below!" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GJBs_flRovLc" + }, + "source": [ + "
\n", + "\n", + "## Getting started\n", + "
\n", + "\n", + "The document that you are reading is not a static web page, but an interactive environment called a Colab notebook that lets you write and execute code.\n", + "\n", + "For example, here is a code cell with a short Python script that computes a value, stores it in a variable and prints the result:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "gJr_9dXGpJ05", + "outputId": "beb4aaca-6eac-4b30-f2ff-ea4308968122" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "86400" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "seconds_in_a_day = 24 * 60 * 60\n", + "seconds_in_a_day" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2fhs6GZ4qFMx" + }, + "source": [ + "To execute the code in the above cell, select it with a click and then either press the play button to the left of the code, or use the keyboard shortcut 'Command/Ctrl+Enter'. To edit the code, just click the cell and start editing.\n", + "\n", + "Variables that you define in one cell can later be used in other cells:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "-gE-Ez1qtyIA", + "outputId": "e8f0c2b1-3c1e-4476-f8c2-d8f31cdb5e75" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "604800" + ] + }, + "execution_count": null, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "seconds_in_a_week = 7 * seconds_in_a_day\n", + "seconds_in_a_week" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "lSrWNr3MuFUS" + }, + "source": [ + "Colab notebooks allow you to combine executable code and rich text in a single document, along with images, HTML, LaTeX and more. When you create your own Colab notebooks, they are stored in your Google Drive account. You can easily share your Colab notebooks with co-workers or friends, allowing them to comment on your notebooks or even edit them. To find out more, see Overview of Colab. To create a new Colab notebook you can use the File menu above, or use the following link: Create a new Colab notebook.\n", + "\n", + "Colab notebooks are Jupyter notebooks that are hosted by Colab. To find out more about the Jupyter project, see jupyter.org." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UdRyKR44dcNI" + }, + "source": [ + "
\n", + "\n", + "## Data science\n", + "
\n", + "\n", + "With Colab you can harness the full power of popular Python libraries to analyse and visualise data. The code cell below uses numpy to generate some random data, and uses matplotlib to visualise it. To edit the code, just click the cell and start editing." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4_kCnsPUqS6o" + }, + "source": [ + "You can import your own data into Colab notebooks from your Google Drive account, including from spreadsheets, as well as from GitHub and many other sources. To find out more about importing data, and how Colab can be used for data science, see the links below under Working with data." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "height": 249 + }, + "id": "C4HZx7Gndbrh", + "outputId": "65838ba2-0ea9-41b7-e3f9-a725be449d3b" + }, + "outputs": [ + { + "data": { + "text/markdown": [ + "![Sample Visualization](data:image/png;base64,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)" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import numpy as np\n", + "import IPython.display as display\n", + "from matplotlib import pyplot as plt\n", + "import io\n", + "import base64\n", + "\n", + "ys = 200 + np.random.randn(100)\n", + "x = [x for x in range(len(ys))]\n", + "\n", + "fig = plt.figure(figsize=(4, 3), facecolor='w')\n", + "plt.plot(x, ys, '-')\n", + "plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)\n", + "plt.title(\"Sample Visualization\", fontsize=10)\n", + "\n", + "data = io.BytesIO()\n", + "plt.savefig(data)\n", + "image = F\"data:image/png;base64,{base64.b64encode(data.getvalue()).decode()}\"\n", + "alt = \"Sample Visualization\"\n", + "display.display(display.Markdown(F\"\"\"![{alt}]({image})\"\"\"))\n", + "plt.close(fig)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VYV91hbKwP2J" + }, + "source": [ + "Colab notebooks execute code on Google's cloud servers, meaning that you can leverage the power of Google hardware, including GPUs and TPUs, regardless of the power of your machine. All you need is a browser.\n", + "\n", + "For example, if you find yourself waiting for pandas code to finish running and want to go faster, you can switch to a GPU runtime and use libraries like RAPIDS cuDF that provide zero-code-change acceleration." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "vwnNlNIEwoZ8" + }, + "source": [ + "To learn more about accelerating pandas on Colab, see the 10-minute guide or\n", + " US stock market data analysis demo." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OwuxHmxllTwN" + }, + "source": [ + "
\n", + "\n", + "## Machine learning\n", + "
\n", + "\n", + "With Colab you can import an image dataset, train an image classifier on it and evaluate the model, all in just a few lines of code." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ufxBm1yRnruN" + }, + "source": [ + "Colab is used extensively in the machine learning community with applications including:\n", + "- Getting started with TensorFlow\n", + "- Developing and training neural networks\n", + "- Experimenting with TPUs\n", + "- Disseminating AI research\n", + "- Creating tutorials\n", + "\n", + "To see sample Colab notebooks that demonstrate machine learning applications, see the machine learning examples below." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-Rh3-Vt9Nev9" + }, + "source": [ + "
\n", + "\n", + "## More resources\n", + "\n", + "### Working with notebooks in Colab\n", + "\n", + "
\n", + "\n", + "- [Overview of Colab](/notebooks/basic_features_overview.ipynb)\n", + "- [Guide to markdown](/notebooks/markdown_guide.ipynb)\n", + "- [Importing libraries and installing dependencies](/notebooks/snippets/importing_libraries.ipynb)\n", + "- [Saving and loading notebooks in GitHub](https://colab.research.google.com/github/googlecolab/colabtools/blob/main/notebooks/colab-github-demo.ipynb)\n", + "- [Interactive forms](/notebooks/forms.ipynb)\n", + "- [Interactive widgets](/notebooks/widgets.ipynb)\n", + "\n", + "
\n", + "\n", + "\n", + "### Working with data\n", + "
\n", + "\n", + "- [Loading data: Drive, Sheets and Google Cloud Storage](/notebooks/io.ipynb)\n", + "- [Charts: visualising data](/notebooks/charts.ipynb)\n", + "- [Getting started with BigQuery](/notebooks/bigquery.ipynb)\n", + "\n", + "
\n", + "\n", + "### Machine learning crash course\n", + "\n", + "
\n", + "\n", + "These are a few of the notebooks from Google's online machine learning course. See the full course website for more.\n", + "- [Intro to Pandas DataFrame](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/pandas_dataframe_ultraquick_tutorial.ipynb)\n", + "- [Intro to RAPIDS cuDF to accelerate pandas](https://nvda.ws/rapids-cudf)\n", + "- [Linear regression with tf.keras using synthetic data](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/linear_regression_with_synthetic_data.ipynb)\n", + "\n", + "
\n", + "\n", + "\n", + "### Using accelerated hardware\n", + "
\n", + "\n", + "- [TensorFlow with GPUs](/notebooks/gpu.ipynb)\n", + "- [TPUs in Colab](/notebooks/tpu.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "P-H6Lw1vyNNd" + }, + "source": [ + "
\n", + "\n", + "\n", + "\n", + "### Featured examples\n", + "\n", + "
\n", + "\n", + "- Retraining an Image Classifier: Build a Keras model on top of a pre-trained image classifier to distinguish flowers.\n", + "- Text Classification: Classify IMDB film reviews as either positive or negative.\n", + "- Style Transfer: Use deep learning to transfer style between images.\n", + "- Multilingual Universal Sentence Encoder Q&A: Use a machine-learning model to answer questions from the SQuAD dataset.\n", + "- Video Interpolation: Predict what happened in a video between the first and the last frame.\n" + ] + } + ], + "metadata": { + "colab": { + "name": "Welcome to Colab", + "provenance": [], + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file From b8a0feffb1cda22aea85128384a6f14df407b300 Mon Sep 17 00:00:00 2001 From: Mohammed-1-IT Date: Wed, 16 Apr 2025 20:16:53 +0200 Subject: [PATCH 21/22] Update Welcome_to_Colab(M).ipynb --- Welcome_to_Colab.ipynb | 497 +++-------------------------------------- 1 file changed, 37 insertions(+), 460 deletions(-) diff --git a/Welcome_to_Colab.ipynb b/Welcome_to_Colab.ipynb index 3dd7d3d..a39f54a 100644 --- a/Welcome_to_Colab.ipynb +++ b/Welcome_to_Colab.ipynb @@ -1,460 +1,37 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "view-in-github", - "colab_type": "text" - }, - "source": [ - "\"Open" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Wf5KrEb6vrkR" - }, - "source": [ - "# Welcome to Colab!\n", - "\n", - "## Explore the Gemini API\n", - "The Gemini API gives you access to Gemini models created by Google DeepMind. Gemini models are built from the ground up to be multimodal, so you can reason seamlessly across text, images, code and audio.\n", - "\n", - "**How to get started**\n", - "* Go to Google AI Studio and log in with your Google Account.\n", - "* Create an API key.\n", - "* Use a quickstart for Python or call the REST API using curl.\n", - "\n", - "**Discover Gemini's advanced capabilities**\n", - "* Play with Gemini multimodal outputs, mixing text and images in an iterative way.\n", - "* Discover the multimodal Live API (demo here).\n", - "* Learn how to analyse images and detect items in your pictures using Gemini (bonus, there's a 3D version as well!).\n", - "* Unlock the power of the Gemini thinking model, capable of solving complex tasks with its inner thoughts.\n", - " \n", - "**Explore complex use cases**\n", - "* Use Gemini grounding capabilities to create a report on a company based on what the model can find on the Internet.\n", - "* Extract invoices and form data from PDFs in a structured way.\n", - "* Create illustrations based on a whole book using Gemini large context window and Imagen.\n", - "\n", - "To learn more, take a look at the Gemini cookbook or visit the Gemini API documentation.\n" - ] - }, - { - "cell_type": "code", - "source": [ - "#The list:\n", - "students=[{'name':'Ahmet','sname':'yilmaz','mid':85,'final':90,'oral':75,'GPA':0},\n", - " {'name':'Mehmit','sname':'Dimer','mid':92,'final':88,'oral':76,'GPA':0},\n", - " {'name':'Ayse','sname':'Kaya','mid':78,'final':89,'oral':95,'GPA':0},\n", - " {'name':'Zynep','sname':'Celik','mid':65,'final':70,'oral':80,'GPA':0},\n", - " {'name':'Ali','sname':'Kara','mid':50,'final':60,'oral':55,'GPA':0},\n", - " {'name':'Fatma','sname':'Yildiz','mid':88,'final':85,'oral':90,'GPA':0},\n", - " {'name':'Murat','sname':'Aydin','mid':72,'final':68,'oral':74,'GPA':0},\n", - " {'name':'Elif','sname':'Aksoy','mid':95,'final':90,'oral':88,'GPA':0},\n", - " {'name':'Hakan','sname':'Ozturk','mid':45,'final':50,'oral':55,'GPA':0},\n", - " {'name':'Canan','sname':'Tas','mid':80,'final':75,'oral':82,'GPA':0}]\n", - "#The answers:\n", - "#The first requirement(Calculate each student's GPA and add it to the dictionary):\n", - "for i in range(len(students)):\n", - " GPA=(students[i]['mid']+students[i]['final']+students[i]['oral'])/3\n", - " students[i]['GPA']=GPA\n", - " print(students[i])\n", - "##The second requirement(Find the student with the highest GPA and print it on the screen):\n", - "maxGPA=max(students,key=lambda x:x['GPA'])\n", - "print(maxGPA)\n", - "print(maxGPA['name'],maxGPA['sname'],maxGPA['GPA'],maxGPA['mid'],maxGPA['final'],maxGPA['oral'])\n", - "student_data = []\n", - "for student in students:\n", - " student_data.append((student['name'], student['sname']))\n", - "\n", - "student_data\n", - "#The Third and fourth requirements(Sort students by name and surname alphabetically)and(Separate each student's name from their surname and store them in a separate tuple and add them to a list):\n", - "sorted_students = sorted(students, key=lambda student: (student['name'], student['sname']))\n", - "\n", - "#The fifth requirement(Keep students with a GPA below 70 in a cluster):\n", - "for student in sorted_students:\n", - " print(f\"{student['name']},{student['sname']}\")\n", - "low_gpa_students = set()\n", - "for student in students:\n", - " if student['GPA'] < 70:\n", - " low_gpa_students.add(student['name'])\n", - "low_gpa_students\n" - ], - "metadata": { - "id": "xGIn4MjYnoj4", - "outputId": "390ae73e-0b25-4de4-9987-801ba18714f0", - "colab": { - "base_uri": "https://localhost:8080/" - } - }, - "execution_count": 8, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "{'name': 'Ahmet', 'sname': 'yilmaz', 'mid': 85, 'final': 90, 'oral': 75, 'GPA': 83.33333333333333}\n", - "{'name': 'Mehmit', 'sname': 'Dimer', 'mid': 92, 'final': 88, 'oral': 76, 'GPA': 85.33333333333333}\n", - "{'name': 'Ayse', 'sname': 'Kaya', 'mid': 78, 'final': 89, 'oral': 95, 'GPA': 87.33333333333333}\n", - "{'name': 'Zynep', 'sname': 'Celik', 'mid': 65, 'final': 70, 'oral': 80, 'GPA': 71.66666666666667}\n", - "{'name': 'Ali', 'sname': 'Kara', 'mid': 50, 'final': 60, 'oral': 55, 'GPA': 55.0}\n", - "{'name': 'Fatma', 'sname': 'Yildiz', 'mid': 88, 'final': 85, 'oral': 90, 'GPA': 87.66666666666667}\n", - "{'name': 'Murat', 'sname': 'Aydin', 'mid': 72, 'final': 68, 'oral': 74, 'GPA': 71.33333333333333}\n", - "{'name': 'Elif', 'sname': 'Aksoy', 'mid': 95, 'final': 90, 'oral': 88, 'GPA': 91.0}\n", - "{'name': 'Hakan', 'sname': 'Ozturk', 'mid': 45, 'final': 50, 'oral': 55, 'GPA': 50.0}\n", - "{'name': 'Canan', 'sname': 'Tas', 'mid': 80, 'final': 75, 'oral': 82, 'GPA': 79.0}\n", - "{'name': 'Elif', 'sname': 'Aksoy', 'mid': 95, 'final': 90, 'oral': 88, 'GPA': 91.0}\n", - "Elif Aksoy 91.0 95 90 88\n", - "Ahmet,yilmaz\n", - "Ali,Kara\n", - "Ayse,Kaya\n", - "Canan,Tas\n", - "Elif,Aksoy\n", - "Fatma,Yildiz\n", - "Hakan,Ozturk\n", - "Mehmit,Dimer\n", - "Murat,Aydin\n", - "Zynep,Celik\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "{'Ali', 'Hakan'}" - ] - }, - "metadata": {}, - "execution_count": 8 - } - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Nma_JWh-W-IF" - }, - "source": [ - "Colab now has AI features powered by Gemini. The video below provides information on how to use these features, whether you're new to Python or a seasoned veteran.\n", - "\n", - "
\n", - " \n", - " Thumbnail for a video showing three AI-powered Google Colab features\n", - " \n", - "
" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5fCEDCU_qrC0" - }, - "source": [ - "
\n", - "

What is Colab?

\n", - "
\n", - "\n", - "Colab, or ‘Colaboratory’, allows you to write and execute Python in your browser, with\n", - "- Zero configuration required\n", - "- Access to GPUs free of charge\n", - "- Easy sharing\n", - "\n", - "Whether you're a student, a data scientist or an AI researcher, Colab can make your work easier. Watch Introduction to Colab or Colab features you may have missed to learn more or just get started below!" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "GJBs_flRovLc" - }, - "source": [ - "
\n", - "\n", - "## Getting started\n", - "
\n", - "\n", - "The document that you are reading is not a static web page, but an interactive environment called a Colab notebook that lets you write and execute code.\n", - "\n", - "For example, here is a code cell with a short Python script that computes a value, stores it in a variable and prints the result:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "gJr_9dXGpJ05", - "outputId": "beb4aaca-6eac-4b30-f2ff-ea4308968122" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "86400" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "seconds_in_a_day = 24 * 60 * 60\n", - "seconds_in_a_day" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "2fhs6GZ4qFMx" - }, - "source": [ - "To execute the code in the above cell, select it with a click and then either press the play button to the left of the code, or use the keyboard shortcut 'Command/Ctrl+Enter'. To edit the code, just click the cell and start editing.\n", - "\n", - "Variables that you define in one cell can later be used in other cells:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "-gE-Ez1qtyIA", - "outputId": "e8f0c2b1-3c1e-4476-f8c2-d8f31cdb5e75" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "604800" - ] - }, - "execution_count": null, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "seconds_in_a_week = 7 * seconds_in_a_day\n", - "seconds_in_a_week" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "lSrWNr3MuFUS" - }, - "source": [ - "Colab notebooks allow you to combine executable code and rich text in a single document, along with images, HTML, LaTeX and more. When you create your own Colab notebooks, they are stored in your Google Drive account. You can easily share your Colab notebooks with co-workers or friends, allowing them to comment on your notebooks or even edit them. To find out more, see Overview of Colab. To create a new Colab notebook you can use the File menu above, or use the following link: Create a new Colab notebook.\n", - "\n", - "Colab notebooks are Jupyter notebooks that are hosted by Colab. To find out more about the Jupyter project, see jupyter.org." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "UdRyKR44dcNI" - }, - "source": [ - "
\n", - "\n", - "## Data science\n", - "
\n", - "\n", - "With Colab you can harness the full power of popular Python libraries to analyse and visualise data. The code cell below uses numpy to generate some random data, and uses matplotlib to visualise it. To edit the code, just click the cell and start editing." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "4_kCnsPUqS6o" - }, - "source": [ - "You can import your own data into Colab notebooks from your Google Drive account, including from spreadsheets, as well as from GitHub and many other sources. To find out more about importing data, and how Colab can be used for data science, see the links below under Working with data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": { - "height": 249 - }, - "id": "C4HZx7Gndbrh", - "outputId": "65838ba2-0ea9-41b7-e3f9-a725be449d3b" - }, - "outputs": [ - { - "data": { - "text/markdown": [ - "![Sample Visualization](data:image/png;base64,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)" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import IPython.display as display\n", - "from matplotlib import pyplot as plt\n", - "import io\n", - "import base64\n", - "\n", - "ys = 200 + np.random.randn(100)\n", - "x = [x for x in range(len(ys))]\n", - "\n", - "fig = plt.figure(figsize=(4, 3), facecolor='w')\n", - "plt.plot(x, ys, '-')\n", - "plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)\n", - "plt.title(\"Sample Visualization\", fontsize=10)\n", - "\n", - "data = io.BytesIO()\n", - "plt.savefig(data)\n", - "image = F\"data:image/png;base64,{base64.b64encode(data.getvalue()).decode()}\"\n", - "alt = \"Sample Visualization\"\n", - "display.display(display.Markdown(F\"\"\"![{alt}]({image})\"\"\"))\n", - "plt.close(fig)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "VYV91hbKwP2J" - }, - "source": [ - "Colab notebooks execute code on Google's cloud servers, meaning that you can leverage the power of Google hardware, including GPUs and TPUs, regardless of the power of your machine. All you need is a browser.\n", - "\n", - "For example, if you find yourself waiting for pandas code to finish running and want to go faster, you can switch to a GPU runtime and use libraries like RAPIDS cuDF that provide zero-code-change acceleration." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vwnNlNIEwoZ8" - }, - "source": [ - "To learn more about accelerating pandas on Colab, see the 10-minute guide or\n", - " US stock market data analysis demo." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "OwuxHmxllTwN" - }, - "source": [ - "
\n", - "\n", - "## Machine learning\n", - "
\n", - "\n", - "With Colab you can import an image dataset, train an image classifier on it and evaluate the model, all in just a few lines of code." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ufxBm1yRnruN" - }, - "source": [ - "Colab is used extensively in the machine learning community with applications including:\n", - "- Getting started with TensorFlow\n", - "- Developing and training neural networks\n", - "- Experimenting with TPUs\n", - "- Disseminating AI research\n", - "- Creating tutorials\n", - "\n", - "To see sample Colab notebooks that demonstrate machine learning applications, see the machine learning examples below." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-Rh3-Vt9Nev9" - }, - "source": [ - "
\n", - "\n", - "## More resources\n", - "\n", - "### Working with notebooks in Colab\n", - "\n", - "
\n", - "\n", - "- [Overview of Colab](/notebooks/basic_features_overview.ipynb)\n", - "- [Guide to markdown](/notebooks/markdown_guide.ipynb)\n", - "- [Importing libraries and installing dependencies](/notebooks/snippets/importing_libraries.ipynb)\n", - "- [Saving and loading notebooks in GitHub](https://colab.research.google.com/github/googlecolab/colabtools/blob/main/notebooks/colab-github-demo.ipynb)\n", - "- [Interactive forms](/notebooks/forms.ipynb)\n", - "- [Interactive widgets](/notebooks/widgets.ipynb)\n", - "\n", - "
\n", - "\n", - "\n", - "### Working with data\n", - "
\n", - "\n", - "- [Loading data: Drive, Sheets and Google Cloud Storage](/notebooks/io.ipynb)\n", - "- [Charts: visualising data](/notebooks/charts.ipynb)\n", - "- [Getting started with BigQuery](/notebooks/bigquery.ipynb)\n", - "\n", - "
\n", - "\n", - "### Machine learning crash course\n", - "\n", - "
\n", - "\n", - "These are a few of the notebooks from Google's online machine learning course. See the full course website for more.\n", - "- [Intro to Pandas DataFrame](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/pandas_dataframe_ultraquick_tutorial.ipynb)\n", - "- [Intro to RAPIDS cuDF to accelerate pandas](https://nvda.ws/rapids-cudf)\n", - "- [Linear regression with tf.keras using synthetic data](https://colab.research.google.com/github/google/eng-edu/blob/main/ml/cc/exercises/linear_regression_with_synthetic_data.ipynb)\n", - "\n", - "
\n", - "\n", - "\n", - "### Using accelerated hardware\n", - "
\n", - "\n", - "- [TensorFlow with GPUs](/notebooks/gpu.ipynb)\n", - "- [TPUs in Colab](/notebooks/tpu.ipynb)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "P-H6Lw1vyNNd" - }, - "source": [ - "
\n", - "\n", - "\n", - "\n", - "### Featured examples\n", - "\n", - "
\n", - "\n", - "- Retraining an Image Classifier: Build a Keras model on top of a pre-trained image classifier to distinguish flowers.\n", - "- Text Classification: Classify IMDB film reviews as either positive or negative.\n", - "- Style Transfer: Use deep learning to transfer style between images.\n", - "- Multilingual Universal Sentence Encoder Q&A: Use a machine-learning model to answer questions from the SQuAD dataset.\n", - "- Video Interpolation: Predict what happened in a video between the first and the last frame.\n" - ] - } - ], - "metadata": { - "colab": { - "name": "Welcome to Colab", - "provenance": [], - "include_colab_link": true - }, - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 0 -} \ No newline at end of file +#The list: +students=[{'name':'Ahmet','sname':'yilmaz','mid':85,'final':90,'oral':75,'GPA':0}, + {'name':'Mehmit','sname':'Dimer','mid':92,'final':88,'oral':76,'GPA':0}, + {'name':'Ayse','sname':'Kaya','mid':78,'final':89,'oral':95,'GPA':0}, + {'name':'Zynep','sname':'Celik','mid':65,'final':70,'oral':80,'GPA':0}, + {'name':'Ali','sname':'Kara','mid':50,'final':60,'oral':55,'GPA':0}, + {'name':'Fatma','sname':'Yildiz','mid':88,'final':85,'oral':90,'GPA':0}, + {'name':'Murat','sname':'Aydin','mid':72,'final':68,'oral':74,'GPA':0}, + {'name':'Elif','sname':'Aksoy','mid':95,'final':90,'oral':88,'GPA':0}, + {'name':'Hakan','sname':'Ozturk','mid':45,'final':50,'oral':55,'GPA':0}, + {'name':'Canan','sname':'Tas','mid':80,'final':75,'oral':82,'GPA':0}] +#The answers: +#The first requirement(Calculate each student's GPA and add it to the dictionary): +for i in range(len(students)): + GPA=(students[i]['mid']+students[i]['final']+students[i]['oral'])/3 + students[i]['GPA']=GPA + print(students[i]) +##The second requirement(Find the student with the highest GPA and print it on the screen): +maxGPA=max(students,key=lambda x:x['GPA']) +print(maxGPA) +print(maxGPA['name'],maxGPA['sname'],maxGPA['GPA'],maxGPA['mid'],maxGPA['final'],maxGPA['oral']) +student_data = [] +for student in students: + student_data.append((student['name'], student['sname'])) + +student_data +#The Third and fourth requirements(Sort students by name and surname alphabetically)and(Separate each student's name from their surname and store them in a separate tuple and add them to a list): +sorted_students = sorted(students, key=lambda student: (student['name'], student['sname'])) + +#The fifth requirement(Keep students with a GPA below 70 in a cluster): +for student in sorted_students: + print(f"{student['name']},{student['sname']}") +low_gpa_students = set() +for student in students: + if student['GPA'] < 70: + low_gpa_students.add(student['name']) +low_gpa_students From a538beeaa10e60b4675d8e2e21bda0edb50c6d4d Mon Sep 17 00:00:00 2001 From: Asem-Altaweel Date: Sat, 19 Apr 2025 01:08:33 +0200 Subject: [PATCH 22/22] Asem Ansuer for Q 1 from week _2