The following repository contains solutions to Python problem sheets for the module Emerging Technologies. The module is taught to undergraduate students at GMIT in the Department of Computer Science and Applied Physics. The lecturer is Ian McLoughlin.
To clone this repository and run the solutions, do the following:
In the command line change to a directory:
cd <directory>
Clone the repository:
git clone https://github.com/DillonWard/Python-problem-sheet-one.git
Change directory into the cloned folder:
cd <folder name>
*To ensure you're in the right folder, you can run the ls command to display all the files inside the folder.
Files ending with 'py' are Python files.*
Run the program:
py <program name>.py
Python is an interpreted, interactive, object-oriented, widely used programming language that emphasizes code readability and allows programmers to express concepts in less lines of code in comparisson to other languages.
Python is popular for web development, big data, science, and scripting.
Python comes with it's own standard libraries, and has a wide range of third-party libraries.
- Easy to learn/read
- Supports multiple platforms
- Object Orientated
- Large number of resources and libraries
- Uses less lines of code
- Slow
- Limitations with database access
- Absence from Mobile Applications
Python was designed to be easy to read and understand. Python's layout has helped it become the most popular introductory language to new programmers. Since Python has a wide range of third-party libraries, it has a gradual learning curve that helps you build off the foundation of the basic funcionalitites.
The implication with Python is that anyone can come along and read it almost like English, which makes it easier for coding beginners. Since Python is a very high-level language, it is easy to read and understand.
To install Python, you can head over to the Python website and download the installer. The following solutions were coded using Python 3.
The following list contains problems and solutions to the worksheet. Raw code can be found by following the solutions listed below.
Write a program that prints “Hello, world!” to the screen.
Write a program that prints the current time and date to the console.
Write a program that prints the numbers from 1 to 100, except for the following conditions. For multiples of three print “Fizz” instead of the number, and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.
Write a function that calculates the sum of the digits of the factorial of a number. n! means n x (n − 1) … x 3 x 2 x 1. For example, 10! = 10 x 9 x … x 3 x 2 x 1 = 3628800, and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27. Find the sum of the digits in the number 100!
Write a guessing game where the user must guess a secret number. After every guess the program tells the user whether their number was too large or too small. At the end the number of tries needed should be printed. It counts only as one try if they input the same number multiple times consecutively.
Write a function that returns the largest and smallest elements in a list.
Write a function that tests whether a string is a palindrome.
Write a function that merges two sorted lists into a new sorted list. [1,4,6],[2,3,5] → [1,2,3,4,5,6].
Implement the square root function using Newton’s method. In this case, Newton’s method is to approximate sqrt(x) by picking a starting point z and then repeating:
z_next = z - ((z*z - x) / (2 * z))
To begin with, just repeat that calculation 10 times and see how close you get to the answer for various values (1, 2, 3, …). Next, change the loop condition to stop once the value has stopped changing (or only changes by a very small delta). How close are you to the math.sqrt value?
Write a function to reverse a string.