Add new exercises and a Caeser Cipher tool v1.0
This commit is contained in:
		
							parent
							
								
									bc5c9c0b77
								
							
						
					
					
						commit
						fdb7bccb73
					
				
							
								
								
									
										56
									
								
								caeser-cipher.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								caeser-cipher.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,56 @@ | ||||
| import re # Import Regex tools | ||||
| import string # Import string tools | ||||
| ciphertext = input("Please type in your cipher text:") # Set variable cipertext to the input from user. | ||||
| ciphertext = re.sub (r'([^a-zA-Z ]+?)', '', ciphertext) # Remove all non-letters. | ||||
| ciphertext = ciphertext.lower() # Make it all lowercase. | ||||
| letters = list(string.ascii_lowercase) # Use a list of lowercase letters. https://stackoverflow.com/questions/43918437/how-to-iterate-through-the-alphabet | ||||
| letterCount = 0 # Set variable for keeping track of which letter in the ciphertext we're on. | ||||
| letterPos = 0 # Set variable for keeping track of the letter's position in the alphabet. | ||||
| answer = "" # The solution. | ||||
| shiftNum = input("Please enter the shift used:") # Get input | ||||
| 
 | ||||
| for c in ciphertext: # For every letter in the ciphertext | ||||
|     #Upletters = list(string.ascii_uppercase) | ||||
|     while letterPos < 26: # While the letter's position in the alphabet is less than | ||||
|         if ciphertext[letterCount] == letters[letterPos]: # Match the letter in the ciphertext to a letter in the alphabet and once they match, continue. | ||||
|             letter = int(letterPos) + int(shiftNum) # Take the position of the letter and the shift number.  NOTE: catch spaces. | ||||
|             if letter > 25: | ||||
|                 letter = letter - 26 | ||||
|             if letter < 0: | ||||
|                 letter = letter + 26 | ||||
|             answer = answer + letters[letter] | ||||
| 
 | ||||
|         letterPos = letterPos + 1 | ||||
|     if letterPos > 25: | ||||
|         letterPos = letterPos - 26 | ||||
| 
 | ||||
|     letterCount = letterCount + 1 | ||||
| 
 | ||||
| print("\nYour enciphered text is: " + answer) | ||||
| 
 | ||||
| #alphabet = '"abcd","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"' #old alphabet string for an array in JS | ||||
| #print(re.sub (r'([^a-zA-Z]+?)', '', alphabet)) # strip everything except letters | ||||
| 
 | ||||
| ''' | ||||
| On line #4 | ||||
| This feeds a regex to re.sub literally "If it doesn't match letters or spaces, convert it to nothing, process this variable." | ||||
| Scrub extranous info or typos. | ||||
| r marks it as a string literal (no escaping needed) | ||||
| [] indicates a set of characters, special characters become normal. | ||||
| ^ = start of the string. In a set like this, it matches anything that is not in the string. | ||||
| a-z matches lowercase letters. | ||||
| Z-Z matches caps letters | ||||
|  matches a space | ||||
| +? essential means "try to match this till you can't" | ||||
| More info: https://docs.python.org/3/library/re.html | ||||
| ''' | ||||
| 
 | ||||
| ''' | ||||
| ### Stackoverflow thanks to: | ||||
| First char of string: https://stackoverflow.com/questions/48973202/how-to-get-first-char-of-string-in-python | ||||
| Length of string: https://stackoverflow.com/questions/4967580/how-to-get-the-size-of-a-string-in-python | ||||
| Regex to scrub var of extranous info/symbols: https://stackoverflow.com/questions/44315941/regex-to-strip-all-numbers-and-special-characters-but-space-and-letters | ||||
| Proper syntax for if blocks: https://stackoverflow.com/questions/37376516/python-check-if-multiple-variables-have-the-same-value | ||||
| https://www.tutorialspoint.com/python/python_if_else.htm | ||||
| Find substring in a string: https://stackoverflow.com/questions/3437059/does-python-have-a-string-contains-substring-method | ||||
| ''' | ||||
							
								
								
									
										21
									
								
								ex10-breakallthngs.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								ex10-breakallthngs.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| tabby_cat "\tI'm tabbed in." | ||||
