Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 969527a

Browse files
Please check Markdowns & Comments for clarity
1 parent e42673e commit 969527a

File tree

1 file changed

+214
-0
lines changed

1 file changed

+214
-0
lines changed

‎Assignment-8.ipynb‎

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"## <u> PyInputPlus Module </u> :\n",
8+
" - PyInputPlus contains functions similar to input() for several kinds of data: numbers, dates, email addresses, and more.\n",
9+
" - PyInputPlus will reprompt them for input if it didnt match the condition. \n",
10+
" - PyInputPlus also has other useful features like a limit for the number of times it reprompts users and a timeout if users are required to respond within a time limit."
11+
]
12+
},
13+
{
14+
"cell_type": "markdown",
15+
"metadata": {},
16+
"source": [
17+
"## No Python Standard Library is not included with PyInputPlus.You need to manually install using pip command."
18+
]
19+
},
20+
{
21+
"cell_type": "markdown",
22+
"metadata": {},
23+
"source": [
24+
"## PyInputPlus commonly imported with import pyinputplus as pyip because shortername becomes easy to call it's functions"
25+
]
26+
},
27+
{
28+
"cell_type": "markdown",
29+
"metadata": {},
30+
"source": [
31+
"## Difference between inputInt() and inputFloat() is that whatever user will enter inputInt() will convert the value in int and for floating values it will convert inputfloat()"
32+
]
33+
},
34+
{
35+
"cell_type": "code",
36+
"execution_count": 1,
37+
"metadata": {},
38+
"outputs": [
39+
{
40+
"name": "stdout",
41+
"output_type": "stream",
42+
"text": [
43+
"Enter a number: Akash\n",
44+
"'Akash' is not an integer.\n",
45+
"Enter a number: 2\n",
46+
"2\n"
47+
]
48+
}
49+
],
50+
"source": [
51+
"## In below example, you see that unlike input(), these functions return an int or float value: 2 or 2.0 instead of the strings '42' and '3.14'.\n",
52+
"import pyinputplus as pyip\n",
53+
"result = pyip.inputInt(prompt='Enter a number: ')\n",
54+
"print(result)"
55+
]
56+
},
57+
{
58+
"cell_type": "code",
59+
"execution_count": 19,
60+
"metadata": {},
61+
"outputs": [
62+
{
63+
"name": "stdout",
64+
"output_type": "stream",
65+
"text": [
66+
"Enter a number: 5.0\n",
67+
"Converted to int: 5\n"
68+
]
69+
}
70+
],
71+
"source": [
72+
"## Using inputInt()\n",
73+
"result = pyip.inputInt(prompt='Enter a number: ')\n",
74+
"print(\"Converted to int: \",result)"
75+
]
76+
},
77+
{
78+
"cell_type": "code",
79+
"execution_count": 17,
80+
"metadata": {},
81+
"outputs": [
82+
{
83+
"name": "stdout",
84+
"output_type": "stream",
85+
"text": [
86+
"Enter a number: 34\n",
87+
"Converted to Float: 34.0\n"
88+
]
89+
}
90+
],
91+
"source": [
92+
"## Using inputFloat()\n",
93+
"g = pyip.inputFloat(prompt='Enter a number: ')\n",
94+
"print(\"Converted to Float: \",g)"
95+
]
96+
},
97+
{
98+
"cell_type": "code",
99+
"execution_count": 3,
100+
"metadata": {},
101+
"outputs": [
102+
{
103+
"name": "stdout",
104+
"output_type": "stream",
105+
"text": [
106+
"Enter wholeNumber from 0 to 99 : 2.5\n",
107+
"'2.5' is not an integer.\n",
108+
"Enter wholeNumber from 0 to 99 : 2\n"
109+
]
110+
}
111+
],
112+
"source": [
113+
"## WholeNumber Validation\n",
114+
"response = pyip.inputInt('Enter wholeNumber from 0 to 99 : ', min=0,max=99)"
115+
]
116+
},
117+
{
118+
"cell_type": "markdown",
119+
"metadata": {},
120+
"source": [
121+
"## The allowRegexes and blockRegexes keyword arguments take a list of regular expression strings to determine what the PyInputPlus function will accept or reject as valid input."
122+
]
123+
},
124+
{
125+
"cell_type": "code",
126+
"execution_count": 13,
127+
"metadata": {},
128+
"outputs": [
129+
{
130+
"name": "stdout",
131+
"output_type": "stream",
132+
"text": [
133+
"\n",
134+
"Blank values are not allowed.\n",
135+
"\n",
136+
"Blank values are not allowed.\n",
137+
"\n",
138+
"Blank values are not allowed.\n"
139+
]
140+
},
141+
{
142+
"ename": "RetryLimitException",
143+
"evalue": "",
144+
"output_type": "error",
145+
"traceback": [
146+
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
147+
"\u001b[1;31mValidationException\u001b[0m Traceback (most recent call last)",
148+
"\u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\pyinputplus\\__init__.py\u001b[0m in \u001b[0;36m_genericInput\u001b[1;34m(prompt, default, timeout, limit, applyFunc, validationFunc, postValidateApplyFunc, passwordMask)\u001b[0m\n\u001b[0;32m 166\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 167\u001b[1;33m possibleNewUserInput = validationFunc(\n\u001b[0m\u001b[0;32m 168\u001b[0m \u001b[0muserInput\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
149+
"\u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\pyinputplus\\__init__.py\u001b[0m in \u001b[0;36m<lambda>\u001b[1;34m(value)\u001b[0m\n\u001b[0;32m 242\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 243\u001b[1;33m validationFunc = lambda value: pysv._prevalidationCheck(\n\u001b[0m\u001b[0;32m 244\u001b[0m \u001b[0mvalue\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mblank\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mblank\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstrip\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mstrip\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mallowRegexes\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mallowRegexes\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mblockRegexes\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mblockRegexes\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexcMsg\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
150+
"\u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\pysimplevalidate\\__init__.py\u001b[0m in \u001b[0;36m_prevalidationCheck\u001b[1;34m(value, blank, strip, allowRegexes, blockRegexes, excMsg)\u001b[0m\n\u001b[0;32m 249\u001b[0m \u001b[1;31m# value is blank but blanks aren't allowed.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 250\u001b[1;33m \u001b[0m_raiseValidationException\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0m_\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Blank values are not allowed.\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexcMsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 251\u001b[0m \u001b[1;32melif\u001b[0m \u001b[0mblank\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mvalue\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m\"\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
151+
"\u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\pysimplevalidate\\__init__.py\u001b[0m in \u001b[0;36m_raiseValidationException\u001b[1;34m(standardExcMsg, customExcMsg)\u001b[0m\n\u001b[0;32m 221\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mcustomExcMsg\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 222\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mValidationException\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstandardExcMsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 223\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
152+
"\u001b[1;31mValidationException\u001b[0m: Blank values are not allowed.",
153+
"\nDuring handling of the above exception, another exception occurred:\n",
154+
"\u001b[1;31mRetryLimitException\u001b[0m Traceback (most recent call last)",
155+
"\u001b[1;32m<ipython-input-13-7223a15bd62c>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;31m## It gives to give ValidationException and later RetryLimitException\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mresponse\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpyip\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minputStr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mlimit\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
156+
"\u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\pyinputplus\\__init__.py\u001b[0m in \u001b[0;36minputStr\u001b[1;34m(prompt, default, blank, timeout, limit, strip, allowRegexes, blockRegexes, applyFunc, postValidateApplyFunc)\u001b[0m\n\u001b[0;32m 245\u001b[0m )[1]\n\u001b[0;32m 246\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 247\u001b[1;33m return _genericInput(\n\u001b[0m\u001b[0;32m 248\u001b[0m \u001b[0mprompt\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mprompt\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 249\u001b[0m \u001b[0mdefault\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mdefault\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
157+
"\u001b[1;32m~\\AppData\\Roaming\\Python\\Python38\\site-packages\\pyinputplus\\__init__.py\u001b[0m in \u001b[0;36m_genericInput\u001b[1;34m(prompt, default, timeout, limit, applyFunc, validationFunc, postValidateApplyFunc, passwordMask)\u001b[0m\n\u001b[0;32m 186\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 187\u001b[0m \u001b[1;31m# If there is no default, then raise the timeout/limit exception.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 188\u001b[1;33m \u001b[1;32mraise\u001b[0m \u001b[0mlimitOrTimeoutException\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 189\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 190\u001b[0m \u001b[1;31m# If there was no timeout/limit exceeded, let the user enter input again.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
158+
"\u001b[1;31mRetryLimitException\u001b[0m: "
159+
]
160+
}
161+
],
162+
"source": [
163+
"## It gives ValidationException and later RetryLimitException \n",
164+
"response = pyip.inputStr(limit=3)"
165+
]
166+
},
167+
{
168+
"cell_type": "code",
169+
"execution_count": 11,
170+
"metadata": {},
171+
"outputs": [
172+
{
173+
"name": "stdout",
174+
"output_type": "stream",
175+
"text": [
176+
"\n",
177+
"Blank values are not allowed.\n",
178+
"\n",
179+
"Blank values are not allowed.\n",
180+
"\n",
181+
"Blank values are not allowed.\n",
182+
"The default value is printed: hello\n"
183+
]
184+
}
185+
],
186+
"source": [
187+
"## Here after reaching maximum reach of limit it will try to print the default value\n",
188+
"res = pyip.inputStr(limit=3, default='hello')\n",
189+
"print(\"The default value is printed: \",res)"
190+
]
191+
}
192+
],
193+
"metadata": {
194+
"kernelspec": {
195+
"display_name": "Python 3",
196+
"language": "python",
197+
"name": "python3"
198+
},
199+
"language_info": {
200+
"codemirror_mode": {
201+
"name": "ipython",
202+
"version": 3
203+
},
204+
"file_extension": ".py",
205+
"mimetype": "text/x-python",
206+
"name": "python",
207+
"nbconvert_exporter": "python",
208+
"pygments_lexer": "ipython3",
209+
"version": "3.8.5"
210+
}
211+
},
212+
"nbformat": 4,
213+
"nbformat_minor": 4
214+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /