diff --git a/src/00_hello.py b/src/00_hello.py index 268998dfc7..eb5a01c18c 100644 --- a/src/00_hello.py +++ b/src/00_hello.py @@ -1 +1,4 @@ -# Print "Hello, world!" to your terminal \ No newline at end of file +# Print "Hello, world!" to your terminal + +message = "Hello, world!" +print(message) \ No newline at end of file diff --git a/src/01_bignum.py b/src/01_bignum.py index c020928d63..a870cedd67 100644 --- a/src/01_bignum.py +++ b/src/01_bignum.py @@ -1,4 +1,4 @@ # Print out 2 to the 65536 power # (try doing the same thing in the JS console and see what it outputs) -# YOUR CODE HERE \ No newline at end of file +print(2**65536) \ No newline at end of file diff --git a/src/02_datatypes.py b/src/02_datatypes.py index 54178a241e..ee5786ef36 100644 --- a/src/02_datatypes.py +++ b/src/02_datatypes.py @@ -13,9 +13,9 @@ # Write a print statement that combines x + y into the integer value 12 -# YOUR CODE HERE +print(x+ int(y)) # Write a print statement that combines x + y into the string value 57 -# YOUR CODE HERE \ No newline at end of file +print(str(x) + y) \ No newline at end of file diff --git a/src/03_modules.py b/src/03_modules.py index 97eba053c7..bfbf913eaa 100644 --- a/src/03_modules.py +++ b/src/03_modules.py @@ -9,23 +9,22 @@ # See docs for the sys module: https://docs.python.org/3.7/library/sys.html # Print out the command line arguments in sys.argv, one per line: -# YOUR CODE HERE +print(sys.argv[0]) # Print out the OS platform you're using: -# YOUR CODE HERE +print(sys.platform) # Print out the version of Python you're using: -# YOUR CODE HERE +print(sys.version) import os # See the docs for the OS module: https://docs.python.org/3.7/library/os.html # Print the current process ID -# YOUR CODE HERE +print(os.getpid()) # Print the current working directory (cwd): -# YOUR CODE HERE - +print(os.getcwd()) # Print out your machine's login name -# YOUR CODE HERE +print(os.getlogin()) diff --git a/src/04_printing.py b/src/04_printing.py index 06aaa7ff16..b94871b025 100644 --- a/src/04_printing.py +++ b/src/04_printing.py @@ -11,7 +11,13 @@ # Using the printf operator (%), print the following feeding in the values of x, # y, and z: # x is 10, y is 2.25, z is "I like turtles!" +yRound = round(y, 2) +print("x is %s, y is %s, z is %s" % (x, yRound, z)) # Use the 'format' string method to print the same thing + +print ("x is {}, y is {}, z is {}".format(x, yRound, z)) -# Finally, print the same thing using an f-string \ No newline at end of file +# Finally, print the same thing using an f-string + +print (f"x is {x}, y is {yRound}, z is {z}") \ No newline at end of file diff --git a/src/05_lists.py b/src/05_lists.py index 6b7d307182..4bf8c04aaa 100644 --- a/src/05_lists.py +++ b/src/05_lists.py @@ -8,22 +8,28 @@ # Change x so that it is [1, 2, 3, 4] # YOUR CODE HERE +x.append(4) print(x) # Using y, change x so that it is [1, 2, 3, 4, 8, 9, 10] # YOUR CODE HERE +x.extend(y) print(x) # Change x so that it is [1, 2, 3, 4, 9, 10] # YOUR CODE HERE +del x[4] print(x) # Change x so that it is [1, 2, 3, 4, 9, 99, 10] # YOUR CODE HERE +x.insert(5, 99) print(x) # Print the length of list x # YOUR CODE HERE - +print(len(x)) # Print all the values in x multiplied by 1000 -# YOUR CODE HERE \ No newline at end of file +# YOUR CODE HERE +for val in x : + print(val*1000) diff --git a/src/06_tuples.py b/src/06_tuples.py index 016e540801..8302d52710 100644 --- a/src/06_tuples.py +++ b/src/06_tuples.py @@ -37,8 +37,13 @@ def dist(a, b): # YOUR CODE HERE t = (1, 2, 5, 7, 99) +def print_tuple(t) : + for item in t: + print(item) print_tuple(t) # Prints 1 2 5 7 99, one per line # Declare a tuple of 1 element then print it -u = (1) # What needs to be added to make this work? -print_tuple(u) +u = (1) +def prints_tuple(u): + print(u) # What needs to be added to make this work? +prints_tuple(u) diff --git a/src/07_slices.py b/src/07_slices.py index 5e0b3bd8ee..18995a2c7c 100644 --- a/src/07_slices.py +++ b/src/07_slices.py @@ -12,26 +12,33 @@ a = [2, 4, 1, 7, 9, 6] # Output the second element: 4: -print() +y= a[1:2] +print(y) # Output the second-to-last element: 9 -print() +x= a[4:5] +print(x) # Output the last three elements in the array: [7, 9, 6] -print() +z = a[3:] +print(z) # Output the two middle elements in the array: [1, 7] -print() +w = a[2:4] +print(w) # Output every element except the first one: [4, 1, 7, 9, 6] -print() +r = a[1:] +print(r) # Output every element except the last one: [2, 4, 1, 7, 9] -print() +t = a[:5] +print(t) # For string s... s = "Hello, world!" # Output just the 8th-12th characters: "world" -print() \ No newline at end of file +v = s[7:12] +print(v) \ No newline at end of file diff --git a/src/08_comprehensions.py b/src/08_comprehensions.py index 67eb742e50..5dc75eefc0 100644 --- a/src/08_comprehensions.py +++ b/src/08_comprehensions.py @@ -3,7 +3,6 @@ They essentially act as a terse and concise way of initializing and populating a list given some expression that specifies how the list should be populated. - Take a look at https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions for more info regarding list comprehensions. """ @@ -11,13 +10,14 @@ # Write a list comprehension to produce the array [1, 2, 3, 4, 5] y = [] +y = [x+1 for x in range(5)] print (y) # Write a list comprehension to produce the cubes of the numbers 0-9: # [0, 1, 8, 27, 64, 125, 216, 343, 512, 729] -y = [] +y = [x**3 for x in range(10)] print(y) @@ -26,7 +26,7 @@ a = ["foo", "bar", "baz"] -y = [] +y = [str(a[x]).upper() for x in range(len(a))] print(y) @@ -36,6 +36,10 @@ x = input("Enter comma-separated numbers: ").split(',') # What do you need between the square brackets to make it work? -y = [] +#long way +#for z in x: +# if int(z) % 2 == 0: +# y.append(z) +y = [z for z in x if int(z) % 2 == 0] print(y) \ No newline at end of file diff --git a/src/09_dictionaries.py b/src/09_dictionaries.py index 687a2ae2dc..a0e3962766 100644 --- a/src/09_dictionaries.py +++ b/src/09_dictionaries.py @@ -4,10 +4,8 @@ you'll find in other languages (though you can also initialize and populate dictionaries using comprehensions just like you can with lists!). - The docs can be found here: https://docs.python.org/3/tutorial/datastructures.html#dictionaries - For this exercise, you have a list of dictionaries. Each dictionary has the following keys: - lat: a signed integer representing a latitude value @@ -35,10 +33,15 @@ # Add a new waypoint to the list # YOUR CODE HERE +waypoints.append({"lat": 52, "lon": -185, "name" : "added waypoint"}) # Modify the dictionary with name "a place" such that its longitude # value is -130 and change its name to "not a real place" # YOUR CODE HERE +waypoints[0].update({"lon": -130, "name": "not a real place"}) # Write a loop that prints out all the field values for all the waypoints -# YOUR CODE HERE \ No newline at end of file +# YOUR CODE HERE +for val in waypoints: + for key in val: + print(key + ":" + str(val[key])) \ No newline at end of file diff --git a/src/10_functions.py b/src/10_functions.py index 5830100c2c..27e5dc3529 100644 --- a/src/10_functions.py +++ b/src/10_functions.py @@ -1,6 +1,11 @@ # Write a function is_even that will return true if the passed-in number is even. # YOUR CODE HERE +def is_even(num): + if num % 2 == 0: + return True + else: + return False # Read a number from the keyboard num = input("Enter a number: ") @@ -9,4 +14,7 @@ # Print out "Even!" if the number is even. Otherwise print "Odd" # YOUR CODE HERE - +if is_even(num): + print("Even!") +else: + print("Odd") \ No newline at end of file diff --git a/src/11_args.py b/src/11_args.py index b23783d530..0e71f4605d 100644 --- a/src/11_args.py +++ b/src/11_args.py @@ -5,6 +5,8 @@ # the sum. This is what you'd consider to be a regular, normal function. # YOUR CODE HERE +def f1(x, y): + return x + y print(f1(1, 2)) @@ -12,7 +14,15 @@ # sum. Google for "python arbitrary arguments" and look for "*args" # YOUR CODE HERE - +def f2(*argv): + temp = 0 + if isinstance(argv[0], list): + return sum(*argv) + else: + for arg in argv: + temp += int(arg) + return temp + print(f2(1)) # Should print 1 print(f2(1, 3)) # Should print 4 print(f2(1, 4, -12)) # Should print -7 @@ -21,6 +31,7 @@ a = [7, 6, 5, 4] # What thing do you have to add to make this work? +# check to see if the argument is a list item or add * in front of a print(f2(a)) # Should print 22 # Write a function f3 that accepts either one or two arguments. If one argument, @@ -28,6 +39,8 @@ # arguments. Google "python default arguments" for a hint. # YOUR CODE HERE +def f3(x, y = 1): + return x + y print(f3(1, 2)) # Should print 3 print(f3(8)) # Should print 9 @@ -42,6 +55,10 @@ # Google "python keyword arguments". # YOUR CODE HERE +def f4(**kwargs): + for key in kwargs: + print(f"key: {key}, value: {kwargs[key]}") + # Should print # key: a, value: 12 @@ -60,4 +77,5 @@ } # What thing do you have to add to make this work? -f4(d) \ No newline at end of file +# add ** in front of d +f4(**d) \ No newline at end of file diff --git a/src/12_scopes.py b/src/12_scopes.py index 339ae1915e..f6c4a8ceb4 100644 --- a/src/12_scopes.py +++ b/src/12_scopes.py @@ -6,10 +6,12 @@ def changeX(): x = 99 + print(x) changeX() # This prints 12. What do we have to modify in changeX() to get it to print 99? +#add print statement for x in changeX() scope print(x) @@ -20,11 +22,12 @@ def outer(): def inner(): y = 999 - + print(y) inner() # This prints 120. What do we have to change in inner() to get it to print # 999? Google "python nested function scope". + # add print statement inside inner scope print(y) outer() \ No newline at end of file diff --git a/src/13_file_io.py b/src/13_file_io.py index f0ddeb0020..2d8a66babd 100644 --- a/src/13_file_io.py +++ b/src/13_file_io.py @@ -1,7 +1,6 @@ """ Python makes performing file I/O simple. Take a look at how to read and write to files here: - https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files """ @@ -9,10 +8,19 @@ # Print all the contents of the file, then close the file # YOUR CODE HERE +with open("foo.txt") as foo: + print(foo.read()) +foo.closed # Open up a file called "bar.txt" (which doesn't exist yet) for # writing. Write three lines of arbitrary content to that file, # then close the file. Open up "bar.txt" and inspect it to make # sure that it contains what you expect it to contain -# YOUR CODE HERE \ No newline at end of file +# YOUR CODE HERE +bar = open("bar.txt", "w+") +bar.write("I opened a new file\nThis file contains some text\nThree lines to be exact") +bar.closed +with open("bar.txt") as bar: + print(bar.read()) +bar.closed \ No newline at end of file