| persian_cat "I'm split\non a line." | ||||
| backslash_cat "I'm \\ a \\ cat." | ||||
| 
 | ||||
| fat_cat = | ||||
| I'll do a list: | ||||
| \asdft* Cat food | ||||
| \t* Fishes | ||||
| \tasdf* Catnip\n\t* Grass | ||||
| \asdt* Yo \adfsa Yasfoaa\azbcow\zznasabasbbdrwhat\kvcow | ||||
| \U0001F60 | ||||
| 
 | ||||
| 
 | ||||
| printtabby_cat) | ||||
| printpersian_cat) | ||||
| printbackslash_cat) | ||||
| printfat_cat) | ||||
| 
 | ||||
|  1. Got them on a study sheet minus hex, others not explained. | ||||
|  2. don't know | ||||
|  3. Done. See fat_cat | ||||
							
								
								
									
										21
									
								
								ex10.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								ex10.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | ||||
| tabby_cat = "\tI'm tabbed in." | ||||
| persian_cat = "I'm split\non a line." | ||||
| backslash_cat = "I'm \\ a \\ cat." | ||||
| 
 | ||||
| fat_cat = ''' | ||||
| I'll do a list: | ||||
| \t* Cat food | ||||
| \t* Fishes | ||||
| \t* Catnip\n\t* Grass | ||||
| \t* Yo \a Yo\bcow\rwhat\vcow | ||||
| \U0001F60D | ||||
| ''' | ||||
| 
 | ||||
| print(tabby_cat) | ||||
| print(persian_cat) | ||||
| print(backslash_cat) | ||||
| print(fat_cat) | ||||
| 
 | ||||
| # 1. Got them on a study sheet - hex, others not explained. | ||||
| # 2. don't know | ||||
| # 3. Done. See fat_cat | ||||
							
								
								
									
										34
									
								
								ex11_Fun.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								ex11_Fun.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| # I had some fun with this one. | ||||
| 
 | ||||
| shortInches = False # set shortInches to False | ||||
| 
 | ||||
| #print("How old are you?", end=' ') | ||||
| #age = input() | ||||
| height = input("How tall are you? Please format your height like 5'9 :") | ||||
| #print("How much do you weigh?", end=' ') | ||||
| #weight = input() | ||||
| 
 | ||||
| #print(f"So, you're {age} old, {height} tall and {weight} heavy.") | ||||
| first = height[0] # Get first letter of the height variable. | ||||
| second = height[1] # Get second letter of the height variable. | ||||
| third = height[2] # Get third letter of the height variable. | ||||
| last = height[-1] # Get last letter of the height variable. | ||||
| 
 | ||||
| if height[2] == height[-1]: # If the third and last letters of height are the same, set shortInches to true. | ||||
|     shortInches = True | ||||
| 
 | ||||
| #like = input("Do you like this?") | ||||
| #print(like) | ||||
| #1. Done. | ||||
| #2 & #3 That was a lot of fun. | ||||
| 
 | ||||
| if shortInches == True: # If shortInches is true, then print this | ||||
|     print("You are " + first + " feet " + third + " inches tall.") | ||||
| else: # Otherwise, print this | ||||
|     print("You are " + first + " feet " + third + last + " inches tall.") | ||||
| 
 | ||||
| if "\"" in height: # This is good fun. If the user uses inches instead of feet by accident, let them know sarcastically. | ||||
|     print("Wow! You are " + height[0] + " inches tall. That's SO TALL!") | ||||
| 
 | ||||
| if not "\"" in height: # Otherwise, it's not that interesting. if not | ||||
|     print("A boring normal height.") | ||||
							
								
								
									
										29
									
								
								ex7.py
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								ex7.py
									
									
									
									
									
								
							| @ -1,29 +0,0 @@ | ||||
| print("Mary had a little lamb.") # Print string | ||||
| print("Its fleece was white as {}.".format('snow')) # Print string with format. | ||||
| print("And everywhere that Mary went.") # Print string. | ||||
| 
 | ||||
