This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Open the file mbox-short.txt and read it line by line. When you find a line that starts with 'From ' like the following line: | |
| # From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008 | |
| # You will parse the From line using split() and print out the second word in the line (i.e. the entire address of the person who sent the message). Then print out a count at the end. | |
| # Hint: make sure not to include the lines that start with 'From:'. Also look at the last line of the sample output to see how to print the count. | |
| # You can download the sample data at http://www.py4e.com/code3/mbox-short.txt | |
| #MY SOLUTION | |
| fh = open(fname) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| fname = input("Enter file name: ") | |
| fh = open(fname, 'r') | |
| lst = list() | |
| for line in fh: | |
| words = line.split() | |
| for word in words: | |
| if word in lst: continue | |
| lst.append(word) | |
| lst.sort() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def even_numbers(maximum): | |
| return_string = "" | |
| for x in range(2, maximum + 1, 2): | |
| return_string += str(x) + " " | |
| return return_string.strip() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #This function prints out a multiplication table (where each number is the result of multiplying the first number of its row by the number at the top of its column). Fill in the blanks so that calling multiplication_table(1, 3) will print out: | |
| #1 2 3 | |
| #2 4 6 | |
| #3 6 9 | |
| def multiplication_table(start, stop): | |
| for x in range(start,stop+1): | |
| for y in range(start,stop+1): | |
| print(str(x*y), end=" ") | |
| print() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def digits(n): | |
| count = 0 | |
| if n == 0: | |
| return 1 | |
| while (n > 0): | |
| count += 1 | |
| n = n // 10 | |
| return count | |
| print(digits(25)) # Should print 2 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #7.2 Write a program that prompts for a file name, then opens that file and reads through the file, looking for lines of the form: | |
| #X-DSPAM-Confidence: 0.8475. Count these lines and extract the floating point values from each of the lines and compute the average of those values and produce an output as shown below. Do not use the sum() function or a variable named sum in your solution. | |
| #You can download the sample data at http://www.py4e.com/code3/mbox-short.txt when you are testing below enter mbox-short.txt as the file name. | |
| fname = input("Enter file name: ") | |
| fh = open(fname) | |
| count = 0 | |
| average = 0 | |
| for line in fh: | |
| if not line.startswith("X-DSPAM-Confidence:") : continue |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #recursions example-2 | |
| def factorial(n): | |
| print("Factoriaal called with " + str(n)) | |
| if n < 2: | |
| print("Returning 1") | |
| return 1 | |
| result = n * factorial(n - 1) | |
| print("Returning " + str(result) + " for factorial of " + str(n)) | |
| return result | |
| factorial(4) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #recursions example-2 | |
| def factorial(n): | |
| print("Factoriaal called with " + str(n)) | |
| if n < 2: | |
| print("Returning 1") | |
| return 1 | |
| result = n * factorial(n - 1) | |
| print("Returning " + str(result) + " for factorial of " + str(n)) | |
| return result | |
| factorial(4) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #using recursion | |
| def sum_positive_numbers(n): | |
| if n <= 1: | |
| return n | |
| return n + sum_positive_numbers(n-1) | |
| print(sum_positive_numbers(3)) # Should be 6 | |
| print(sum_positive_numbers(5)) # Should be 15 | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| def is_power_of(number, base): | |
| # Base case: when number is smaller than base. | |
| number = number/base | |
| if number < base: | |
| # If number is equal to 1, it's a power (base**0). | |
| return False | |
| else: | |
| return True | |
| # Recursive case: keep dividing number by base. |