From 1487b6478a45fb0c4b4381f5f784fdab6403a98e Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Tue, 24 Aug 2021 14:32:03 -0400 Subject: [PATCH 01/38] Update Module1.md preguntas --- Modules/Module1/Module1.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/Module1/Module1.md b/Modules/Module1/Module1.md index b62e0605d..874f2c38e 100644 --- a/Modules/Module1/Module1.md +++ b/Modules/Module1/Module1.md @@ -197,7 +197,7 @@ You may update both simultaneously from Visual Studio by selecting. What is the difference between Git and GitHub? - - Answer: + - Answer:The difference between Git and GitHub is that Git What is the difference between a git commit and a git push? @@ -209,7 +209,7 @@ What is the difference between a pull, and an upstream pull? What part of these instructions was unclear or incomplete? - - Answer: + - Answer:none Type down any class notes below this sentence: From 26335aed88231ed7d1e981c0c725d20e13aeb7e6 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Wed, 1 Sep 2021 14:53:51 -0400 Subject: [PATCH 02/38] DOS O TRES --- ASCII Initials.py | 8 ++++++++ Projects/ASCII Initials.py | 8 ++++++++ 2 files changed, 16 insertions(+) create mode 100644 ASCII Initials.py create mode 100644 Projects/ASCII Initials.py diff --git a/ASCII Initials.py b/ASCII Initials.py new file mode 100644 index 000000000..f2502a6db --- /dev/null +++ b/ASCII Initials.py @@ -0,0 +1,8 @@ +print(""" +IIIII A GGGGGGGGGGGGGG L + I A A GG L + I AAAAAAA GGG GGGGGGGG L + I A A GGG L + I A A GGGGGGGGGGGGGGGG LLLLLLLLLLB +IIIII +""") \ No newline at end of file diff --git a/Projects/ASCII Initials.py b/Projects/ASCII Initials.py new file mode 100644 index 000000000..67b9af50c --- /dev/null +++ b/Projects/ASCII Initials.py @@ -0,0 +1,8 @@ +print(""" +IIIII A GGGGGGGGGGGGGG L + I A A GG G L + I AAAAAAA GGG L + I A A GGG L + I A A GGGGGGGGGGGGGGGG LLLLLLLLLL +IIIII +""") \ No newline at end of file From 03b3005b06cf4f0dc2fb93b6edc843a8d33083b4 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 3 Sep 2021 14:49:02 -0400 Subject: [PATCH 03/38] dos o tres --- Modules/Module3/Module3.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Modules/Module3/Module3.md b/Modules/Module3/Module3.md index 44d718e32..157271c8b 100644 --- a/Modules/Module3/Module3.md +++ b/Modules/Module3/Module3.md @@ -96,24 +96,27 @@ print(type(age)) What is the difference between "42" and 42. - - Answer: + - Answer: String and Intiger Define the boolean operators: >, <, ==, >=, <= - - Answer: + - \ How do you address an index in an list? Write a python code that assigns 34 to a new variable by accessing the value stored in: arr = [4, 3, -1, 4, 34] - - Answer: + - Answer: arr = [4, 3, -1, 4, 34] +>>> arr [4] +34 What is the first index of a list? Why? - - Answer: + - Answer:0 + Because of the binary code Provide an original example of a null value. It must prove your understanding of the concept. - - Answer: + - Answer: My grade is null. Type down any class notes below this sentence: From 9c27c532174bac38e9c7eab57a7be24c93723d0a Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 10 Sep 2021 14:33:01 -0400 Subject: [PATCH 04/38] Create Module4.py --- Modules/Module4/Module4.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Modules/Module4/Module4.py diff --git a/Modules/Module4/Module4.py b/Modules/Module4/Module4.py new file mode 100644 index 000000000..7cb6e160e --- /dev/null +++ b/Modules/Module4/Module4.py @@ -0,0 +1,8 @@ +print("What did you have for breakfest?") +meal = "waffles" +print(meal) +print("What was your lunch?") +meal = "Chicken Tenders" +print("What was your dinner?") +meal = "Hamburger with fries" +print(meal) \ No newline at end of file From 5eb466fbc8bbd229d9179821351357e2f0a5c957 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Mon, 20 Sep 2021 14:01:49 -0400 Subject: [PATCH 05/38] Update Module4.py --- Modules/Module4/Module4.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Modules/Module4/Module4.py b/Modules/Module4/Module4.py index 7cb6e160e..5f2075047 100644 --- a/Modules/Module4/Module4.py +++ b/Modules/Module4/Module4.py @@ -1,8 +1,11 @@ -print("What did you have for breakfest?") -meal = "waffles" -print(meal) -print("What was your lunch?") -meal = "Chicken Tenders" -print("What was your dinner?") -meal = "Hamburger with fries" -print(meal) \ No newline at end of file +# print("What did you have for breakfest?") +# meal = "waffles" +# print(meal) +# print("What was your lunch?") +# meal = "Chicken Tenders" +# print("What was your dinner?") +# meal = "Hamburger with fries" +# print(meal) +def greetstudent(name): + print(f"Hello{name}"!") +greetstudent(Ignacio Guzman) From c23cd3de7e8c4f31749f33fe93405ff36a84f1e2 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Tue, 28 Sep 2021 14:10:43 -0400 Subject: [PATCH 06/38] mm m --- Modules/Module4/Module4.md | 5 +++-- Modules/Module4/Module4.py | 6 ++++++ Modules/SourceTree/Ignacio-Guzman-Ticketera.py | 10 ++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 Modules/SourceTree/Ignacio-Guzman-Ticketera.py diff --git a/Modules/Module4/Module4.md b/Modules/Module4/Module4.md index d73693005..114b55273 100644 --- a/Modules/Module4/Module4.md +++ b/Modules/Module4/Module4.md @@ -49,7 +49,8 @@ def greetStudent(name): greetStudent(name) ``` >José D. Quintana Rivera - +def greetstudent(name): + print(f"Hello{name}!")
@@ -135,7 +136,7 @@ Evaluate the following code. Is the code written correctly? What would be the co print('This message has a syntax error!") print(Churrigueresco) - - Answer: + - Answer: C Evaluate the following code. Is the code written correctly? What would be the correct code? someNumber=360 diff --git a/Modules/Module4/Module4.py b/Modules/Module4/Module4.py index 5f2075047..9e89738db 100644 --- a/Modules/Module4/Module4.py +++ b/Modules/Module4/Module4.py @@ -9,3 +9,9 @@ def greetstudent(name): print(f"Hello{name}"!") greetstudent(Ignacio Guzman) + +myName:str = "Ignacio Guzman" +myAge:int = 15 + +width = int(input(" What is the width of the square:")) +myheigh = \ No newline at end of file diff --git a/Modules/SourceTree/Ignacio-Guzman-Ticketera.py b/Modules/SourceTree/Ignacio-Guzman-Ticketera.py new file mode 100644 index 000000000..8b42fd41a --- /dev/null +++ b/Modules/SourceTree/Ignacio-Guzman-Ticketera.py @@ -0,0 +1,10 @@ +#Coca Music Hall ticket sales calculator +# Given three ticket categories +# Write a program that reads how mmmany ticketsa were sold per category, and prints the total amount of more + +print("Welcome to Nio Garcia Concert") +print(The cost of each seat is a follow: VIP= 200$, Plaza level 1-2-3-4-5=95$, Balcony Standing 301-305=30$) + +VIP= int (input("How many tickets sod for VIP?=") +Plaza Level 1-2-3-4-5=int(input("How many tickets sold for Plaza Level 1-2-3-4-5") +Balcanoy Standing 301-305=int(input("How many tickets sold for Balcony") \ No newline at end of file From 576ed1c1d3cb56f6f04d4f8316ed14405c74a382 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Tue, 28 Sep 2021 14:55:15 -0400 Subject: [PATCH 07/38] space dos o tres space --- Projects/Ignacio-Guzman-space.py | 0 Projects/Ignacio-Guzman.py | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 Projects/Ignacio-Guzman-space.py create mode 100644 Projects/Ignacio-Guzman.py diff --git a/Projects/Ignacio-Guzman-space.py b/Projects/Ignacio-Guzman-space.py new file mode 100644 index 000000000..e69de29bb diff --git a/Projects/Ignacio-Guzman.py b/Projects/Ignacio-Guzman.py new file mode 100644 index 000000000..ce3040d84 --- /dev/null +++ b/Projects/Ignacio-Guzman.py @@ -0,0 +1,21 @@ +planets = ("Mercury", "Venus", "Earth","Mars", "Jupiter","Saturn","Uranus" , "Neptune") +g_ms2 = [3.7, 8.87 ,9.81, 3.711, 24.79, 10.44 , 8.69, 11.5] + +print("Calculate your weight in a diffrent planet") + +myWeigh = int(input("What is your weight (pounds)?") +myplanet = input(f"Select a planet from the list: {Planets}") + +def calculateWeight(planet, mass ) : + print(f"/nEarth mass in pounds is : {mass}) + +w_kg= mass / 2.2046 + print(f"Mass in kg : {w_kg}") + +n_lb = 4.45 + +planet_index = planet.index(planet) +print(f"Weight in {planets[planet_index]}mmis {w_kg * g_ms[planet_index]) / n_lb} lb") + + +calculateWeight(myPlanet , myWeigh) \ No newline at end of file From 32e450d2364cbbab5f138c2e4e0b36f491cd20c5 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Wed, 6 Oct 2021 14:04:09 -0400 Subject: [PATCH 08/38] Create Ignacio-Guzman-Jump.py --- Projects/Ignacio-Guzman-Jump.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Projects/Ignacio-Guzman-Jump.py diff --git a/Projects/Ignacio-Guzman-Jump.py b/Projects/Ignacio-Guzman-Jump.py new file mode 100644 index 000000000..e69de29bb From eeb5b6c8478a9d068dc0dbee3a984f7f5aef665b Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Wed, 6 Oct 2021 14:59:23 -0400 Subject: [PATCH 09/38] ya ya --- Modules/Module5/Boolean expresions.py | 0 Modules/Module5/Module5.md | 15 ++++++++++----- Projects/Ignacio-Guzman-Jump.py | 8 ++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 Modules/Module5/Boolean expresions.py diff --git a/Modules/Module5/Boolean expresions.py b/Modules/Module5/Boolean expresions.py new file mode 100644 index 000000000..e69de29bb diff --git a/Modules/Module5/Module5.md b/Modules/Module5/Module5.md index 6af30e1da..840b1b98a 100644 --- a/Modules/Module5/Module5.md +++ b/Modules/Module5/Module5.md @@ -56,8 +56,7 @@ print(f"Computer selected: {computerChoice}") ## Upload a screenshot of the full output produced by running `RockPaperScissors.py` `(1pts)` * ### Use the name format: `CSI-Name-Lastname-5.png` -* ### Store it within your Module5 directory. -* ### Commit and push the file before next class. +* ##=
@@ -71,9 +70,15 @@ print(f"Computer selected: {computerChoice}") Give a python example for each logic operator in the module image. - Answers: - - OR: - - AND: - - NOT: + - OR: X = 35 + if(x > 20 or x < 30) + print("your number is 25"): + - AND: candies = 6 + if(candies > 7 or < 5 ) + print("you have little candies"): + - NOT: X = 32 + if not (x > 29 and x < 32): + print("Your number is 32"): Type down any class notes below this sentence: diff --git a/Projects/Ignacio-Guzman-Jump.py b/Projects/Ignacio-Guzman-Jump.py index e69de29bb..9a4888189 100644 --- a/Projects/Ignacio-Guzman-Jump.py +++ b/Projects/Ignacio-Guzman-Jump.py @@ -0,0 +1,8 @@ +planets = ["Mercury" , "Venus"] +rel_gravity = [2.65, 1.11, 1, 2.64, 0.40, 0.94, 1.13, 0.88] + +print("Jumpion on a diffrent planet ") +Jump = float(input("What is your jump length? (meters)? ") +Planet = input(f"Choose a planet: {planets}") + + defcalculate lenght From 4075e13195ef30d6c5b8de74f7296600a1d3655c Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 8 Oct 2021 15:00:42 -0400 Subject: [PATCH 10/38] Update Boolean expresions.py --- Modules/Module5/Boolean expresions.py | 35 +++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Modules/Module5/Boolean expresions.py b/Modules/Module5/Boolean expresions.py index e69de29bb..ec53a529c 100644 --- a/Modules/Module5/Boolean expresions.py +++ b/Modules/Module5/Boolean expresions.py @@ -0,0 +1,35 @@ +import random +print("Welcome to rock paper scissors game") +RPS = ["rock", "paper", "scissors"] + +playerChoice = input("Lets play . Choose one: rock, paper, scissors") + +computerChoice = random.choice(RPS) +print(f"Computer selected: {computerChoice}") +print(f"Player selected: {playerChoice}") + +if(playerChoice == computerChoice): + print("You tied") + +elif(playerChoice == "rock" and computerChoice == "scissors"): + print("rock crushes scissor. You Win!") + +elif(playerChoice == "rock" and computerChoice == "paper"): + print("You Lost") + +elif(playerChoice == "paper" and computerChoice == "rock"): + print("You Won") + +elif(playerChoice == "scissors" and computerChoice == "paper"): + print("You Won") + +elif(playerChoice == "scissors" and computerChoice == "rock"): + print("You Lost") + +elif(playerChoice == "paper" and computerChoice == "scissors"): + print("You Lost") + +else: + print("something isnt right, maybe try again") + + From 7f706a9bceb2836606838739527e1f518ef21f85 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Mon, 18 Oct 2021 14:50:38 -0400 Subject: [PATCH 11/38] Create Ignacio-Guzman-magic.py --- Modules/Module5/Ignacio-Guzman-magic.py | 33 +++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Modules/Module5/Ignacio-Guzman-magic.py diff --git a/Modules/Module5/Ignacio-Guzman-magic.py b/Modules/Module5/Ignacio-Guzman-magic.py new file mode 100644 index 000000000..d3d887ec2 --- /dev/null +++ b/Modules/Module5/Ignacio-Guzman-magic.py @@ -0,0 +1,33 @@ +import random +print("Welcome to the Magic 8-Ball Game") +Player_name = input("What is your name?") +print(f"Hello {Player_name} ! Welcome to the Magic 8-Ball Game") +Player_question = input ("What do you want to ask me?") +print(f"{Player_name} ask {Player_question}") +random_number = random.randint(1,12) +if random_number == 1 : + print("Yes - definitely") +elif random_number == 2: + print("It is decidebly so.") +elif random_number == 3: + print("Without a doubt") +elif random_number == 4: + print("Reply hazy, tray again.") +elif random_number == 5: + print("Ask Again Later") +elif random_number == 6: + print("Better not tell you now.") +elif random_number == 7: + print("My sources say NO.") +elif random_number == 8: + print("Outlook not so good.") +elif random_number == 9: + print("Very doubtful.") +elif random_number == 10: + print("Not Today") +elif random_number == 11: + print("I think so") +elif random_number == 12: + print("Tomorrow") +else: + print("There was an error") \ No newline at end of file From 1b9054a350c353400eeef8dbe4935ae6e6cff8fb Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Mon, 18 Oct 2021 15:06:43 -0400 Subject: [PATCH 12/38] Squashed commit of the following: commit 09be0b606964820655516d301422103a7240c0cd Author: CSI-Carlos-Cobian Date: Fri Oct 15 19:55:45 2021 -0400 Module 6 definition Update. commit 87e1221946492c192012bdf1fff9b1d9634b1344 Author: CSI-Carlos-Cobian Date: Fri Oct 15 18:48:34 2021 -0400 JQ comments on space function commit fd6fca4205d09b624def65a782612fdc2255b02b Author: CSI-Carlos-Cobian Date: Fri Oct 15 18:45:57 2021 -0400 Updates to Projectile Motion commit fe104d84dc5792735d457441a5780c9e866801d4 Merge: 82d7856 f2da298 Author: CSI-Carlos-Cobian <88460012+CSI-Carlos-Cobian@users.noreply.github.com> Date: Fri Oct 15 18:43:45 2021 -0400 Merge pull request #11 from CSI-Jose-Quintana/main Jose's Guarida del leon project. commit f2da29899389bc1c570ca09aba3313f20fc73c13 Merge: 48e773b 82d7856 Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Tue Oct 12 14:04:41 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit 82d7856be83a4c4157cfe8d64a6626aad5e5ab49 Author: CSI-Carlos-Cobian Date: Tue Oct 12 09:32:30 2021 -0400 JSON exercise. commit 31569347c035d645a6889f8c3c7193246dd16b9a Author: CSI-Carlos-Cobian Date: Thu Oct 7 20:49:06 2021 -0400 Updates. commit e968cf0adaad1968a37766429ba4292dd0b15a5a Author: CSI-Carlos-Cobian Date: Thu Oct 7 19:47:28 2021 -0400 Projectile Motion Updates. commit 48e773b6e9aa328044fe0ae28b9804f5ffab6eb2 Merge: 194a2c6 f00af2c Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Wed Oct 6 08:35:56 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit f00af2c47cb8bd7b9fdd7059304f116891df01ee Author: CSI-Carlos-Cobian Date: Tue Oct 5 14:39:40 2021 -0400 Projectile motion. commit 06586f778ee688af2763005d53e6b9ededfc6c88 Author: CSI-Carlos-Cobian Date: Tue Oct 5 11:57:45 2021 -0400 fixes commit 3c95b369b02743fa5bfbf47b9f6a0b51756f290b Author: CSI-Carlos-Cobian Date: Tue Oct 5 11:02:59 2021 -0400 Projectile Motion V1 commit b679e8ac8dd6c725240159c187a7a52a8424e56a Author: CSI-Carlos-Cobian Date: Mon Oct 4 13:43:08 2021 -0400 Various updates. Templates for other modules. commit 194a2c6766466bdea73ac8c1a3897d17de96e8ea Author: CSI-Jose-Quintana Date: Thu Sep 30 15:25:34 2021 -0400 Cambios commit 0c578d9f362e55cd94ccc4e652551043f2c36b02 Merge: edbb8bb 87cc74c Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Thu Sep 30 07:56:26 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit 87cc74c884ebf83859bc9e2fdaf386f925b966ac Author: CSI-Jose-Quintana Date: Thu Sep 30 07:55:45 2021 -0400 Foto space commit edbb8bbf4eb4f238bc0f17f01f14aa98d67bfe4e Author: CSI-Jose-Quintana Date: Tue Sep 28 15:28:49 2021 -0400 my weight in space commit 11a917c0eb28e37f5169705fa104a025476ea117 Merge: b96f1ef 1cef30a Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Tue Sep 28 13:55:20 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit 1cef30ae294b1c6b1e4f2dcf5461a74cf2477dd8 Author: CSI-Jose-Quintana Date: Tue Sep 28 12:43:43 2021 -0400 Update Your weight in space.md commit b90c434e0f3a7768cca36c7a581c5a73acee850a Author: CSI-Jose-Quintana Date: Tue Sep 28 12:42:49 2021 -0400 Your weight is space project commit b96f1ef532d5b377b68ed6780da79cb5f11d85d4 Merge: b4de547 444a64f Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Mon Sep 20 14:02:05 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit b4de5477c609972e8d5bd54f8d01384978e653e0 Merge: 65f46af 50d40ed Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Mon Sep 6 21:41:55 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit 65f46af8b0c9fd05c11453b87eeef5a0fe0c73c4 Author: CSI-Jose-Quintana Date: Thu Sep 2 22:30:42 2021 -0400 Update Receipts for Guaridad del Leon.md commit de2bb0057716c1abaee967998d6026d9e476d314 Author: CSI-Jose-Quintana Date: Thu Sep 2 22:10:03 2021 -0400 Update Receipts for Guaridad del Leon.md commit f29244f9e0d5b555bb5b7804e87f99304eb75c28 Author: CSI-Jose-Quintana Date: Thu Sep 2 06:30:17 2021 -0400 Update Receipts for Guaridad del Leon.md commit 0bd02c7faf50a2a78a9ad47f86db9f84a9b52122 Author: CSI-Jose-Quintana Date: Wed Sep 1 22:12:32 2021 -0400 Update Receipts for Guaridad del Leon.md commit 7d594e432f7abd98ec0a72543d5a4a981fc0df58 Author: CSI-Jose-Quintana Date: Wed Sep 1 21:41:57 2021 -0400 Update Receipts for Guaridad del Leon.md commit 10a6003330c6848f9be3116d0ed43eb3cd95fbf3 Merge: d34685d 2e9084f Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Wed Sep 1 14:03:08 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit d34685da2ecabb6b9b052069223241b7844adef8 Author: CSI-Jose-Quintana Date: Wed Sep 1 12:44:10 2021 -0400 Create Receipts for Guaridad del Leon.md commit 9d9c1024867f76c021d4e5a09534b72e88059d9b Merge: b74a59d 0aa9528 Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Mon Aug 30 09:31:42 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit b74a59d605d7f0c3e91843355c3dce4429541b4b Merge: 29f91ef a1dc59b Author: CSI-Jose-Quintana <88497049+CSI-Jose-Quintana@users.noreply.github.com> Date: Mon Aug 30 09:29:00 2021 -0400 Merge branch 'CSI-Carlos-Cobian:main' into main commit 29f91ef6bef8be739469dd9414f02442f6d70f0d Author: CSI-Jose-Quintana Date: Thu Aug 26 14:22:51 2021 -0400 Foto de HelloWorld.py --- .gitignore | 3 + .../Module2/CSI-Jose-Quintana-Module2-1.png | Bin 0 -> 48621 bytes ...los-Cobian-Module2-1.png => Module2-1.png} | Bin Modules/Module2/Module2.md | 4 +- Modules/Module4/Module4.md | 3 +- Modules/Module5/Module5.md | 41 +++--- Modules/Module5/Planets.py | 35 +++++ Modules/Module6/Module6.md | 30 +++-- Modules/Module6/meme1.jpg | Bin 0 -> 57960 bytes Modules/Module7/Module7.md | 46 +++++++ Modules/{Module6 => Module7}/meme1.jfif | Bin Modules/{Module6 => Module7}/meme2.png | Bin Modules/{Module6 => Module7}/meme3.png | Bin Modules/{Module6 => Module7}/meme4.jpg | Bin Modules/{Module6 => Module7}/meme5.jpg | Bin Modules/{Module6 => Module7}/meme6.png | Bin Modules/{Module6 => Module7}/meme7.jfif | Bin Modules/{Module6 => Module7}/meme8.jpg | Bin Modules/Module8/Meme1.jpg | Bin 0 -> 50431 bytes Modules/Module8/Module8.md | 39 ++++++ .../Geometric-Functions.md | 2 +- .../Projectile-Motion/Projectile-Motion.md | 127 ++++++++++++++++++ .../Receipts for Guaridad del Leon.md | 56 ++++++++ .../Jose-Quintana-Jump.py | 2 + .../Jose-Quintana-Space.py | 35 +++++ .../Terminal-Weight is space.PNG | Bin 0 -> 25039 bytes .../Your weight in space.md | 31 +++++ README.md | 4 +- 28 files changed, 428 insertions(+), 30 deletions(-) create mode 100644 Modules/Module2/CSI-Jose-Quintana-Module2-1.png rename Modules/Module2/{CSI-Carlos-Cobian-Module2-1.png => Module2-1.png} (100%) create mode 100644 Modules/Module5/Planets.py create mode 100644 Modules/Module6/meme1.jpg create mode 100644 Modules/Module7/Module7.md rename Modules/{Module6 => Module7}/meme1.jfif (100%) rename Modules/{Module6 => Module7}/meme2.png (100%) rename Modules/{Module6 => Module7}/meme3.png (100%) rename Modules/{Module6 => Module7}/meme4.jpg (100%) rename Modules/{Module6 => Module7}/meme5.jpg (100%) rename Modules/{Module6 => Module7}/meme6.png (100%) rename Modules/{Module6 => Module7}/meme7.jfif (100%) rename Modules/{Module6 => Module7}/meme8.jpg (100%) create mode 100644 Modules/Module8/Meme1.jpg create mode 100644 Modules/Module8/Module8.md create mode 100644 Projects/Projectile-Motion/Projectile-Motion.md create mode 100644 Projects/Receipts for Guarida del Leon/Receipts for Guaridad del Leon.md create mode 100644 Projects/Your weight in space/Jose-Quintana-Jump.py create mode 100644 Projects/Your weight in space/Jose-Quintana-Space.py create mode 100644 Projects/Your weight in space/Terminal-Weight is space.PNG create mode 100644 Projects/Your weight in space/Your weight in space.md diff --git a/.gitignore b/.gitignore index ff708928c..c0bff963c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ Modules/SourceTree/Setup.pdf Projects/ASCII Initials Art Project.pdf Projects/Bonus-ASCII-Art/Bonus-ASCII-Art.pdf Modules/Module4/planets.py +Projects/Projectile-Motion/planets.py +Projects/Your weight in space/planets.py +*.pyc diff --git a/Modules/Module2/CSI-Jose-Quintana-Module2-1.png b/Modules/Module2/CSI-Jose-Quintana-Module2-1.png new file mode 100644 index 0000000000000000000000000000000000000000..90da13b6ec94fea6f8fcf78ea6aca358d99abf6e GIT binary patch literal 48621 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
    fR(bgSf@Xn?`gLZoBP3B_P<>*$bAMAWj@XxDr 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 literal 0 HcmV?d00001 diff --git a/Modules/Module2/CSI-Carlos-Cobian-Module2-1.png b/Modules/Module2/Module2-1.png similarity index 100% rename from Modules/Module2/CSI-Carlos-Cobian-Module2-1.png rename to Modules/Module2/Module2-1.png diff --git a/Modules/Module2/Module2.md b/Modules/Module2/Module2.md index d50e4b74b..f46bd9abc 100644 --- a/Modules/Module2/Module2.md +++ b/Modules/Module2/Module2.md @@ -106,7 +106,7 @@ Typing `python` *(or `python3`)* into the terminal will enter the Python console ### The output should look similar to this: - @@ -114,7 +114,7 @@ Typing `python` *(or `python3`)* into the terminal will enter the Python console ### Take a screenshot of your terminal's output showing the same elements as above. * #### On Windows use `WIN+SHFT+S` to make a selection. * #### Save it in the Module2 directory of your branch. -* #### Name the file using the following convention: `CSI-Carlos-Cobian-Module2-1.png` +* #### Name the file using the following convention: `Module2-1.png` ### Commit and push this image before the next lecture`(2pts)` diff --git a/Modules/Module4/Module4.md b/Modules/Module4/Module4.md index 114b55273..98bf86929 100644 --- a/Modules/Module4/Module4.md +++ b/Modules/Module4/Module4.md @@ -118,12 +118,13 @@ print(f"Or use the print directly {myNumber}")
    ## Upload a screenshot of the full output produced by running `Module4.py` `(1pts)` -* ### Use the name format: `Module4-1.png` +* ### Use the name format: `Module4.png` * ### Store it within your Module4 directory. * ### Commit and push the file before next class.
    +### [The Geometric-Functions project corresponds to this lecture.]((/../../tree/main/Projects/Geometric-Functions/Geometric-Functions.md)) # Class Discussion diff --git a/Modules/Module5/Module5.md b/Modules/Module5/Module5.md index 840b1b98a..88e329fc8 100644 --- a/Modules/Module5/Module5.md +++ b/Modules/Module5/Module5.md @@ -1,6 +1,6 @@
    @@ -8,6 +8,22 @@ # Module 5: Boolean Logic +## If-else logic +One of the most common statements in programming is the `if` statement. It is often followed by an `else` statement. If statements evaluate a boolean predicate and execute code depending on the propositional statement response. An `else` statement is used when you would like another piece of code to execute of a false response. An `elif` (else if) statement may be used when you'd like a piece of code to run when an alternate condition IS met. An example using a mathematical proposition is displayed below. + +```python +x = 45 + +if(x == 0): # Evaluate if x is 0 + print("The value of x is 0") +elif(x > 50): # Assumes x is not 0. + print("The value of x is more than 50") +else: # In the case that x is less than 50 and not 0. + print("The value of x is lower than 50, and is not 0") +``` + +
    + ## [Truth tables and Boolean Operators](https://www.mcckc.edu/tutoring/docs/br/math/reasoning/Logic_and_Truth_Tables.pdf) -## If-else logic -One of the most common statements in programming is the `if` statement. It is often followed by an `else` statement. If statement evaluate boolean propositions and execute code depending on the propositional statement response. An `else` statement is used when you would like another piece of code when the code fails. An `elif` (else if) statement may be used when you'd like a piece of code to run when an alternate condition IS met. An example using a mathematical proposition is displayed below. +## Compound Logic +Multiple logical statements can be combined using the logical operators seen above. These take 2 boolean values and produce a single one. An example of using the logical operator `AND` is seen below. ```python x = 45 - -if(x == 0): - print("The value of x is 0") -elif(x > 50): - print("The value of x is more than 50") -else: - print("The value of x is lower than 50, and is not 0") +if( x > 0 and x < 100 ): + print("Will run.") ``` +Let's call `x > 0` **A** and `x < 100` **B**. A is true and so is B. They are both then denoted the value of 1(true). The logical operator **AND** will combine these two true values and produce a single boolean value of true. +
    ## Implement a rock-paper-scissors game using if-else logic.`(20pts)` @@ -48,15 +61,13 @@ print(f"Computer selected: {computerChoice}") # Add logic below this line ``` - -
    -
    ## Upload a screenshot of the full output produced by running `RockPaperScissors.py` `(1pts)` -* ### Use the name format: `CSI-Name-Lastname-5.png` -* ##= +* ### Use the name format: `Module5.png` +* ### Store it within your Module5 directory. +* ### Commit and push the file before next class.
    diff --git a/Modules/Module5/Planets.py b/Modules/Module5/Planets.py new file mode 100644 index 000000000..4dc1a3355 --- /dev/null +++ b/Modules/Module5/Planets.py @@ -0,0 +1,35 @@ +# Planets.py +# Calculate your weight in another planet! + +planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"] +g_ms2 = [3.7, 8.87, 9.81, 3.711, 24.79, 10.44, 8.69, 11.15] + +print("Calculate your weight in a different planet of our Solar System!") + +# Query the user for a integer mass. Any other data type will result in an error. +myMass = int(input("What is your mass (pounds)? ")) + +# Convert the planets list into a string. Remove the special characters: ' [ ] +planetsString = str(planets).replace('\'','').replace('[','').replace(']','') +myPlanet = input(f"Select a planet from the list: {planetsString} ") + +def calculateWeight(planet:str,mass): + print(f"\nEarth mass in pounds is: {mass}") + + # Convert your mass into kilograms. + m_kg = mass / 2.2046 + print(f"Mass in kg: {round(m_kg , 2)}") + + # Convert the planet input string into a index integer. + planet = planets.index(planet) + + # Weight in Newtons: Calculate weight by multiplying mass and gravitational acceleration. + w_n = m_kg * g_ms2[planet] + + # Newtons in a pound constant. + n_lb = 4.45 + + # Calculate the weight inside of a functional string. + print(f"Weight in {planets[planet]} is {round( w_n / n_lb,2)} lb. \n") + +calculateWeight(myPlanet,myMass) \ No newline at end of file diff --git a/Modules/Module6/Module6.md b/Modules/Module6/Module6.md index cda50865f..d48264d56 100644 --- a/Modules/Module6/Module6.md +++ b/Modules/Module6/Module6.md @@ -1,22 +1,27 @@
    -

    -# Module 6: Loops +# [Module 6: Objects and the JSON Format](https://www.geeksforgeeks.org/convert-class-object-to-json-in-python) +
    -## Create a python script within Module6 called `Module6.py`. `(1pts)` -1. Carry out tasks related to the module. +## [What is JSON](https://www.w3schools.com/whatis/whatis_json.asp). +
    +## [How to define an object](https://www.geeksforgeeks.org/convert-class-object-to-json-in-python/). +* ### [What is an object constructor](https://www.geeksforgeeks.org/constructors-in-python) + * An object constructor is like a function. It's function is included by default in all classes. it is used by writing a function called `__init__`.You define how many parameters it includes. You also define what variables are stored into your object by assigning them to `self`.
    -## Upload a screenshot of the full output produced by running `Module6.py` `(1pts)` -* ### Use the name format: `CSI-Name-Lastname-5.png` + +## Upload a screenshot of the full output produced by running `Module6.py` `(0pts)` +* ### Use the name format: `Module6.png` * ### Store it within your Module6 directory. * ### Commit and push the file before next class. @@ -25,11 +30,18 @@ # Class Discussion -## Answer the questions on the Markdown file located within your `Module6` directory (Module6.md)`(4pts)` +## Answer the questions on the Markdown file located within your `Module6` directory (Module6.md)`(10pts)` + + + +
    + +## [Next Module ->](/../../tree/main/Modules/Module8/Module8.md) \ No newline at end of file diff --git a/Modules/Module6/meme1.jfif b/Modules/Module7/meme1.jfif similarity index 100% rename from Modules/Module6/meme1.jfif rename to Modules/Module7/meme1.jfif diff --git a/Modules/Module6/meme2.png b/Modules/Module7/meme2.png similarity index 100% rename from Modules/Module6/meme2.png rename to Modules/Module7/meme2.png diff --git a/Modules/Module6/meme3.png b/Modules/Module7/meme3.png similarity index 100% rename from Modules/Module6/meme3.png rename to Modules/Module7/meme3.png diff --git a/Modules/Module6/meme4.jpg b/Modules/Module7/meme4.jpg similarity index 100% rename from Modules/Module6/meme4.jpg rename to Modules/Module7/meme4.jpg diff --git a/Modules/Module6/meme5.jpg b/Modules/Module7/meme5.jpg similarity index 100% rename from Modules/Module6/meme5.jpg rename to Modules/Module7/meme5.jpg diff --git a/Modules/Module6/meme6.png b/Modules/Module7/meme6.png similarity index 100% rename from Modules/Module6/meme6.png rename to Modules/Module7/meme6.png diff --git a/Modules/Module6/meme7.jfif b/Modules/Module7/meme7.jfif similarity index 100% rename from Modules/Module6/meme7.jfif rename to Modules/Module7/meme7.jfif diff --git a/Modules/Module6/meme8.jpg b/Modules/Module7/meme8.jpg similarity index 100% rename from Modules/Module6/meme8.jpg rename to Modules/Module7/meme8.jpg diff --git a/Modules/Module8/Meme1.jpg b/Modules/Module8/Meme1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b7adab78dc77080c605d73274569aafd4e205f7c GIT binary patch literal 50431 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 + + +
    + +# Module 8: Exception Handling + + + + +## Upload a screenshot of the full output produced by running `Module8.py` `(1pts)` +* ### Use the name format: `CSI-Name-Lastname-8.png` +* ### Store it within your Module8 directory. +* ### Commit and push the file before next class. + +
    + + + +# Class Discussion +## Answer the questions on the Markdown file located within your `Module8` directory (Module8.md)`(4pts)` + + + + +
    + +## [Next Module ->](/../../tree/main/Modules/Module9/Module9.md) \ No newline at end of file diff --git a/Projects/Geometric-Functions/Geometric-Functions.md b/Projects/Geometric-Functions/Geometric-Functions.md index c58a8c82c..1c179fbeb 100644 --- a/Projects/Geometric-Functions/Geometric-Functions.md +++ b/Projects/Geometric-Functions/Geometric-Functions.md @@ -6,7 +6,7 @@
    -# Geometric Functions +# Geometric Functions `(25 pts)` In order to practice writing functions and functional string outputs, we will be defining a variety of geometric functions. Each student will be assigned one function from the list below. You must use write 2 functions. One to execute the calculation and another to print the result in a nice format. You must also use it at least 4 times as examples. | Function | Equation | diff --git a/Projects/Projectile-Motion/Projectile-Motion.md b/Projects/Projectile-Motion/Projectile-Motion.md new file mode 100644 index 000000000..51a35c200 --- /dev/null +++ b/Projects/Projectile-Motion/Projectile-Motion.md @@ -0,0 +1,127 @@ +
    + + +
    +
    + +# Calculate the distance traveled by a projectile `(100pts)` + + +## [Select a projectile weapon.](https://escapefromtarkov.fandom.com/wiki/Weapons)`(5pts)` +* Store its name as a variable. +* Find the cartridge calibre for the weapon you selected. eg. 5.56 for an M4. + * Store its name as a variable. +* Select a round from the ammunition types. + * Store its name as a variable. +* Find the projectile velocity of your selected round. + * Store its value as a variable. + + +
    + +## [Select a building you're going to send it from.](https://www.emporis.com/statistics/tallest-buildings/country/100193/puerto-rico)`(5pts)` +* Store its name and height value as variables. +* [You may use any other building.](https://www.google.com/search?q=tallest+building) + +
    + +## Gather data for your experiment. `(10pts)` +* Create a file using the following convention `Projectile-Motion.py` +* [Use this website to review projectile motion. Example 1 will help.](https://www.khanacademy.org/science/physics/two-dimensional-motion/two-dimensional-projectile-mot/a/what-is-2d-projectile-motion) +* Determine how far will your projectile go if was fired straight (angle of 0 degrees). + * Assume no air resistance. + * Your script must Calculate the time (t) and distance traveled (delta X). +* Your script must be fully documented (`# Inline documentation at every step`). + +
    + +## Print a descriptive paragraph. `(10pts)` +* It must use all the variables defined above in correctly punctuated sentences that are grammatically correct. +* Describe the experimental conditions and results. + +
    + +## Convert your script into a function `(10pts)` +* Convert all tha variables you have created into parameters. + * Their data types must be defined. + +
    + +## Convert your script parameters into a single JSON Object `(5pts)` +* Change your experimental function to receive a single object as a parameter. + * call your object `experimentalData` + * Update your function variable references to use this object. eg. `experimentalData.velocity_ms` + +
    + +## Create a Python Class `(15pts)` +* Comment out your `experimentalData` object + * Highlight section and press `CTRL + /` +* Create a file and class named `ExperimentalData` +* Convert your JSON Object into parameters for the class. +* Use a Constructor on your experiment. It should be similar to your original function parameter list. + * Make sure your first parameter is `self`. + * Store all parameter values to self. +* Construct your object in `Projectile-Motion.py` and use it as your parameter object for your function. + * Add an import to your class. + * `from ExperimentalData import ExperimentalData` + * Modify your function references to use the values from this object. + + * Specify the data type of your function to be `ExperimentalData` + * Update your function`s variable references. + +
    + +## Call your function with 4 different configurations (Different parameter values) `(10pts)` + +
    + +## Externalize your JSON `(10pts)` +* Create a file called `Projectile-Motion.json` +* Migrate all of your configurations into this JSON file. + * Use a list + +
    + +## Write a For-Loop `(10pts)` +* Iterate over your JSON List. +* Call the previously defined function on each iteration. + +
    + +## Add the option to run the calculation on another planet.`(10pts)` +* Recall from `Planets.py` +```python +# Parallel Lists +planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"] +g_ms2 = [3.7, 8.87, 9.81, 3.711, 24.79, 10.44, 8.69, 11.15] + +# Planet Index +planet = planets.index(input("Planet Name: ")) + +# Planet Gravity +g_ms2[planet] + +``` +* Update your object class. +* Update your JSON + +
    + +After you finish, take a screenshot of the terminal and name it using the following convention: `Projectile-Motion.png` + + + + + \ No newline at end of file diff --git a/Projects/Receipts for Guarida del Leon/Receipts for Guaridad del Leon.md b/Projects/Receipts for Guarida del Leon/Receipts for Guaridad del Leon.md new file mode 100644 index 000000000..bfbf823fb --- /dev/null +++ b/Projects/Receipts for Guarida del Leon/Receipts for Guaridad del Leon.md @@ -0,0 +1,56 @@ +
    + +
    +
    + +# Receipts for Guarida del León +With your knowledge of programming, we're going to build a script to help speed up the process of creating receipts for students that shop at Guarida del León. + +In this project, you will be storing names and prices of the Guarida del León catalog n variables. You will process the total price and item list of customers, printing them to the output terminal. + +## Let's start. + +1. Create a Python script name Receipts-Guarida-Leon.py. +2. Add the first item, the best sale, the hoodie. Create a variable called `lion_hoodie_description` and assign to it the following string: +>Black soft hoodie. 50% cotton and 50% polyester. +3. After that, create a price for the hoodie. Create a variable `lion_hoodie_price` and set it equal to 45.00 +4. Extend the inventory with 3 more items available in Guarida del León. Create a variable and assign to it a string with the item's description. After that, create a variable and set it equal to its sale price. You should have 4 variables with item's description and 4 variables with item's sale price. +5. You should also calculate the sales tax and set it equal to `.115` . That is 11.5%. Name it `sales_tax`. +6. Your first customer or student is making its purchase! You should keep a running tally of his expenses by defining a variable called `student_one_total`. Since student one hasn't purchased anything yet, set that variable equals to `0` for now. +7. You should also keep a list of the descriptions of things that student is purchasing. Create a variable called `student_one_items` and set that equal to the empty string "". You'll tack on the description to this as he shop. +8. When the student is ready to check out, you should calculate sales tax. Create a variable called `student_one_tax` and set it equal to `student_one_total` times `sales_tax`. +9. Add the `sales_tax` to the `student_one_total`. +10. In the receipt, you should print out the heading or phrase `Student One Items:`. Print `student_one_items`. +11. Now add a heading for total cost. Print out `Student One Total`. Now print his total. +12. Repeat the steps to add the purchase for student two. + + + +
    + +### Example output: +
    + +```python +Student One: + +Items: Black soft hoodie. 50% cotton and 50% polyester. New Balance Backpack. From gym clothes and school supplies to personal electronics, the CSI Backpack can accommodate everything you need to keep up with your on-the-go lifestyle. + +Student One Total: +$105.925 +``` + +## Rubric + +| Criteria | Points | +|-----------|--------| +|The script includes the following variables: item descriptions, item prices, sale tax, students items, student totals ant student taxes.|

    `25 points`

    | +|When compiled and run, the program outputs a receipt with a detailed descriptions of the item purchased by Student One and the sale total in the Python console.|

    `5 points`

    | +|When compiled and run, the program outputs a receipt with a detailed descriptions of the item purchased by Student Two and the sale total in the Python console.|

    `5 points`

    | +| Name the file using the Receipts-Guarida-Leon.py |

    `2 points`

    | +| Take a screenshot of your terminal's output. Save it in the Project directory. Name the file using the following convention: `CSI-Jose-Quintana-Receipts-Guarida.png` |

    `3 points`

    | +|Total:|

    `40 points`| + diff --git a/Projects/Your weight in space/Jose-Quintana-Jump.py b/Projects/Your weight in space/Jose-Quintana-Jump.py new file mode 100644 index 000000000..2445d245d --- /dev/null +++ b/Projects/Your weight in space/Jose-Quintana-Jump.py @@ -0,0 +1,2 @@ +planets = ["Mercury", "Venus"] +rel_gravity = [2.65, 1.11, 1, 2.64, 0.40, 0.94, 1.13, 0.88] \ No newline at end of file diff --git a/Projects/Your weight in space/Jose-Quintana-Space.py b/Projects/Your weight in space/Jose-Quintana-Space.py new file mode 100644 index 000000000..4dc1a3355 --- /dev/null +++ b/Projects/Your weight in space/Jose-Quintana-Space.py @@ -0,0 +1,35 @@ +# Planets.py +# Calculate your weight in another planet! + +planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune"] +g_ms2 = [3.7, 8.87, 9.81, 3.711, 24.79, 10.44, 8.69, 11.15] + +print("Calculate your weight in a different planet of our Solar System!") + +# Query the user for a integer mass. Any other data type will result in an error. +myMass = int(input("What is your mass (pounds)? ")) + +# Convert the planets list into a string. Remove the special characters: ' [ ] +planetsString = str(planets).replace('\'','').replace('[','').replace(']','') +myPlanet = input(f"Select a planet from the list: {planetsString} ") + +def calculateWeight(planet:str,mass): + print(f"\nEarth mass in pounds is: {mass}") + + # Convert your mass into kilograms. + m_kg = mass / 2.2046 + print(f"Mass in kg: {round(m_kg , 2)}") + + # Convert the planet input string into a index integer. + planet = planets.index(planet) + + # Weight in Newtons: Calculate weight by multiplying mass and gravitational acceleration. + w_n = m_kg * g_ms2[planet] + + # Newtons in a pound constant. + n_lb = 4.45 + + # Calculate the weight inside of a functional string. + print(f"Weight in {planets[planet]} is {round( w_n / n_lb,2)} lb. \n") + +calculateWeight(myPlanet,myMass) \ No newline at end of file diff --git a/Projects/Your weight in space/Terminal-Weight is space.PNG b/Projects/Your weight in space/Terminal-Weight is space.PNG new file mode 100644 index 0000000000000000000000000000000000000000..62625c124034d169c273c4d0e59ab57cbef309fc GIT binary patch literal 25039 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 literal 0 HcmV?d00001 diff --git a/Projects/Your weight in space/Your weight in space.md b/Projects/Your weight in space/Your weight in space.md new file mode 100644 index 000000000..1bc93810f --- /dev/null +++ b/Projects/Your weight in space/Your weight in space.md @@ -0,0 +1,31 @@ + +

    +
    + +# Your weight in space +Create an script to calculate your weight in space. +* Define a function that accept a planet and your mass as parameters. +* Print your weight in that planet. + +Name the file using the following convention `Name-Lastname-Space.py` + +After you finish, take a screenshot of the terminal and name it using the following convention: `Name-Lastname-Space.png` + + +| Planet | Gravitational Acceleration (m/s^2) | +|-----------|--------| +| Mercury | 3.7 | +| Venus | 8.87 | +| Earth | 9.81 | +| Mars | 3.711 | +| Jupiter| 24.79 | +| Saturn| 10.44 | +| Uranus| 8.69 | +| Neptune | 11.15 | + +### `Kilograms formula:` w_kg = mass / 2.2046 \ No newline at end of file diff --git a/README.md b/README.md index 794384379..80dfd194c 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,8 @@ At least 300 points. * [Data Types and Variables](/../../tree/main/Modules/Module3/Module3.md) * [String Operations and Functions](/../../tree/main/Modules/Module4/Module4.md). * [Boolean Logic **(Rock Paper Scissors)**](/../../tree/main/Modules/Module5/Module5.md) -* [Looping (for, while) **(Fancy & Funky Print Loops)**](/../../tree/main/Modules/Module6/Module6.md) -* Lists & Iteration **(Hangman Project)** +* [Looping (for, while)](/../../tree/main/Modules/Module6/Module6.md) +* [Objects and the JSON Format]((/../../tree/main/Modules/Module7/Module7.md)) * 2D Arrays **(Snake)** * Canvas, Vectors, Putting it all together. **(Egg Catcher)** From 4686521806979682ebf1913f77b65b4d2bf3b54a Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Tue, 26 Oct 2021 14:50:28 -0400 Subject: [PATCH 13/38] d mv d kimdc --- Modules/Module4/Module4.md | 1 + .../Module5/Ignacio-Guzman-simpsonshipping.py | 11 +++++++++++ Modules/SourceTree/Ignacio-Guzman-Ticketera.py | 7 +++++-- Projects/Ignacio-Guzman-space.py | 1 + Projects/Ignacio-Guzman.py | 5 +++-- .../Ignacio-Guzman-Project-Motion.py/Ignacio | 17 +++++++++++++++++ 6 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 Modules/Module5/Ignacio-Guzman-simpsonshipping.py create mode 100644 Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio diff --git a/Modules/Module4/Module4.md b/Modules/Module4/Module4.md index 98bf86929..3c59c93a8 100644 --- a/Modules/Module4/Module4.md +++ b/Modules/Module4/Module4.md @@ -150,6 +150,7 @@ Define a function that takes 2 or more string parameters and prints a single lin - Answer: + Refer to this documentation webpage and google for the exercises below: diff --git a/Modules/Module5/Ignacio-Guzman-simpsonshipping.py b/Modules/Module5/Ignacio-Guzman-simpsonshipping.py new file mode 100644 index 000000000..d1362552b --- /dev/null +++ b/Modules/Module5/Ignacio-Guzman-simpsonshipping.py @@ -0,0 +1,11 @@ +print("Welcome to Simpson Shipping") +weight:float = float(input("What is the weight of your package:")) +#ground shipping +if (weight == 2 and weight < 2): + cost_ground = 2 and weight * 1.75 + 20 + print("Ground Shipping $", float(cost_ground)) +elif (weight == 2 > ) + + + + \ No newline at end of file diff --git a/Modules/SourceTree/Ignacio-Guzman-Ticketera.py b/Modules/SourceTree/Ignacio-Guzman-Ticketera.py index 8b42fd41a..6b4f0f7f9 100644 --- a/Modules/SourceTree/Ignacio-Guzman-Ticketera.py +++ b/Modules/SourceTree/Ignacio-Guzman-Ticketera.py @@ -5,6 +5,9 @@ print("Welcome to Nio Garcia Concert") print(The cost of each seat is a follow: VIP= 200$, Plaza level 1-2-3-4-5=95$, Balcony Standing 301-305=30$) -VIP= int (input("How many tickets sod for VIP?=") +VIP = int (input("How many tickets sod for VIP?=") Plaza Level 1-2-3-4-5=int(input("How many tickets sold for Plaza Level 1-2-3-4-5") -Balcanoy Standing 301-305=int(input("How many tickets sold for Balcony") \ No newline at end of file +Balcanoy Standing 301-305=int(input("How many tickets sold for Balcony") + + + diff --git a/Projects/Ignacio-Guzman-space.py b/Projects/Ignacio-Guzman-space.py index e69de29bb..8b1378917 100644 --- a/Projects/Ignacio-Guzman-space.py +++ b/Projects/Ignacio-Guzman-space.py @@ -0,0 +1 @@ + diff --git a/Projects/Ignacio-Guzman.py b/Projects/Ignacio-Guzman.py index ce3040d84..8ca185aa2 100644 --- a/Projects/Ignacio-Guzman.py +++ b/Projects/Ignacio-Guzman.py @@ -4,7 +4,7 @@ print("Calculate your weight in a diffrent planet") myWeigh = int(input("What is your weight (pounds)?") -myplanet = input(f"Select a planet from the list: {Planets}") +myplanet = input(f"Select a planet from the list: {Planets}") def calculateWeight(planet, mass ) : print(f"/nEarth mass in pounds is : {mass}) @@ -18,4 +18,5 @@ def calculateWeight(planet, mass ) : print(f"Weight in {planets[planet_index]}mmis {w_kg * g_ms[planet_index]) / n_lb} lb") -calculateWeight(myPlanet , myWeigh) \ No newline at end of file +calculateWeight(myPlanet , myWeigh) + diff --git a/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio b/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio new file mode 100644 index 000000000..d6f0f8a94 --- /dev/null +++ b/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio @@ -0,0 +1,17 @@ +gun = "GLOCK17" +caliber = "9x19mm" +ammunition = "Single" +velocity_ms= "30" + +Building == "Caribean Sea View" +BuildingHeight = "334" + +gravity = 9.81 + +import math + +time_s = math.sqrt ((2 * 334) / 9.81) + +distance = (30 * 68) + +print(f"The gun selected was "GLOCK17") \ No newline at end of file From f42de2ba72aae8f42b60d8480f4059b93b6a9fc2 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Thu, 28 Oct 2021 14:33:59 -0400 Subject: [PATCH 14/38] ma --- .../Ignacio-Guzman-Project-Motion.py/Ignacio | 17 ---------------- .../Ignacio-Guzman-ProjectileMotion.py | 20 +++++++++++++++++++ 2 files changed, 20 insertions(+), 17 deletions(-) delete mode 100644 Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio create mode 100644 Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio-Guzman-ProjectileMotion.py diff --git a/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio b/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio deleted file mode 100644 index d6f0f8a94..000000000 --- a/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio +++ /dev/null @@ -1,17 +0,0 @@ -gun = "GLOCK17" -caliber = "9x19mm" -ammunition = "Single" -velocity_ms= "30" - -Building == "Caribean Sea View" -BuildingHeight = "334" - -gravity = 9.81 - -import math - -time_s = math.sqrt ((2 * 334) / 9.81) - -distance = (30 * 68) - -print(f"The gun selected was "GLOCK17") \ No newline at end of file diff --git a/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio-Guzman-ProjectileMotion.py b/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio-Guzman-ProjectileMotion.py new file mode 100644 index 000000000..1e979bf75 --- /dev/null +++ b/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio-Guzman-ProjectileMotion.py @@ -0,0 +1,20 @@ +import math +gun = "GLOCK17" +caliber = "9x19mm" +ammunition = "PBB gzh" +velocity_ms= 560 + +Building = "Caribean Sea View" +BuildingHeight = 334 + + +gravity_Ms = 9.81 + + + +time_s = math.sqrt ((2 * 334) / 9.81) +distance = (30 * 68) + +print(f"The gun selected was "GLOCK17") + +"Caribean Sea View" From 9aff95a56ae1e7ec4427ab9f38baa26deb905572 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Mon, 8 Nov 2021 14:22:56 -0400 Subject: [PATCH 15/38] edicion final --- .DS_Store | Bin 0 -> 8196 bytes Modules/.DS_Store | Bin 0 -> 8196 bytes .../SourceTree/Ignacio-Guzman-Ticketera.py | 33 +++++++++++++----- Projects/Projectile-Motion/expermentaldata.py | 0 4 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 .DS_Store create mode 100644 Modules/.DS_Store create mode 100644 Projects/Projectile-Motion/expermentaldata.py diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..39e5629aa09224ff249c2009fb312014a788e5bf GIT binary patch literal 8196 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 literal 0 HcmV?d00001 diff --git a/Modules/SourceTree/Ignacio-Guzman-Ticketera.py b/Modules/SourceTree/Ignacio-Guzman-Ticketera.py index 6b4f0f7f9..71105707a 100644 --- a/Modules/SourceTree/Ignacio-Guzman-Ticketera.py +++ b/Modules/SourceTree/Ignacio-Guzman-Ticketera.py @@ -1,13 +1,30 @@ -#Coca Music Hall ticket sales calculator -# Given three ticket categories -# Write a program that reads how mmmany ticketsa were sold per category, and prints the total amount of more -print("Welcome to Nio Garcia Concert") -print(The cost of each seat is a follow: VIP= 200$, Plaza level 1-2-3-4-5=95$, Balcony Standing 301-305=30$) +print("Welcome to Rauw Alejandro Concert") +print("The cost of each seat is a follow: VIP= 200$, Arena/Nivel Principal = 95$, Club Seat = 85$") -VIP = int (input("How many tickets sod for VIP?=") -Plaza Level 1-2-3-4-5=int(input("How many tickets sold for Plaza Level 1-2-3-4-5") -Balcanoy Standing 301-305=int(input("How many tickets sold for Balcony") +VIP = int(input("How many tickets sold for VIP?")) +ArenaNivelPrincipal = int(input("How many tickets sold for Arena/Nivel Principal?")) +ClubSeats = int(input("How many tickets sold for Club Seat?")) + + +def TicketsSold(VIP, ArenaNivelPrincipal, ClubSeats): + print(f"The cost of all of the VIP tickets sold were: {int(VIP) * 200}") + print(f"The cost of all of the Arena/Nivel Principal tickets sold were: {int(ArenaNivelPrincipal) * 95}") + print(f"The cost of all of the Clubs Seat tickets sold were: {int(ClubSeats) * 85}") + + + +TicketsSold(VIP, ArenaNivelPrincipal , ClubSeats) +sold_VIP = VIP * 183 +sold_ANP = ArenaNivelPrincipal * 160 +sold_CL = ClubSeats * 150 + + +def TicketsTotal(sold_VIP, sold_ANP, sold_CL): + print(f"The total of tickets sales is: {int(sold_VIP) + int(sold_ANP) + int(sold_CL)}") + + +TicketsTotal(sold_VIP, sold_ANP, sold_CL) \ No newline at end of file diff --git a/Projects/Projectile-Motion/expermentaldata.py b/Projects/Projectile-Motion/expermentaldata.py new file mode 100644 index 000000000..e69de29bb From fca794b9746da2ccf41cc3e1ff8b71464055fa79 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Mon, 8 Nov 2021 14:26:05 -0400 Subject: [PATCH 16/38] Mover a carpeta module4 --- .DS_Store | Bin 8196 -> 8196 bytes Modules/.DS_Store | Bin 8196 -> 10244 bytes .../Ignacio-Guzman-Ticketera.py | 0 Modules/SourceTree/.DS_Store | Bin 0 -> 6148 bytes 4 files changed, 0 insertions(+), 0 deletions(-) rename Modules/{SourceTree => Module4}/Ignacio-Guzman-Ticketera.py (100%) create mode 100644 Modules/SourceTree/.DS_Store diff --git a/.DS_Store b/.DS_Store index 39e5629aa09224ff249c2009fb312014a788e5bf..6f302b9e799766225c6647d751bb9e4074f2ff86 100644 GIT binary patch delta 1176 zcmeIxPe>F|90%~<*DPn~sc+ZaRmWX5O)Zt&{%C56YhhN46r{PP7uOkMa&^m9D=Ez| zx&&n-og$;C4ndmQQNy}KRuFBFQ68jA1f9wbLG|_zK}z181&K=0FxDpQ-0X|Wm;rlgE)my^Ped^aK4z9uKXXiHhe zj$k4;nUgGx8ShL*4)L9mswkcwuYRmY?>@=1B`Ij;rbL#mWEw8BZ9qv^)=E;7+S0A< z?9#+r4eyYfr?9$!IFh$Wa=24a$XH#w-l_6{9O*bWGNs+fal3s7C`lXoMGsq2mbJ(TzTw!fEv5JT77wmto*4Zs9iW*fEa#n8Xww;~Adg z1>RsDi}-{u_-gdqGBUmig*d7e*HWp6e56sp7wA3e_4&O-F(Xk+yRfve+&@~{e_PHc zL;$U}4Vz0Vj5$l{>gG@|wSHA^(~U(-ffN+1X?6!QvaA(e#=##5rnFQgr6A94 z=P^P#G{BtpO|lT=Dt!@ z-qJ@}LJZ;%FXC53^y@_IC2(Pvhmptx6xF#$0lAf_>chnU49%pr*Pk-s1YkxK4pjTS6SUbE>KK2taum$DT5 KKe>NTZv8J8YXfKi delta 1222 zcmeIwTWkzr6bJD0U#-sgLciJWRd-Tss|ektq7}+&E41sbqT;&Soifqgt=(;Z+F%s;oUrZUvkcuIVb0L`T~7{b6i2% zP!yYo4OJV1^X4yDxR&#dq_#wB3#If1g!N4wda8?iB`Iy?N+BDmdJVtT z(W{PB%Oz=LL{z9tXyS}ye=~NR%9@g*4i8CkHd5hZtZAbji}0juMk*&Wby-^|thMoo zEM*^6Pi5-zPA!qt<1rr01#4_fZElH2qgpJL6tPTwwN|Z{_#Mf(ZRPIaE_b2mW3D8v z$n-HQ644@(H{c-SgVovF6bnT)Z@^F4kAoyq$xpS^NNcE_x~QM_&|$hj19XvY&^>xg z&*%+(pwIM$zS1`U1yJC|D3qcMqv3-elTe8O8qkO!mSY_>tj7lENMJL%(2XASVLNtU zCl>F*UL3|z9K&&(!2mAe60YGoZsHam;u)Uf1>WKvKHL*T>+j6nseF#|JEi#p840xZH3EJYJm zV=Y1mqXlh3|OANJ!Q4hgUmIEhnPuuHg%E4V7a?&A@j i8b^vs@alZRq2qjk>q}ml*y&$8o87hlgZ#%qw&EwC-y^jE diff --git a/Modules/.DS_Store b/Modules/.DS_Store index d819e3e8715434302b2ceb636040244391fe8d69..7ff3af22566a2cdfff216ed26b39f1bbdaaca3e2 100644 GIT binary patch literal 10244 zcmeHMYit}>6+WNiBy;U?JV{)8H_qCdxK3i@#7@?UW5{Fuh-2r`gsxNDNg8L@J55Gi z?>IZVb{f}}d8?u+q7o1SKUx)3wE=#$g-WQr)B-7@JY2OY;s*$+zW{-X03jjHy)(PD z*LFpa5G|UKX3pGm?wNbF$IV1J?% znbe+`awZa~MYVl}9|1oCegymo_!00U@Lq@jbGAIRa##9SKLUOP{0I~xAm@iLpHfCW zIqOO_b?`+k0a%u@S{;1P>j32w_GHwPv#wOG{7iTC0M8ZP5(BO~+rzRt%cv)3UFo_L zTz7)kGQ1TERO{>)R@DhnSNc~!0)7M*M?j{{YC29fB`G(5{cb1N^5eur%5t)8ZLgzb zMd`{_t2M1mE2}8GH+IpUie=;3oYNi8oROuI@$AKfcRy&`slt6cagSwAjT%)wb~+ok z(q=|ETS=3voE@^#Nqef>&ZU!%dQQwWXqwQ(s1cZ+jzo61gd>s8nU?T$M@L&rxIMCG zW=3c=jXU=boF9MS%JhRX4}H-c8NAtnDvL&Xeep0;&SXy_C5Kt^Sbmsq5$T{ZSW-6YwCe7Y>)^tXVN{7cgFlMJuX3R+*+t8Su%8jSlvUV(<8q0BIvn!Q~ zSyxPFIBQ66$?V0ExHD#^lUDk|(4^&9iIh2*j*pvb(IUiLbxoim zxFNVPZz^`tj0SBum#{A7tn34-jk@}vIGg02AGedTm89{UCX}V2J{UYBEj<~NuSrdt zGuBjAh;6}UVZ^mThezUSwu@F_IAZXAeyK_m+$GvIBPmX$;t4b5syalcW*ikmlkRX` zhp-P_ID(@%j=K=US=@_JoX35zF@X#mOylGD z1U`w+;2NI7(|86q@GM@$cko?&4>$2D-f;U@lE>>Yx17J?O};BiOU5g2t0}yWEQQz5 zp}xaC{}a64(p`|QuezhIVcYgy9s8n%S6TE1=i^8L$3=!hOdb*H6)u3HgmZ91tq7fB zV40VT!JG%Vv08#(n+q~RLgCP6jqzf5#m3N9jS+2>sAn}bhlH_$!K*SQxT95sjFpU2 zO<5!DLKvkCWY@a4ldY>5vhJfqtvJYbQq73QP>;|IEC;}4;r9eRLod)vbdzEC8vUAn zOMj%lG2}|Ih9MU~EjA*AE!c`CG@}K(vBv{nFZ$4r0R~_Ur!a(Jj39v|!|wtv;u6Cz zhe=Ff79YV!8HiW$CqqT(1Zm?mxVKKwolpzdiPlwZ}4cDs|F! zEJ+e01wL718eW=V7V(z>abr!*#!ZdQt?ixryXPdmtgq7b+as8D#@fn2Fi^XYNTgP; z3xoxy+QJN0_3Hw6YTEoMU`{z~4K%$&Budkw?|6qulU(CeJYZ*d~OO@HNN{yR#r0xPi!m7LH)mC{Yvg$UXaRSA5I8RTx9VFo$J43fk+ z(##;2yyX2DC+{Qp96paP;BmzwU&Gh&ZM=k+@k9I^zre5XJN(}5a3Q6S<_F+P{DI|i zIL`CQ!%O41zVC2fb^m)9$G6nC5z|g}O}Md15>MB1#Ipd6^C9@IEHo!+XJbgO|M!ST z*50(azTS{<)0A`hmU>-%Nl9Dt7PggmmL08ZaXCoZBJFy;$3e2Vw^P?W4wA+F2iWRz zP;GESKo9A?l7qDW7_K+zmx^=#0b+obW4-#w*~*_e9XQCJH@!H-JaYmcW|kRbo;k-K zIC18g`xQuST*ehVh#5SDPvK#Fnt^(ifqD(snPt9=ug?4Ic@EFxTX+HA$19jC0_%|? zu)ek&Sc_O_p_^awBj88i_9L*ubqUM;|3l0F|G)hQ`yPG-{0O{nB7oA~SZ_CXH@_QE z+;h3t9_I5rpYo9PW?iXV_#&%Fz1oiFg4|bBTQaQkHe-}M>eZWdrE+IK<<8RG&Hu0e c4Di?gGW&+Gqx0V2^BqW}N^ literal 8196 zcmeHMU2GIp6u#e5V5Sr36w$V@6Bf#!q(WhlpD4KOmOxv68n)2#TV{7gI&nHvcV=5k zDb~a%5yO)Pq9N*we~$v{lYb8qeNh{Y1WkM~`k)V(D2Xxg+gJEuR@0okg zIrrXk<~#S!*=39&Teem+R?iqysB)@n)ZC_UKCicwL^M)G6r|5sk=d-1m8i9Ek&Xvq z55yjbJrH{!_CV}`yTJo=XY-;=aqmlR+{PY=J#bHYfS(U3s+?vbIx49+I;asT08yR- zh(gbl2MC>1L^BZ`l~kzGoHBbrq>3oTfK(@bii;D?M08YAsm>tP8KRXDWhfArK2X6HM51(q5XFe-a-hNa5UKkAe3$9-v{*^+%>jYtQ^EXILtC~JzrlM3U z)w8M(=X?FZd}xN{AZwNm@?M7-_7J|)jU!E|;q~jAn^J4j>qbUYrEbaUO|3`! zhE5Eh965DP+K1?jU^SEMJwKJPZZMFO#wNy%y;?C=t=6QPnRhhb*#ir*H9ZU>q(l%GF(zMPe==JLX-vW)K*J{RI*DTnsZmEhG+OSbGx(1}FdV4gu zX|85;7yZ6IGBKbrz9A!Pv?%(g$`QWs4l@XM_uC$=J+Ho@hPJd_QTB7r7R$0NrLlsJ z#>{g0D4fxlX_h^m-$@2*W?9z8j<9|<#7?sp*ah|uyT~rFkJxAIYj%zO$bMzNvESJr z>;{0Ds6_)7VKJ6qDORBwYmi0;t!P6#x^NUWj-eM0N*KftPGA_%;8{F}Gk6{^;sRd5 zt9T7><03BMGCshE_!ytyD_p~O_#QvuXI#gh36@ahE)x~7@2;2=jq|Vi+eS8lJ&Nqa z*-B(j1bcGZ_HC_gxw{tZ-_Di@zyE={)RGme)^6OK9Y?~XSAR1E1@a`c1mr4^60dzC zhGi&d3o2nUIVScJV(sG!4;+2w*!+fh^$QmzlRC$qBDzbLQ8z)cp^Wjlw5H@rl|Zjg z6W!!$Ev*o|_34tkPTQbT0O(bc`-rwlA)M!mhI$>@Q45HR_PUa;(G#Y{p~AB8RQmg%0dN9-TOh9+)Vg2p4_u(NE|d#z~yQ zQ+S%tds?9PEY9IPUc$?S;@9y8-V`XljCb)K-X|1)jxQ!*wtXUIadj%p4&+Oo>wCwD zU%~rC)wp-(9+)Oo>iJ2rb?V>$?|kA|BlbY-f&YyMP}P!e$>d|Jl$e|-N7_}#P3-|_x5mH+?% diff --git a/Modules/SourceTree/Ignacio-Guzman-Ticketera.py b/Modules/Module4/Ignacio-Guzman-Ticketera.py similarity index 100% rename from Modules/SourceTree/Ignacio-Guzman-Ticketera.py rename to Modules/Module4/Ignacio-Guzman-Ticketera.py diff --git a/Modules/SourceTree/.DS_Store b/Modules/SourceTree/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 Date: Wed, 17 Nov 2021 22:57:58 -0400 Subject: [PATCH 17/38] Update expermentaldata.py --- Projects/Projectile-Motion/expermentaldata.py | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/Projects/Projectile-Motion/expermentaldata.py b/Projects/Projectile-Motion/expermentaldata.py index e69de29bb..b0156176f 100644 --- a/Projects/Projectile-Motion/expermentaldata.py +++ b/Projects/Projectile-Motion/expermentaldata.py @@ -0,0 +1,51 @@ +import math +import os +from pathlib import Path +from ExperimentalData import ExperimentalData +import json + +#"gun" = "GLOCK17" +#"caliber" = "9x19mm" +#"ammunition" = "PBB gzh" +#"velocity"= 560 +#"building" = "Caribean Sea View" +#"buildingheight" = 334 +#"gravity" = 9.81 + +#Estan las calculaciones aqui y las listas de los planetas con sus gravedades +def projectilefunction(experimentalData: ExperimentalData): + planets = ["Neptune", "Urnanus", "Earth", "Saturn", "Jupiter", "Mars", "Venus", "Mercury"] + gravity = [3.7, 8.87, 9.81, 3.711, 24.79, 10.44, 8.69, 11.15] + + planets= planets.index(experimentalData.planet) + + time = math.sqrt((2 * experimentalData.buildinheight) / gravity[planets]) + distance = (experimentalData.velocity * time) + print(f"The gun i choose was the {experimentalData.gun} the ammunition is {experimentalData.ammunition}, the caliber is {experimentalData.caliber}, the velocity is {experimentalData.velocity} it will be at the {distance} at {time} and it will be shot at {experimentalData.building} that has a height of {experimentalData.buildinheight}") + print(f"The {experimentalData.planet} which has {gravity[planets]} is where this will be taken place.") +experimentalData = ExperimentalData("Glock17", "9x19mm", "PBB", 560, "Carrebean Sea view", 334, "Earth") +#Estamos cogiendo los experimentos en cada planeta que escogi +myDataSet = [ +ExperimentalData("Glock17","9x19mm","PBB ", 560, "Caribean Sea view",334,"Neptune"), +ExperimentalData("Glock17","9x19mm","PBB ", 560, "Caribean Sea view",334,"Urnanus"), +ExperimentalData("Glock17","9x19mm","PBB ", 560, "Caribean Sea view",334,"Saturn"), +ExperimentalData("Glock17","9x19mm","PBB ", 560, "Caribean Sea view",334,"Jupiter"), +ExperimentalData("Glock17","9x19mm","PBB ", 560, "Caribean Sea view",334,"Mars"), +] + + +#Aqui estamos pritintiando el data set y llamandolo por seccion +for data in myDataSet: + print("\n---------------------------------------------------------------------\n") + projectilefunction(data) + myOutputPath = Path(__file__).parents[0] + myOutputFilePath = os.path.join(myOutputPath, "proyectileMotion.json") + print(myOutputFilePath) +with open(myOutputFilePath, "w") as outfile: + json.dump([data.__dict__ for data in myDataSet], outfile) + deserialize = open(myOutputFilePath) + experimentJson = json.load(deserialize) + myOutputPath = Path(__file__).parents[0] +for e in experimentJson: + print("\n-------------------------------------------------\n") + projectilefunction(ExperimentalData(**e)) \ No newline at end of file From bb5d08d46966ef489b4234db447589b9378f0e23 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Wed, 17 Nov 2021 22:59:00 -0400 Subject: [PATCH 18/38] Update expermentaldata.py --- Projects/Projectile-Motion/expermentaldata.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Projects/Projectile-Motion/expermentaldata.py b/Projects/Projectile-Motion/expermentaldata.py index b0156176f..2bbeb3086 100644 --- a/Projects/Projectile-Motion/expermentaldata.py +++ b/Projects/Projectile-Motion/expermentaldata.py @@ -48,4 +48,5 @@ def projectilefunction(experimentalData: ExperimentalData): myOutputPath = Path(__file__).parents[0] for e in experimentJson: print("\n-------------------------------------------------\n") - projectilefunction(ExperimentalData(**e)) \ No newline at end of file + projectilefunction(ExperimentalData(**e)) + \ No newline at end of file From f9bf77e0838dee35767938ea457b7c7fdc0a2e74 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Thu, 20 Jan 2022 14:50:12 -0400 Subject: [PATCH 19/38] smc s kjwc --- Projects/Ignacio-Guzman-Hangman.py | 0 Projects/igancio-guzman-hangman.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Projects/Ignacio-Guzman-Hangman.py create mode 100644 Projects/igancio-guzman-hangman.py diff --git a/Projects/Ignacio-Guzman-Hangman.py b/Projects/Ignacio-Guzman-Hangman.py new file mode 100644 index 000000000..e69de29bb diff --git a/Projects/igancio-guzman-hangman.py b/Projects/igancio-guzman-hangman.py new file mode 100644 index 000000000..e69de29bb From 5ea04adeefa25714430db2bbb368263eefef462d Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Mon, 24 Jan 2022 14:55:29 -0400 Subject: [PATCH 20/38] nuev neuevp --- Projects/Ignacio-Guzman-Hangman.py | 63 +++++++++++++++ .../Ignacio-Guzman-ProjectileMotion.py | 2 +- Projects/igancio-guzman-hangman.py | 80 +++++++++++++++++++ 3 files changed, 144 insertions(+), 1 deletion(-) diff --git a/Projects/Ignacio-Guzman-Hangman.py b/Projects/Ignacio-Guzman-Hangman.py index e69de29bb..798940b42 100644 --- a/Projects/Ignacio-Guzman-Hangman.py +++ b/Projects/Ignacio-Guzman-Hangman.py @@ -0,0 +1,63 @@ +import random +word_list = ["buchipluma", "guasibiri", "glopeta", "acicalao", "masucamba", "sandungueo", "pichaera", +"feca", "blinblineo", "banshee" ] +def display_hangman(tries): + stages = [ """ + -------- + | | + | O + | /|\\ + | | + | / \\ + - + """, + """ + -------- + | | + | O + | /|\\ + | | + | / + - + """, + """ + -------- + | | + | O + | /|\\ + | | + | + - + """, + """" + -------- + | | + | O + | /| + | | + | + - + """, + """ + -------- + | | + | O + | | + | | + | + - + """, + """ + -------- + | | + | O + | + | + | + - + """, + """ + -------- + | | + | + | \ No newline at end of file diff --git a/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio-Guzman-ProjectileMotion.py b/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio-Guzman-ProjectileMotion.py index 1e979bf75..2e0dc53b7 100644 --- a/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio-Guzman-ProjectileMotion.py +++ b/Projects/Projectile-Motion/Ignacio-Guzman-Project-Motion.py/Ignacio-Guzman-ProjectileMotion.py @@ -16,5 +16,5 @@ distance = (30 * 68) print(f"The gun selected was "GLOCK17") - +print(f"The caliber selected was"9x19mm ") "Caribean Sea View" diff --git a/Projects/igancio-guzman-hangman.py b/Projects/igancio-guzman-hangman.py index e69de29bb..58c1b1a9f 100644 --- a/Projects/igancio-guzman-hangman.py +++ b/Projects/igancio-guzman-hangman.py @@ -0,0 +1,80 @@ +import random +word_list = ["Celestina Cordero y Molina", "Adolfina Villanueva Osorio", "Sylvia del Villard Moreno ", "Ivonne Solla Cabrera", "Ruth Fernández Cortada", "sandungueo", "pichaera", "feca", "blinblineo", "banshee" ] +def get_word(word_list): + word = random.choice(word_list) + return word.upper() + +def play(word): + word_completion = "_" * len(word) + guessed = False + guessed_letters = [] + guessed_words = [] + tries = 6 + print("Lets Play Hangman") + +def display_hangman(tries): + stages = [ """ + + -------- + | | + | O + | /|\\ + | | + | / \\ + - + """, + """ + -------- + | | + | O + | /|\\ + | | + | / + - + """, + """ + -------- + | | + | O + | /|\\ + | | + | + - + """, + """" + -------- + | | + | O + | /| + | | + | + - + """, + """ + -------- + | | + | O + | | + | | + | + - + """, + """ + -------- + | | + | O + | + | + | + - + """, + """ + -------- + | | + | + | + | + | + - + """, + ] From d03992d033e8582d30557ea4a30e501d8676a11e Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 28 Jan 2022 15:02:13 -0400 Subject: [PATCH 21/38] Update igancio-guzman-hangman.py --- Projects/igancio-guzman-hangman.py | 205 ++++++++++++++++++----------- 1 file changed, 131 insertions(+), 74 deletions(-) diff --git a/Projects/igancio-guzman-hangman.py b/Projects/igancio-guzman-hangman.py index 58c1b1a9f..b667ffd4d 100644 --- a/Projects/igancio-guzman-hangman.py +++ b/Projects/igancio-guzman-hangman.py @@ -1,80 +1,137 @@ +from ntpath import join +from operator import index +from pickle import APPEND import random +from re import I word_list = ["Celestina Cordero y Molina", "Adolfina Villanueva Osorio", "Sylvia del Villard Moreno ", "Ivonne Solla Cabrera", "Ruth Fernández Cortada", "sandungueo", "pichaera", "feca", "blinblineo", "banshee" ] def get_word(word_list): - word = random.choice(word_list) - return word.upper() + word = random.choice(word_list) + return word.upper() def play(word): - word_completion = "_" * len(word) - guessed = False - guessed_letters = [] - guessed_words = [] - tries = 6 - print("Lets Play Hangman") - + word_completion = "_" * len(word) + guessed = False + guessed_letters = [] + guessed_words = [] + tries = 6 + print("Lets play Hangman") + print("Theme: Las Mujueres Ilustres De Puerto Rico") + print(display_hangman(tries)) + print(word_completion) + print("\n") + while not guessed and tries > 0: + guess = input("Guess a letter or word").upper() + if len(guess) == 1 and guess.isalpha(): + if guess in guessed_letters: + print("You already tried", guess) + elif guess not in word: + print(guess, "Isnt in the word :(") + tries -= 1 + guessed_letters.append(guess) + else: + print("Nice one", guess, "is in the word") + guessed_letters.append(guess) + word_as_list = list(word_completion) + indices = [i for i, letter in enumerate(word) if letter == guess] + for index in indices: + word_as_list[index] = guess + word_completion = "".join(word_as_list) + if "_" not in word_completion: + guessed = True + elif len(guess) == len(word) and guess.isalpha(): + if guess in guessed_words: + print("You already tried", guess, "!") + elif guess != word: + print(guess, "Is not the word.") + tries -= 1 + guessed_words.append(guess) + else: + guessed = True + word_completion = word + else: + print("Ivalid input") + print(display_hangman(tries)) + print(word_completion) + print("\n") +jjb + if guessed: + print("Good job, you guessed the word") + else: + print("You ran of tries. The word was" + word + "Maybe next time") + def display_hangman(tries): - stages = [ """ - - -------- - | | - | O - | /|\\ - | | - | / \\ - - - """, - """ - -------- - | | - | O - | /|\\ - | | - | / - - - """, - """ - -------- - | | - | O - | /|\\ - | | - | - - - """, - """" - -------- - | | - | O - | /| - | | - | - - - """, - """ - -------- - | | - | O - | | - | | - | - - - """, - """ - -------- - | | - | O - | - | - | - - - """, - """ - -------- - | | - | - | - | - | - - - """, - ] + stages = [ """ + -------- + | | + | O + | /|\\ + | | + | / \\ + - + """, + """ + -------- + | | + | O + | /|\\ + | | + | / + - + """, + """ + -------- + | | + | O + | /|\\ + | | + | + - + """, + """" + -------- + | | + | O + | /| + | | + | + - + """, + """ + -------- + | | + | O + | | + | | + | + - + """, + """ + -------- + | | + | O + | + | + | + - + """, + """ + -------- + | | + | + | + | + | + - + """, + ] + return stages[tries] +def main(): + word = get_word(word_list) + play (word) + while input("Again? (Y/N)").upper() == "Y": + wprd = get_word(word_list) + play(word) + + +if __name__ == "__main__": + main() From 7f504328eb8828ee7c39ec97b2212f068d25affa Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Wed, 9 Feb 2022 14:12:24 -0400 Subject: [PATCH 22/38] Update igancio-guzman-hangman.py --- Projects/igancio-guzman-hangman.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Projects/igancio-guzman-hangman.py b/Projects/igancio-guzman-hangman.py index b667ffd4d..097984928 100644 --- a/Projects/igancio-guzman-hangman.py +++ b/Projects/igancio-guzman-hangman.py @@ -1,9 +1,6 @@ -from ntpath import join -from operator import index -from pickle import APPEND import random -from re import I -word_list = ["Celestina Cordero y Molina", "Adolfina Villanueva Osorio", "Sylvia del Villard Moreno ", "Ivonne Solla Cabrera", "Ruth Fernández Cortada", "sandungueo", "pichaera", "feca", "blinblineo", "banshee" ] +word_list = ["CelestinaCordero", "AdolfinVillanueva ", "SylviaVillard ", "IvonneCabrera", "RutFernández ", "EneidGomez", "DomingaCruz", "JuliaBurgos", "LuisaCapetillo", "FelisaRincón" ] + def get_word(word_list): word = random.choice(word_list) return word.upper() @@ -53,7 +50,7 @@ def play(word): print(display_hangman(tries)) print(word_completion) print("\n") -jjb + if guessed: print("Good job, you guessed the word") else: From d322b369e7df804612c701950bc1c280a78a9f96 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Thu, 17 Feb 2022 14:49:56 -0400 Subject: [PATCH 23/38] Create Ignacio-Guzman.snake.py nuevo con colores --- Projects/Ignacio-Guzman.snake.py | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Projects/Ignacio-Guzman.snake.py diff --git a/Projects/Ignacio-Guzman.snake.py b/Projects/Ignacio-Guzman.snake.py new file mode 100644 index 000000000..4d8158d9d --- /dev/null +++ b/Projects/Ignacio-Guzman.snake.py @@ -0,0 +1,54 @@ +from turtle import left +import pygame +pygame.init() + +blue=(19,109,178) +green=(155,252,10) +orange=(246,97,33) +yellow=(253,253,10) +violet= (107,10,253) + +dis=pygame.display.set_mode((400, 300)) +pygame.display.update() +pygame.display.set_caption("Snake Game by ML") +game_over =False +while not game_over: + +x1=150 +y1=150 + +x1_change = 0 +y1_change = 0 + +clock = pygame.time.Clock() + +while not game_over: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + game_over = True + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_LEFT: + x1_change = -10 + y1_change = 0 + elif event.key == pygame.K_RIGHT: + x1_change = 10 + y1_change = 0 + elif event.key == pygame.K_UP: + y1_change = -10 + x1_change = 0 + elif event.key == pygame.K_DOWN: + y1_change = 10 + x1_change = 0 + + + x1 += x1_change + y1 += y1_change + dis.fill() + pygame.draw.recact + + pygame.display.update() + + clock.tick(30) + +pygame.quit() +quit() From 6331fda58cf28f11a7e53fcb045528d2377c7a64 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Thu, 24 Feb 2022 15:01:21 -0400 Subject: [PATCH 24/38] Update Ignacio-Guzman.snake.py --- Projects/Ignacio-Guzman.snake.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Projects/Ignacio-Guzman.snake.py b/Projects/Ignacio-Guzman.snake.py index 4d8158d9d..9e4d6e3f4 100644 --- a/Projects/Ignacio-Guzman.snake.py +++ b/Projects/Ignacio-Guzman.snake.py @@ -7,6 +7,8 @@ orange=(246,97,33) yellow=(253,253,10) violet= (107,10,253) +dis_width = 400 +dis_height = 400 dis=pygame.display.set_mode((400, 300)) pygame.display.update() @@ -21,6 +23,10 @@ y1_change = 0 clock = pygame.time.Clock() +snake_speed = 15 +snake_block = 10 + +font_style = pygame.font.SysFont(None, 50) while not game_over: for event in pygame.event.get(): @@ -35,11 +41,12 @@ y1_change = 0 elif event.key == pygame.K_UP: y1_change = -10 - x1_change = 0 + 12 x1_change = 0 elif event.key == pygame.K_DOWN: y1_change = 10 x1_change = 0 - + if x1 >= dis_width or x1 or y1 >= dis_height or y1 <0: + x1 += x1_change y1 += y1_change From 32df139a2428f1f531742453bd6b2cb88ea72b7d Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Mon, 28 Feb 2022 15:02:09 -0400 Subject: [PATCH 25/38] Update Ignacio-Guzman.snake.py --- Projects/Ignacio-Guzman.snake.py | 51 ++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/Projects/Ignacio-Guzman.snake.py b/Projects/Ignacio-Guzman.snake.py index 9e4d6e3f4..13607cd45 100644 --- a/Projects/Ignacio-Guzman.snake.py +++ b/Projects/Ignacio-Guzman.snake.py @@ -1,5 +1,11 @@ -from turtle import left +import asyncore +from asyncore import loop +from pickle import TRUE +from random import random +from turtle import update, width import pygame + + pygame.init() blue=(19,109,178) @@ -10,23 +16,44 @@ dis_width = 400 dis_height = 400 -dis=pygame.display.set_mode((400, 300)) -pygame.display.update() + +dis_width = 400 +dis_height = 300 + +dis=pygame.display.set_mode((dis_width, dis_height)) + pygame.display.set_caption("Snake Game by ML") game_over =False -while not game_over: -x1=150 -y1=150 +snake_speed = 15 +snake_block = 10 -x1_change = 0 -y1_change = 0 clock = pygame.time.Clock() -snake_speed = 15 -snake_block = 10 +font_style = pygame.font.SysFont(None,50) + +def my_snake(snake_blockl, snake_list): + for x in snake_list: + pygame.draw.rect(dis, yellow , [x[0], x [1] , snake_block,snake_block]) + +def message(msg,color): + mesg = font_style.render(msg, True, color) + dis.blit(mesg, [dis_width/10, dis_height/2]) + +def gameloop(): + game_over = False + game_close = False + + + x1= dis_width/2 + y1=dis_height/2 + + x1_change = 0 + y1_change = 0 + + foodx = round(random.randrange(0, dis width - ) + -font_style = pygame.font.SysFont(None, 50) while not game_over: for event in pygame.event.get(): @@ -46,7 +73,7 @@ y1_change = 10 x1_change = 0 if x1 >= dis_width or x1 or y1 >= dis_height or y1 <0: - + x1 += x1_change y1 += y1_change From 0de88ce27e7552ac86a04f847ab61788bbbc7742 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Tue, 8 Mar 2022 14:48:07 -0400 Subject: [PATCH 26/38] Update Ignacio-Guzman.snake.py --- Projects/Ignacio-Guzman.snake.py | 120 ++++++++++++++++++++----------- 1 file changed, 80 insertions(+), 40 deletions(-) diff --git a/Projects/Ignacio-Guzman.snake.py b/Projects/Ignacio-Guzman.snake.py index 13607cd45..31eb77f1d 100644 --- a/Projects/Ignacio-Guzman.snake.py +++ b/Projects/Ignacio-Guzman.snake.py @@ -8,11 +8,11 @@ pygame.init() -blue=(19,109,178) -green=(155,252,10) -orange=(246,97,33) -yellow=(253,253,10) -violet= (107,10,253) +blue=(19,109,178) #game +green=(155,252,10) #backround +orange=(246,97,33) #food +yellow=(253,253,10) #score +violet= (107,10,253)#snake dis_width = 400 dis_height = 400 @@ -25,21 +25,29 @@ pygame.display.set_caption("Snake Game by ML") game_over =False +clock = pygame.time.Clock() snake_speed = 15 snake_block = 10 -clock = pygame.time.Clock() font_style = pygame.font.SysFont(None,50) -def my_snake(snake_blockl, snake_list): +score_font = pygame.font.SysFont(None, 25) + +def My_Score(score) : + value = score_font.render ("Your Score:" + str(score), True, yellow) + dis.blit(value, [0, 0]) + + +def my_snake(snake_block, snake_list): for x in snake_list: - pygame.draw.rect(dis, yellow , [x[0], x [1] , snake_block,snake_block]) + pygame.draw.rect(dis, violet , [x[0], x [1] , snake_block,snake_block]) def message(msg,color): mesg = font_style.render(msg, True, color) dis.blit(mesg, [dis_width/10, dis_height/2]) + def gameloop(): game_over = False game_close = False @@ -51,38 +59,70 @@ def gameloop(): x1_change = 0 y1_change = 0 - foodx = round(random.randrange(0, dis width - ) - - - -while not game_over: - for event in pygame.event.get(): - if event.type == pygame.QUIT: - game_over = True - if event.type == pygame.KEYDOWN: - if event.key == pygame.K_LEFT: - x1_change = -10 - y1_change = 0 - elif event.key == pygame.K_RIGHT: - x1_change = 10 - y1_change = 0 - elif event.key == pygame.K_UP: - y1_change = -10 - 12 x1_change = 0 - elif event.key == pygame.K_DOWN: - y1_change = 10 - x1_change = 0 - if x1 >= dis_width or x1 or y1 >= dis_height or y1 <0: + snake_List = [] + length_of_snake = 1 + + + foodx = round(random.ranrange(0, dis_width - snake_block) / 10) * 10 + foody = round(random.ranrange(0, dis_height - snake_block) / 10) * 10 + + + + + + while not game_over: + while game_close == True: + dis.fill(green) + message("you lost Press Q-Quit or P-Play Again") + pygame.display.update() + + + for event in pygame.event.get(): + if event.type == pygame.QUIT: + game_over = True + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_LEFT: + x1_change = -10 + y1_change = 0 + elif event.key == pygame.K_RIGHT: + x1_change = 10 + y1_change = 0 + elif event.key == pygame.K_UP: + y1_change = -10 + x1_change = 0 + elif event.key == pygame.K_DOWN: + y1_change = 10 + x1_change = 0 + + if x1 >= dis_width or x1 or y1 >= dis_height or y1 <0: + game_close = True - x1 += x1_change - y1 += y1_change - dis.fill() - pygame.draw.recact - - pygame.display.update() + x1 += x1_change + y1 += y1_change + dis.fill(green) + pygame.draw.rect(dis, orange,[foodx, foody, snake_block, snake_block]) - clock.tick(30) - -pygame.quit() -quit() + snake_head = [] + snake_head.append(x1) + snake_head.append(y1) + snake_List.append(snake_head) + if len(snake_List) > length_of_snake: + del snake_List[0] + + for x in snake_List[: -1]: + if x == snake_head: + game_close = True + + my_snake(snake_block, snake_List) + My_Score(length_of_snake -1) + pygame.display.update() + + if x1 == foodx and y1 == foody: + foodx = round(random.randrange(0, dis_width - snake_block) / 10)* 10 + foody = round(random.randrange(0, dis_height - snake_block) / 10)* 10 + length_of_snake += 1 + clock.tick(snake_speed) + pygame.quit() + quit() +gameloop() \ No newline at end of file From 8831102cb5e9a6ed71656a7f0b6d6211228e1a06 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Tue, 8 Mar 2022 19:28:28 -0400 Subject: [PATCH 27/38] Update Ignacio-Guzman.snake.py --- Projects/Ignacio-Guzman.snake.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects/Ignacio-Guzman.snake.py b/Projects/Ignacio-Guzman.snake.py index 31eb77f1d..aa1f81a7a 100644 --- a/Projects/Ignacio-Guzman.snake.py +++ b/Projects/Ignacio-Guzman.snake.py @@ -4,7 +4,7 @@ from random import random from turtle import update, width import pygame - +ig pygame.init() From c229a08823816fd7d6c51be1cf886b495b5ea8b8 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Wed, 23 Mar 2022 14:09:36 -0400 Subject: [PATCH 28/38] dos dos o tres --- Projects/Web-Scraping/import.requests.py | 0 Projects/Web-Scraping/webscrapping Ignacio-Guzman.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Projects/Web-Scraping/import.requests.py create mode 100644 Projects/Web-Scraping/webscrapping Ignacio-Guzman.py diff --git a/Projects/Web-Scraping/import.requests.py b/Projects/Web-Scraping/import.requests.py new file mode 100644 index 000000000..e69de29bb diff --git a/Projects/Web-Scraping/webscrapping Ignacio-Guzman.py b/Projects/Web-Scraping/webscrapping Ignacio-Guzman.py new file mode 100644 index 000000000..e69de29bb From 40e24be0a1bc93db873f8300683cac7fba3a8fe4 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Wed, 23 Mar 2022 15:01:39 -0400 Subject: [PATCH 29/38] dos dos --- Projects/Web-Scraping/ignacio-guzman.py | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Projects/Web-Scraping/ignacio-guzman.py diff --git a/Projects/Web-Scraping/ignacio-guzman.py b/Projects/Web-Scraping/ignacio-guzman.py new file mode 100644 index 000000000..b8ab1eeaa --- /dev/null +++ b/Projects/Web-Scraping/ignacio-guzman.py @@ -0,0 +1,9 @@ +import bs4 +examplefile = open ("example.htmml") +exampleSou = bs4.BeatifulSoup(examplefile.read(), "html.parser") +elems = exampleSoup..select("#author") +type(elems) +print (len(elems)) +type(elems{0}) +str(elem{)} +print(elems){0},getText() \ No newline at end of file From ad7be70cbf7c341c1346e4e5260e37198fe22a09 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Mon, 4 Apr 2022 15:00:55 -0400 Subject: [PATCH 30/38] leve --- Projects/Web-Scraping/import.requests.py | 7 ++++++ Projects/Web-Scraping/we-scarping5.py | 25 +++++++++++++++++++ .../webscrapping Ignacio-Guzman.py | 5 ++++ 3 files changed, 37 insertions(+) create mode 100644 Projects/Web-Scraping/we-scarping5.py diff --git a/Projects/Web-Scraping/import.requests.py b/Projects/Web-Scraping/import.requests.py index e69de29bb..33a1ba740 100644 --- a/Projects/Web-Scraping/import.requests.py +++ b/Projects/Web-Scraping/import.requests.py @@ -0,0 +1,7 @@ +from cgi import print_directory +import requests +res = requests.get(https://www.gutenberg.org/ebooks/67637) +type(res) +res.status_code == requests.code.ok +len(res.text) +print \ No newline at end of file diff --git a/Projects/Web-Scraping/we-scarping5.py b/Projects/Web-Scraping/we-scarping5.py new file mode 100644 index 000000000..f0a1e237a --- /dev/null +++ b/Projects/Web-Scraping/we-scarping5.py @@ -0,0 +1,25 @@ + +import requests +import bs4 + +website = requests.get("https://forecast.weather.gov/MapClick.php?lat=18.3808&lon=-65.9574#.Yks0w27MJQI") +forecast = bs4.BeautifulSoup(website.content , "html.parser") +sevenDay = forecast.find(id="seven-day-forecast") +forecast_items = sevenDay.find_all(class_="tombstone-container") +tonight = forecast_items[1] +# period = tonight.find(class_="period-name").get_text() +# print(period) +print(tonight.prettify()) + print (tonight,prettify()) +R11 +period - tonight. find(class_-"period-namelD-get_text() +12 +print (period) +13 +14 +short desc = tonight. find(class_-"short-desc"').get text() +print (short desc) +25 +temp = tonight. find(class_-"low low-temp").get_text() +16 +print (temp) diff --git a/Projects/Web-Scraping/webscrapping Ignacio-Guzman.py b/Projects/Web-Scraping/webscrapping Ignacio-Guzman.py index e69de29bb..ea77e216c 100644 --- a/Projects/Web-Scraping/webscrapping Ignacio-Guzman.py +++ b/Projects/Web-Scraping/webscrapping Ignacio-Guzman.py @@ -0,0 +1,5 @@ +import requests +res = requests.get(https://www.gutenberg.org/ebooks/67637) +res.raise_for_status() +playfile = open(The History of the Manners and Customs of Ancient Greece Volume II (of 3)) +for \ No newline at end of file From 96f2c8ca6735fc98020d4d406442837dcc2241fe Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 8 Apr 2022 14:05:08 -0400 Subject: [PATCH 31/38] Create web-scrapinng2.py --- Projects/Web-Servers/web-scrapinng2.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Projects/Web-Servers/web-scrapinng2.py diff --git a/Projects/Web-Servers/web-scrapinng2.py b/Projects/Web-Servers/web-scrapinng2.py new file mode 100644 index 000000000..02289fd6a --- /dev/null +++ b/Projects/Web-Servers/web-scrapinng2.py @@ -0,0 +1,16 @@ +import requests +import bs4 + +res = requests.get("https://sanignacio.pr") +res.raise_for_status() + +SanIgnaciopr = bs4.BeautifulSoup(res.text, "html.parser") + +elems = SanIgnaciopr.select("title") + +print(type(SanIgnaciopr)) +print(len(elems)) + +print(str(elems)) + +print(elems[0].getText()) \ No newline at end of file From 6fe4295473b8ac34a02cbb0e3209e6f60e0bcd65 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 8 Apr 2022 14:11:28 -0400 Subject: [PATCH 32/38] n n hjh b --- .../{import.requests.py => web-scraping-ignacio-guzman.py} | 0 Projects/Web-Servers/{web-scrapinng2.py => web-scrapinng3.py} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename Projects/Web-Scraping/{import.requests.py => web-scraping-ignacio-guzman.py} (100%) rename Projects/Web-Servers/{web-scrapinng2.py => web-scrapinng3.py} (100%) diff --git a/Projects/Web-Scraping/import.requests.py b/Projects/Web-Scraping/web-scraping-ignacio-guzman.py similarity index 100% rename from Projects/Web-Scraping/import.requests.py rename to Projects/Web-Scraping/web-scraping-ignacio-guzman.py diff --git a/Projects/Web-Servers/web-scrapinng2.py b/Projects/Web-Servers/web-scrapinng3.py similarity index 100% rename from Projects/Web-Servers/web-scrapinng2.py rename to Projects/Web-Servers/web-scrapinng3.py From 6128fbdd086c376b27f571b4c2d711ba487fdbf4 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 8 Apr 2022 14:12:25 -0400 Subject: [PATCH 33/38] km --- ...craping-ignacio-guzman.py => web-scraping01-ignacio-guzman.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Projects/Web-Scraping/{web-scraping-ignacio-guzman.py => web-scraping01-ignacio-guzman.py} (100%) diff --git a/Projects/Web-Scraping/web-scraping-ignacio-guzman.py b/Projects/Web-Scraping/web-scraping01-ignacio-guzman.py similarity index 100% rename from Projects/Web-Scraping/web-scraping-ignacio-guzman.py rename to Projects/Web-Scraping/web-scraping01-ignacio-guzman.py From 168721f5dab9b88c47e5f95c0f7fdf57944866ea Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 8 Apr 2022 14:13:31 -0400 Subject: [PATCH 34/38] jn --- ...pping Ignacio-Guzman.py => webscrapping02 Ignacio-Guzman02.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Projects/Web-Scraping/{webscrapping Ignacio-Guzman.py => webscrapping02 Ignacio-Guzman02.py} (100%) diff --git a/Projects/Web-Scraping/webscrapping Ignacio-Guzman.py b/Projects/Web-Scraping/webscrapping02 Ignacio-Guzman02.py similarity index 100% rename from Projects/Web-Scraping/webscrapping Ignacio-Guzman.py rename to Projects/Web-Scraping/webscrapping02 Ignacio-Guzman02.py From 84d9fc5645e56c0357b61c41aa6d57473b724bf7 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 8 Apr 2022 14:18:06 -0400 Subject: [PATCH 35/38] 3 --- .../web-scrapinng-ignacio-guzman03.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Projects/{Web-Servers/web-scrapinng3.py => Web-Scraping/web-scrapinng-ignacio-guzman03.py} (100%) diff --git a/Projects/Web-Servers/web-scrapinng3.py b/Projects/Web-Scraping/web-scrapinng-ignacio-guzman03.py similarity index 100% rename from Projects/Web-Servers/web-scrapinng3.py rename to Projects/Web-Scraping/web-scrapinng-ignacio-guzman03.py From adcc6d66a2a7a71a5c94e4476fbb8b52547d927a Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Fri, 8 Apr 2022 14:29:02 -0400 Subject: [PATCH 36/38] msms --- Projects/Web-Scraping/webscrapping02 Ignacio-Guzman02.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Projects/Web-Scraping/webscrapping02 Ignacio-Guzman02.py b/Projects/Web-Scraping/webscrapping02 Ignacio-Guzman02.py index ea77e216c..acec818c1 100644 --- a/Projects/Web-Scraping/webscrapping02 Ignacio-Guzman02.py +++ b/Projects/Web-Scraping/webscrapping02 Ignacio-Guzman02.py @@ -2,4 +2,6 @@ res = requests.get(https://www.gutenberg.org/ebooks/67637) res.raise_for_status() playfile = open(The History of the Manners and Customs of Ancient Greece Volume II (of 3)) -for \ No newline at end of file +for chunk in res.iter_content(10000): + playFile.write(chunk) +playFile.close() \ No newline at end of file From c706c8d3cf0d6de0dbef73892c8f39a558f1ffa9 Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Thu, 21 Apr 2022 08:09:37 -0400 Subject: [PATCH 37/38] 4 --- ...-guzman03.py => web-scrapinng03-ignacio-guzman.py} | 0 Projects/Web-Servers/web-scarping04-ignacio-guzman.py | 11 +++++++++++ 2 files changed, 11 insertions(+) rename Projects/Web-Scraping/{web-scrapinng-ignacio-guzman03.py => web-scrapinng03-ignacio-guzman.py} (100%) create mode 100644 Projects/Web-Servers/web-scarping04-ignacio-guzman.py diff --git a/Projects/Web-Scraping/web-scrapinng-ignacio-guzman03.py b/Projects/Web-Scraping/web-scrapinng03-ignacio-guzman.py similarity index 100% rename from Projects/Web-Scraping/web-scrapinng-ignacio-guzman03.py rename to Projects/Web-Scraping/web-scrapinng03-ignacio-guzman.py diff --git a/Projects/Web-Servers/web-scarping04-ignacio-guzman.py b/Projects/Web-Servers/web-scarping04-ignacio-guzman.py new file mode 100644 index 000000000..70de15f63 --- /dev/null +++ b/Projects/Web-Servers/web-scarping04-ignacio-guzman.py @@ -0,0 +1,11 @@ +import requests +import bs4 +res = requests.get('https://www.sanignacio.pr/sobre-csi/historia-del-colegio') +res.raise_for_status() +SanIgnaciopr = bs4.BeautifulSoup(res.content, 'html.parser') +elems = SanIgnaciopr.select('p') +print(type(SanIgnaciopr)) +print(len(elems)) +print(str(elems)) +print(elems[2].getText()) +print(elems[3].getText()) \ No newline at end of file From 93819510c4d913a6402b5790291d65ac8aeb194d Mon Sep 17 00:00:00 2001 From: CSI-Ignacio-Guzman <89158849+CSI-Ignacio-Guzman@users.noreply.github.com> Date: Thu, 21 Apr 2022 08:11:27 -0400 Subject: [PATCH 38/38] 44 --- .../web-scarping04-ignacio-guzman.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Projects/{Web-Servers => Web-Scraping}/web-scarping04-ignacio-guzman.py (100%) diff --git a/Projects/Web-Servers/web-scarping04-ignacio-guzman.py b/Projects/Web-Scraping/web-scarping04-ignacio-guzman.py similarity index 100% rename from Projects/Web-Servers/web-scarping04-ignacio-guzman.py rename to Projects/Web-Scraping/web-scarping04-ignacio-guzman.py