Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
369 changes: 369 additions & 0 deletions challenge-1 Áine Gates.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,369 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Challenge 1: Tuples\n",
"\n",
"#### Do you know you can create tuples with only one element?\n",
"\n",
"**In the cell below, define a variable `tup` with a single element `\"I\"`.**\n",
"\n",
"*Hint: you need to add a comma (`,`) after the single element. The reason for this is that a tuple is defined as a series of comma-separated values. The parenthesis are not actually needed and are used simply for clarity. Therefore if we try to create a tuple without using a comma Python will simply interpret the element as a single element, be it a string, int or other types.*"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"tup = (\"I\",)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Print the type of `tup`. \n",
"\n",
"Make sure its type is correct (i.e. *tuple* instead of *str*)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"tuple"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(tup)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Now try to append the following elements to `tup`. \n",
"\n",
"Are you able to do it? Explain.\n",
"\n",
"```\n",
"\"r\", \"o\", \"n\", \"h\", \"a\", \"c\", \"k\"\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['I', 'r', 'o', 'n', 'h', 'a', 'c', 'k']\n"
]
}
],
"source": [
"listed_tup = list(tup)\n",
"elements = [\"r\", \"o\", \"n\", \"h\", \"a\", \"c\", \"k\"]\n",
"full_list = listed_tup + elements\n",
"print(full_list)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First make tuple a list. Create a list of the elements and then combine the two lists into one."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How about re-assign a new value to an existing tuple?\n",
"\n",
"Re-assign the following elements to `tup`. Are you able to do it? Explain.\n",
"\n",
"```\n",
"\"I\", \"r\", \"o\", \"n\", \"h\", \"a\", \"c\", \"k\"\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('I', 'r', 'o', 'n', 'h', 'a', 'c', 'k')\n"
]
}
],
"source": [
"tup = tuple(full_list)\n",
"print(tup)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Yes, convert the list back to a tuple."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Split `tup` into `tup1` and `tup2` with 4 elements in each. \n",
"\n",
"`tup1` should be `(\"I\", \"r\", \"o\", \"n\")` and `tup2` should be `(\"h\", \"a\", \"c\", \"k\")`.\n",
"\n",
"*Hint: use positive index numbers for `tup1` assignment and use negative index numbers for `tup2` assignment. Positive index numbers count from the beginning whereas negative index numbers count from the end of the sequence.*\n",
"\n",
"Also print `tup1` and `tup2`."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('I', 'r', 'o', 'n')\n",
"('h', 'a', 'c', 'k')\n"
]
}
],
"source": [
"list_ = list(tup)\n",
"tup1_list = list_[0:4]\n",
"tup2_list = list_[4:8]\n",
"tup1 = tuple(tup1_list)\n",
"tup2 = tuple(tup2_list)\n",
"print(tup1)\n",
"print(tup2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Add `tup1` and `tup2` into `tup3` using the `+` operator.\n",
"\n",
"Then print `tup3` and check if `tup3` equals to `tup`."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('I', 'r', 'o', 'n', 'h', 'a', 'c', 'k')\n"
]
}
],
"source": [
"tup3 = tup1 + tup2\n",
"print(tup3)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Count the number of elements in `tup1` and `tup2`. Then add the two counts together and check if the sum is the same as the number of elements in `tup3`."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tup1_len = len(tup1)\n",
"tup2_len = len(tup2)\n",
"sum_of_len_tups = (tup1_len + tup2_len)\n",
"len_tup3 = len(tup3)\n",
"len_tup3 == sum_of_len_tups"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### What is the index number of `\"h\"` in `tup3`?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'h'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tup3[-4]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Now, use a FOR loop to check whether each letter in the following list is present in `tup3`:\n",
"\n",
"```\n",
"letters = [\"a\", \"b\", \"c\", \"d\", \"e\"]\n",
"```\n",
"\n",
"For each letter you check, print `True` if it is present in `tup3` otherwise print `False`.\n",
"\n",
"*Hint: you only need to loop `letters`. You don't need to loop `tup3` because there is a Python operator `in` you can use. See [reference](https://stackoverflow.com/questions/17920147/how-to-check-if-a-tuple-contains-an-element-in-python).*"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"False\n",
"True\n",
"False\n",
"False\n"
]
}
],
"source": [
"letters = [\"a\", \"b\", \"c\", \"d\", \"e\"]\n",
"\n",
"for i in letters: \n",
" if i in tup3:\n",
" print(True)\n",
" else: \n",
" print(False)\n",
" \n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How many times does each letter in `letters` appear in `tup3`?\n",
"\n",
"Print out the number of occurrence of each letter."
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'a': 1, 'b': 0, 'c': 1, 'd': 0, 'e': 0}\n"
]
}
],
"source": [
"appearances = {}\n",
"\n",
"for i in letters: \n",
" x = tup3.count(i)\n",
" appearances[i] = x\n",
"print(appearances)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**BONUS: use tuple unpacking together with the** `range()` **function to print all the integers from 10 to 20.**"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# Your code here\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.6"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading