{"cells":[{"cell_type":"markdown","id":"4b63156b-e570-4612-a4ef-13a6c34f5b74","metadata":{},"outputs":[],"source":["<p style=\"text-align:center\">\n","    <a href=\"https://skills.network\" target=\"_blank\">\n","    <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/assets/logos/SN_web_lightmode.png\" width=\"300\" alt=\"Skills Network Logo\">\n","    </a>\n","</p>\n","\n","\n","# Working with Types in Python\n","\n","\n","Estimated time needed: **10** minutes\n","    \n","\n","## Objectives\n","\n","After completing this lab you will be able to:\n","\n","* Work with various types of data in Python\n","* Convert the data from one type to another\n"]},{"cell_type":"markdown","id":"d689bb81-278b-4843-b34e-a8e18e2b3520","metadata":{},"outputs":[],"source":["<h2>Table of Contents</h2>\n","<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n","    <ul>\n","            <a href=\"#Types-of-objects-in-Python\">Types of objects in Python</a>\n","            <ul>\n","                <li><a href=\"#Integers\">Integers</a></li>\n","                <li><a href=\"#Floats\">Floats</a></li>\n","                <li><a href=\"#Converting-from-one-object-type-to-a-different-object-type\">Converting from one object type to a different object type</a></li>\n","                <li><a href=\"#Boolean-data-type\">Boolean data type</a></li>\n","                <li><a href=\"#Exercise:-Types\">Exercise: Types</a></li>\n","            </ul>\n","        </li>\n","        </ul>\n","</div>\n","\n","<hr>\n"]},{"cell_type":"markdown","id":"237bdb92-4fe8-40ba-b782-c6fb2cf04d86","metadata":{},"outputs":[],"source":["## Types of objects in Python\n"]},{"cell_type":"markdown","id":"c7bfcf57-729a-4bd9-8850-2e177c1539df","metadata":{},"outputs":[],"source":["<p>Python is an object-oriented language. There are many different types of objects in Python. Let's start with the most common object types: <i>strings</i>, <i>integers</i> and <i>floats</i>. Anytime you write words (text) in Python, you're using <i>character strings</i> (strings for short). The most common numbers, on the other hand, are <i>integers</i> (e.g. -1, 0, 100) and <i>floats</i>, which represent real numbers (e.g. 3.14, -42.0).</p>\n"]},{"cell_type":"markdown","id":"39cfd308-b1e7-4ccb-a03d-bcf8e2385028","metadata":{},"outputs":[],"source":["<a align=\"center\">\n","    <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-PY0101EN-SkillsNetwork/labs/Module%201/images/TypesObjects.png\" width=\"600\">\n","</a>\n"]},{"cell_type":"markdown","id":"330cd543-6726-42d0-a37d-830ed5114332","metadata":{},"outputs":[],"source":["<p>The following code cells contain some examples.</p>\n"]},{"cell_type":"code","id":"441502b9-f2ff-44d9-bb71-a758d21599ab","metadata":{},"outputs":[],"source":["# Integer\n\n11"]},{"cell_type":"code","id":"da05a56d-de99-4ff6-933e-cedc437118f7","metadata":{},"outputs":[],"source":["# Float\n\n2.14"]},{"cell_type":"code","id":"deaaf0cc-c285-42b2-81d8-a500dd40c787","metadata":{},"outputs":[],"source":["# String\n\n\"Hello, Python 101!\""]},{"cell_type":"markdown","id":"22fe6442-89f2-45c5-a8b5-9063644f105e","metadata":{},"outputs":[],"source":["<p>You can get Python to tell you the type of an expression by using the built-in <code>type()</code> function. You'll notice that Python refers to integers as <code>int</code>, floats as <code>float</code>, and character strings as <code>str</code>.</p>\n"]},{"cell_type":"code","id":"467d61d2-2ffb-489b-b2dc-38360f32f425","metadata":{},"outputs":[],"source":["# Type of 12\n\ntype(12)"]},{"cell_type":"code","id":"a797eb7c-c8cc-454d-ae8c-4b340e207020","metadata":{},"outputs":[],"source":["# Type of 2.14\n\ntype(2.14)"]},{"cell_type":"code","id":"a02f4a83-5aeb-4d82-934b-7430b1a19f09","metadata":{},"outputs":[],"source":["# Type of \"Hello, Python 101!\"\n\ntype(\"Hello, Python 101!\")"]},{"cell_type":"markdown","id":"9bec2e33-6aaa-4bd6-8ce5-d2ed406d25ac","metadata":{},"outputs":[],"source":["<p>In the code cell below, use the <code>type()</code> function to check the object type of <code>12.0</code>.\n"]},{"cell_type":"code","id":"a6a25010-be95-484d-af70-8fbcb1f828bf","metadata":{},"outputs":[],"source":["# Write your code below. Don't forget to press Shift+Enter to execute the cell\n"]},{"cell_type":"markdown","id":"ca65ac8e-e192-49ee-a42b-5982e5faa473","metadata":{},"outputs":[],"source":["<details><summary>Click here for the solution</summary>\n","\n","```python\n","type(12.0)\n","\n","```\n","\n","</details>\n"]},{"cell_type":"markdown","id":"20b28c9b-43ae-4551-be45-f4f4fe31aa76","metadata":{},"outputs":[],"source":["### Integers\n"]},{"cell_type":"markdown","id":"d5442b63-678b-4e84-bfd6-880aa462d0d3","metadata":{},"outputs":[],"source":["<p>Here are some examples of integers. Integers can be negative or positive numbers:</p>\n"]},{"cell_type":"markdown","id":"9127d727-0fdd-482a-8269-e7d78d1a5ce7","metadata":{},"outputs":[],"source":["<a align=\"center\">\n","    <img src=\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-PY0101EN-SkillsNetwork/labs/Module%201/images/TypesInt.png\" width=\"600\">\n","</a>\n"]},{"cell_type":"markdown","id":"ab67258c-d33f-4c95-ac7c-f55f89321cb2","metadata":{},"outputs":[],"source":["<p>We can verify this is the case by using, you guessed it, the <code>type()</code> function:\n"]},{"cell_type":"code","id":"23be65ff-7bae-4ba4-8d42-cb08e2b89406","metadata":{},"outputs":[],"source":["# Print the type of -1\n\ntype(-1)"]},{"cell_type":"code","id":"7b4f147f-f84b-4876-a32e-4d43950f58dc","metadata":{},"outputs":[],"source":["# Print the type of 4\n\ntype(4)"]},{"cell_type":"code","id":"fb4843a1-5c17-493d-ac9a-53501c27c74f","metadata":{},"outputs":[],"source":["# Print the type of 0\n\ntype(0)"]},{"cell_type":"markdown","id":"b2015388-d6a3-4455-8e09-527377c8923d","metadata":{},"outputs":[],"source":["### Floats\n"]},{"cell_type":"markdown","id":"306c5f30-c007-4b12-887a-f878fac5e64e","metadata":{},"outputs":[],"source":["<p>Floats represent real numbers; they are a superset of integer numbers but also include \"numbers with decimals\". There are some limitations when it comes to machines representing real numbers, but floating point numbers are a good representation in most cases. You can learn more about the specifics of floats for your runtime environment, by checking the value of <code>sys.float_info</code>. This will also tell you what's the largest and smallest number that can be represented with them.</p>\n","\n","<p>Once again, can test some examples with the <code>type()</code> function:\n"]},{"cell_type":"code","id":"046923c7-58f0-4953-b5d0-9267599fa1e4","metadata":{},"outputs":[],"source":["# Print the type of 1.0\n\ntype(1.0) # Notice that 1 is an int, and 1.0 is a float"]},{"cell_type":"code","id":"85b7d61e-cdf6-4566-a6dd-32ad46946737","metadata":{},"outputs":[],"source":["# Print the type of 0.5\n\ntype(0.5)"]},{"cell_type":"code","id":"ff05e364-9135-4a2a-b811-11c867f4f339","metadata":{},"outputs":[],"source":["# Print the type of 0.56\n\ntype(0.56)"]},{"cell_type":"code","id":"aa1efaa2-ea3b-43f5-b7a4-55424fde59c3","metadata":{},"outputs":[],"source":["# System settings about float type\nimport sys\nsys.float_info"]},{"cell_type":"markdown","id":"56d012cd-523c-4bef-9fa4-9bd6d6932e05","metadata":{},"outputs":[],"source":["### Converting from one object type to a different object type\n"]},{"cell_type":"markdown","id":"d1fd517f-74e8-46db-86ad-ed4b9da9b649","metadata":{},"outputs":[],"source":["<p>You can change the type of the object in Python; this is called typecasting. For example, you can convert an <i>integer</i> into a <i>float</i> (e.g. 2 to 2.0).</p>\n","<p>Let's try it:</p>\n"]},{"cell_type":"code","id":"5cd6a5f8-7b37-4b83-a84d-a38bc3e6332c","metadata":{},"outputs":[],"source":["# Verify that this is an integer\n\ntype(2)"]},{"cell_type":"markdown","id":"20f1e7f0-7bf7-40a5-aae4-cfd396db30e8","metadata":{},"outputs":[],"source":["#### Converting integers to floats\n","<p>Let's cast integer 2 to float:</p>\n"]},{"cell_type":"code","id":"f7270c2b-b175-497c-98c4-c9b71c60d4bf","metadata":{},"outputs":[],"source":["# Convert 2 to a float\n\nfloat(2)"]},{"cell_type":"code","id":"2a583c59-6cd4-444d-91df-365cd109e702","metadata":{},"outputs":[],"source":["# Convert integer 2 to a float and check its type\n\ntype(float(2))"]},{"cell_type":"markdown","id":"8c01246f-34bd-4536-a913-da7d589c25dc","metadata":{},"outputs":[],"source":["<p>When we convert an integer into a float, we don't really change the value (i.e., the significand) of the number. However, if we cast a float into an integer, we could potentially lose some information. For example, if we cast the float 1.1 to integer we will get 1 and lose the decimal information (i.e., 0.1):</p>\n"]},{"cell_type":"code","id":"51e89f47-4d11-4aa2-8eda-c541f230387c","metadata":{},"outputs":[],"source":["# Casting 1.1 to integer will result in loss of information\n\nint(1.1)"]},{"cell_type":"markdown","id":"dfa021dd-2729-419d-8481-d6eb1a7dc796","metadata":{},"outputs":[],"source":["<h4>Converting from strings to integers or floats</h4>\n"]},{"cell_type":"markdown","id":"d610fb3c-cba6-4435-9182-cbb95bb2baa6","metadata":{},"outputs":[],"source":["<p>Sometimes, we can have a string that contains a number within it. If this is the case, we can cast that string that represents a number into an integer using <code>int()</code>:</p>\n"]},{"cell_type":"code","id":"55753a23-b6a4-41cb-a79a-4e6c94e73836","metadata":{},"outputs":[],"source":["# Convert a string into an integer\n\nint('1')"]},{"cell_type":"markdown","id":"a155b5b8-f512-4849-a2f1-f4355be252b3","metadata":{},"outputs":[],"source":["<p>But if you try to do so with a string that is not a perfect match for a number, you'll get an error. Try the following:</p>\n"]},{"cell_type":"code","id":"3c9ea504-9533-421f-b62b-2f4e1af91dd8","metadata":{},"outputs":[],"source":["# Convert a string into an integer with error\n\nint('1 or 2 people')"]},{"cell_type":"markdown","id":"59157338-ae48-4b1d-8279-f0dd69f51852","metadata":{},"outputs":[],"source":["<p>You can also convert strings containing floating point numbers into <i>float</i> objects:</p>\n"]},{"cell_type":"code","id":"31817561-e41a-4c43-8dbf-b5c1222f29c0","metadata":{},"outputs":[],"source":["# Convert the string \"1.2\" into a float\n\nfloat('1.2')"]},{"cell_type":"markdown","id":"8323fe00-2e3d-4f93-8017-db005b1406ac","metadata":{},"outputs":[],"source":["<hr/>\n","<div class=\"alert alert-success alertsuccess\" style=\"margin-top: 20px\">\n","    [Tip:] Note that strings can be represented with single quotes (<code>'1.2'</code>) or double quotes (<code>\"1.2\"</code>), but you can't mix both (e.g., <code>\"1.2'</code>).\n","</div>\n","<hr/>\n"]},{"cell_type":"markdown","id":"b9d62031-76ea-422d-85cf-dc3213b5b88f","metadata":{},"outputs":[],"source":["<h4>Converting numbers to strings</h4>\n"]},{"cell_type":"markdown","id":"184fd9b7-e901-49e0-bf33-c2c964e61321","metadata":{},"outputs":[],"source":["<p>If we can convert strings to numbers, it is only natural to assume that we can convert numbers to strings, right?</p>\n"]},{"cell_type":"code","id":"c7805e10-8845-4a87-8830-2f272423d80a","metadata":{},"outputs":[],"source":["# Convert an integer to a string\n\nstr(1)\n"]},{"cell_type":"markdown","id":"c3971f74-c502-453c-9ae1-576fc8792d29","metadata":{},"outputs":[],"source":["<p>And there is no reason why we shouldn't be able to make floats into strings as well:</p> \n"]},{"cell_type":"code","id":"e8a887de-8914-4edd-b56f-4bd9ec4808f3","metadata":{},"outputs":[],"source":["# Convert a float to a string\n\nstr(1.2)"]},{"cell_type":"markdown","id":"70833a72-274b-46e3-898e-76931b78fb3c","metadata":{},"outputs":[],"source":["### Boolean data type\n"]},{"cell_type":"markdown","id":"636476be-3973-4a0a-8db5-6dd60dd6b076","metadata":{},"outputs":[],"source":["<p><i>Boolean</i> is another important type in Python. An object of type <i>Boolean</i> can take on one of two values: <code>True</code> or <code>False</code>:</p>\n"]},{"cell_type":"code","id":"7afbde8d-aa46-4ca1-af8a-cae9f0aa5f7e","metadata":{},"outputs":[],"source":["# Value true\n\nTrue"]},{"cell_type":"markdown","id":"98f832f6-9a5b-4b44-8674-b424d80d37c9","metadata":{},"outputs":[],"source":["\n","<p>Notice that the value <code>True</code> has an uppercase \"T\". The same is true for <code>False</code> (i.e. you must use the uppercase \"F\").</p>\n"]},{"cell_type":"code","id":"9d2a774c-41a7-45bc-b775-999b3e49e21f","metadata":{},"outputs":[],"source":["# Value false\n\nFalse"]},{"cell_type":"markdown","id":"2eb63f0f-356f-4471-a2de-c6cbeab6c245","metadata":{},"outputs":[],"source":["<p>When you ask Python to display the type of a boolean object it will show <code>bool</code> which stands for <i>boolean</i>:</p> \n"]},{"cell_type":"code","id":"58b0ec79-4f85-4a5c-a4a3-1e7171ef395d","metadata":{},"outputs":[],"source":["# Type of True\n\ntype(True)"]},{"cell_type":"code","id":"e1d5c09a-a682-43ad-aa26-148072dc8e43","metadata":{},"outputs":[],"source":["# Type of False\n\ntype(False)"]},{"cell_type":"markdown","id":"2e7f352c-da5d-4e8d-8112-302d0455748f","metadata":{},"outputs":[],"source":["<p>We can cast boolean objects to other data types. If we cast a boolean with a value of <code>True</code> to an integer or float we will get a one. If we cast a boolean with a value of <code>False</code> to an integer or float we will get a zero. Similarly, if we cast a 1 to a Boolean, you get a <code>True</code>. And if we cast a 0 to a Boolean we will get a <code>False</code>. Let's give it a try:</p> \n"]},{"cell_type":"code","id":"d04868cc-cf4e-45cb-86d1-31b35f8886c2","metadata":{},"outputs":[],"source":["# Convert True to int\n\nint(True)"]},{"cell_type":"code","id":"486934c3-3895-40fd-9fec-2d652ede544d","metadata":{},"outputs":[],"source":["# Convert 1 to boolean\n\nbool(1)"]},{"cell_type":"code","id":"93fd1ea5-ea81-47e9-9707-e664725257e4","metadata":{},"outputs":[],"source":["# Convert 0 to boolean\n\nbool(0)"]},{"cell_type":"code","id":"36997d22-4688-4636-87ca-62224c564322","metadata":{},"outputs":[],"source":["# Convert True to float\n\nfloat(True)"]},{"cell_type":"markdown","id":"f8978229-4285-4fa8-a960-95bbf7a03ddd","metadata":{},"outputs":[],"source":["### Exercise: Types\n"]},{"cell_type":"markdown","id":"839bffbd-1eef-477f-ad34-7c68095a443c","metadata":{},"outputs":[],"source":["<p>What is the data type of the result of: <code>6 / 2</code>?</p>\n"]},{"cell_type":"code","id":"4ffa4df5-8f73-49d5-b101-a99d398c683c","metadata":{},"outputs":[],"source":["# Write your code below. Don't forget to press Shift+Enter to execute the cell\n"]},{"cell_type":"markdown","id":"14b47dcc-aa6f-4cfa-980a-b650a5da4335","metadata":{},"outputs":[],"source":["<details><summary>Click here for the solution</summary>\n","\n","```python\n","type(6/2) # float\n","\n","```\n","\n","</details>\n"]},{"cell_type":"markdown","id":"a634b59e-39ff-4625-b07c-0833d2adf52b","metadata":{},"outputs":[],"source":["<p>What is the type of the result of: <code>6 // 2</code>? (Note the double slash <code>//</code>.)</p>\n"]},{"cell_type":"code","id":"76f6d093-c896-4364-9b58-3ea3cfb4d7f4","metadata":{},"outputs":[],"source":["# Write your code below. Don't forget to press Shift+Enter to execute the cell\n"]},{"cell_type":"markdown","id":"4eca69c8-62f2-4411-82a8-0ce7fd06ee7c","metadata":{},"outputs":[],"source":["<details><summary>Click here for the solution</summary>\n","\n","```python\n","type(6//2) # int, as the double slashes stand for integer division \n","\n","```\n","\n","</details>\n"]},{"cell_type":"markdown","id":"2c662d7f-05a4-4010-aaa8-5116eaceb2ce","metadata":{},"outputs":[],"source":["What is the type of the result of: <code>\"Hello, World!\"</code>\n"]},{"cell_type":"code","id":"a44a08ee-209c-41eb-b967-e874d9bbc18d","metadata":{},"outputs":[],"source":["# Write your code below. Don't forget to press Shift+Enter to execute the cell\n"]},{"cell_type":"markdown","id":"c8275507-3f76-429e-9ac5-e802c84c9841","metadata":{},"outputs":[],"source":["<details><summary>Click here for the solution</summary>\n","\n","```python\n","\n","type(\"Hello, World!\") \n","\n","```\n","\n","</details>\n"]},{"cell_type":"markdown","id":"57bb0fb2-2461-4e39-9b4f-b5a6b2bf3ebc","metadata":{},"outputs":[],"source":["What is the type of the result of: <code>\"hello\" == \"world\"<code>\n"]},{"cell_type":"code","id":"dc8949a4-9195-4f4b-b0c2-b48bf11d7c18","metadata":{},"outputs":[],"source":["# Write your code below. Don't forget to press Shift+Enter to execute the cell\n"]},{"cell_type":"markdown","id":"481d83b8-3099-4bfc-b53d-6ec96815d6bf","metadata":{},"outputs":[],"source":["<details><summary>Click here for the solution</summary>\n","\n","```python\n","\n","type(\"hello\" == \"world\")  \n","\n","```\n","\n","</details>\n"]},{"cell_type":"markdown","id":"5dbefc2b-bc2b-4221-80a6-0850df8b1ead","metadata":{},"outputs":[],"source":["Write the code to convert the following number representing employeeid **\"1001\"** to an integer\n"]},{"cell_type":"code","id":"92132c04-d963-415f-9c0f-d61b306b68e1","metadata":{},"outputs":[],"source":["# Write your code below. Don't forget to press Shift+Enter to execute the cell\n"]},{"cell_type":"markdown","id":"825aa228-b62c-447a-9988-d99d16742657","metadata":{},"outputs":[],"source":["<details><summary>Click here for the solution</summary>\n","\n","```python\n","\n","int(\"1001\")\n","\n","```\n","\n","</details>\n"]},{"cell_type":"markdown","id":"b3168188-2b0a-4aa4-baa3-5a0e5957f88d","metadata":{},"outputs":[],"source":["Write the code to convert this number representing financial value **\"1234.56\"** to a floating point number\n"]},{"cell_type":"code","id":"3037e86e-0295-4c66-8d11-6e3a82e20371","metadata":{},"outputs":[],"source":["# Write your code below. Don't forget to press Shift+Enter to execute the cell\n"]},{"cell_type":"markdown","id":"69446024-042c-4a62-b60f-b874840540cb","metadata":{},"outputs":[],"source":["<details><summary>Click here for the solution</summary>\n","\n","```python\n","\n","float(\"1234.56\")\n","\n","```\n","\n","</details>\n"]},{"cell_type":"markdown","id":"1f621773-43d8-4ebe-82ff-1eeda04ce229","metadata":{},"outputs":[],"source":["Write the code to convert this phone number **123-456-7890** to a string\n"]},{"cell_type":"code","id":"b0475481-b261-4f61-bea8-f6cd442264fd","metadata":{},"outputs":[],"source":["# Write your code below. Don't forget to press Shift+Enter to execute the cell\n"]},{"cell_type":"markdown","id":"fd085c04-64dc-4355-92e7-3651bdbf2116","metadata":{},"outputs":[],"source":["<details><summary>Click here for the solution</summary>\n","\n","```python\n","\n","str(\"123-456-7890\")\n","\n","```\n","\n","</details>\n"]},{"cell_type":"markdown","id":"f8831c89-1061-4a97-8fac-35ce4e3f182c","metadata":{},"outputs":[],"source":["<hr>\n"]},{"cell_type":"markdown","id":"d1bcc821-e72c-4266-a1a9-84e2c3bf1b77","metadata":{},"outputs":[],"source":["<hr>\n","\n","<p>Congratulations, you have completed your hands-on lab on Types in Python.\n","<hr>\n"]},{"cell_type":"markdown","id":"9f72c13b-a591-474a-a53f-02dc38373f19","metadata":{},"outputs":[],"source":["## Author\n","\n","<a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a>\n","\n","\n","## Other contributors\n","\n","<a href=\"www.linkedin.com/in/jiahui-mavis-zhou-a4537814a\">Mavis Zhou</a>\n","\n","\n","\n","\n","\n","\n","## <h3 align=\"center\"> © IBM Corporation 2023. All rights reserved. <h3/>\n"]},{"cell_type":"markdown","id":"160bada2-2531-4713-8def-e9699794d404","metadata":{},"outputs":[],"source":["```toggle## Change Log\n","```\n","\n","\n","```toggle|  Date (YYYY-MM-DD) |  Version | Changed By  |  Change Description |\n","```\n","```toggle|---|---|---|---|\n","```\n","\n","```toggle| 2023-10-30 | 2.2 | Abhishek Gagneja| Updated instructions |\n","```\n","```toggle| 2022-01-10  | 2.1  | Malika  | Removed the readme for GitShare|\n","```\n","```toggle| 2020-08-26  | 2.0  | Lavanya | Moved lab to course repo in GitLab |\n","```\n"]},{"cell_type":"markdown","id":"4f4251ce-4ca6-4a2b-8c68-098e6d5b4425","metadata":{},"outputs":[],"source":["```{toggle}## Change Log\n","```\n","\n","```{toggle}| Date (YYYY-MM-DD) | Version | Changed By | Change Description                 |\n","```\n","```{toggle}| ----------------- | ------- | ---------- | ---------------------------------- |\n","```\n","```{toggle}| 2022-01-10        | 2.1     | Malika     | Removed the readme for GitShare    |\n","```\n","```{toggle}| 2020-08-26        | 2.0     | Lavanya    | Moved lab to course repo in GitLab |\n","```\n"]}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","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.11.7"},"prev_pub_hash":"26d702e745c6bdfe1c62980a4e90766c64ea727f70648bdbc5ef9a345a9fe0b6"},"nbformat":4,"nbformat_minor":4}