| with open('out.txt', 'w') as f: | ||||
|     print("." * 1000000000, file=f)  # A little fun with a billion dots. | ||||
| 
 | ||||
| end1 = "C" # Set variable to a string. | ||||
| end2 = "h" # Set variable to a string. | ||||
| end3 = "e" # Set variable to a string. | ||||
| end4 = "e" # Set variable to a string. | ||||
| end5 = "s" # Set variable to a string. | ||||
| end6 = "e" # Set variable to a string. | ||||
| end7 = "B" # Set variable to a string. | ||||
| end8 = "u" # Set variable to a string. | ||||
| end9 = "r" # Set variable to a string. | ||||
| end10 = "g" # Set variable to a string. | ||||
| end11 = "e" # Set variable to a string. | ||||
| end12 = "r" # Set variable to a string. | ||||
| 
 | ||||
| 
 | ||||
| # watch end = ' ' at the end. try removing it to see what happens. | ||||
| print(end1 + end2 + end3 + end4 + end5 + end6, end=' ') # Print combined variables without a space in between on the same line as the next set of them with a space in between: | ||||
| print(end7 + end8 + end9 + end10 + end11 + end12) # Print variables without spaces in between | ||||
| 
 | ||||
| #1. Done | ||||
| #2. Done | ||||
| 
 | ||||
| # Break it. | ||||
							
								
								
									
										14
									
								
								ex8.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								ex8.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| formatter = "{} {} {} {} {}" # Create 4 slots to fill. | ||||
| 
 | ||||
| print(formatter.format(1, 2, 3, 4, 5)) # Fill them with 1, 2, 3, 4 | ||||
| print(formatter.format("one", "two", "three", "four", "five")) # Spell it out. | ||||
| print(formatter.format(True, False, False, True, False)) # True, false, false, true | ||||
| print(formatter.format(formatter, formatter, formatter, formatter, formatter)) # Print itself 4 times. | ||||
| print(formatter.format( | ||||
| 
 | ||||
|     "Try your", | ||||
|     "Own text here", | ||||
|     "Maybe a poem", | ||||
|     "Or a song about fear", | ||||
|     "Or a song of redemption." | ||||
| )) # One long string, don't forget the commas. | ||||
							
								
								
									
										16
									
								
								ex9-mod.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								ex9-mod.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | ||||
| # Here's some new strange stuff, remember type it exactly. | ||||
| 
 | ||||
| Cows = "Fred Mary Freddy Faith Freddy Jr. Felicity" | ||||
| Dogs = "\n\nCharlie\nChocolate\nGeorge\nCharlie Jr.\nTerri\nFifi\nGoldie\nTimmy\nTabby" | ||||
| 
 | ||||
| print("Here are the dogs: ", Dogs) | ||||
| print("\nHere are the cows: ", Cows) | ||||
| 
 | ||||
| print(""" | ||||
|     But who likes Stubbly Grass Nibbles? | ||||
| 
 | ||||
|     Why, Toby of course. | ||||
|     And Blueby is obsessed. The shopping is strong with this one. | ||||
|     Toby Jr. would rather invent a Stubbly Grass Generator. | ||||
|     Bubbles loves clothes, but refuses to go on the ridiculous shopping sprees \n    of her mother. | ||||
|     """) | ||||
							
								
								
									
										14
									
								
								ex9.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								ex9.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | ||||
| # Here's some new strange stuff, remember type it exactly. | ||||
| 
 | ||||
| days = "Mon Tue Wed Thu Fri Sat Sun" | ||||
| months = "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug" | ||||
| 
 | ||||
| print("Here are the days: ", days) | ||||
| print("Here are the months: ", months) | ||||
| 
 | ||||
| print(""" | ||||
|     There's something going on here. | ||||
|     With the three double-quotes. | ||||
|     We'll be able to type as much as we like. | ||||
|     Even 4 lines if we want, or 5, or 6. | ||||
|     """) | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user