misc python code

This commit is contained in:
ys
2024-12-20 21:50:09 +00:00
parent 6dc40ba6af
commit d3dc84416d
44 changed files with 24998 additions and 0 deletions

View File

@@ -0,0 +1,490 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"incometax_bands=[(0,37500,0.2),(37500,150000,0.4),(150000,1e9,0.45)]\n",
"NI_bands=[(0,8632,0),(8632,50000,0.12),(50000,1e9,0.02)]\n",
"NI_bands_emp=[(0,8632,0),(8632,1e9,0.138)]\n",
"dividends=[(0,2000,0),(37500,150000,0.4),(150000,1e9,0.45)]"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"weekly\n",
"daily_rate=950\n",
"gross_salary=lambda x:daily_rate*x\n",
"incometax= lambda x: taxcalc(x,incometax_bands) \n",
"employeeNI= lambda x: taxcalc(x,NI_bands) \n",
"employerNI= lambda x: taxcalc(x,NI_bands_emp) "
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"def taxcalc (grosssalary, taxbands):\n",
" tax=0\n",
" for lb,ub,rate in taxbands:\n",
" if grosssalary< lb:\n",
" continue\n",
" elif (grosssalary>=lb) and (grosssalary<ub):\n",
" tax+=(grosssalary-lb)*rate\n",
" else:\n",
" tax+=(ub-lb)*rate\n",
" return tax\n",
" \n",
"def effective_paye_taxrate(numdays):\n",
" gross=gross_salary(numdays)\n",
" return (incometax(gross)+employeeNI(gross))/gross\n",
" \n",
"def effective_bnp_taxrate(numdays):\n",
" gross=gross_salary(numdays)\n",
" return (incometax(gross)+employeeNI(gross)+employerNI(gross))/gross \n",
"\n",
"def effective_bnp_taxrate2(numdays):\n",
" gross=gross_salary(numdays)\n",
" grossminusNI=gross-employerNI(gross)\n",
" return (incometax(grossminusNI)+employeeNI(grossminusNI)+employerNI(gross))/gross \n"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(1, 950, 0.0),\n",
" (2, 1900, 0.0),\n",
" (3, 2850, 0.0),\n",
" (4, 3800, 0.0),\n",
" (5, 4750, 0.0),\n",
" (6, 5700, 0.0),\n",
" (7, 6650, 0.0),\n",
" (8, 7600, 0.0),\n",
" (9, 8550, 0.0),\n",
" (10, 9500, 0.00857401263157892),\n",
" (11, 10450, 0.016325466028708158),\n",
" (12, 11400, 0.02278501052631582),\n",
" (13, 12350, 0.028250778947368382),\n",
" (14, 13300, 0.03293572330827074),\n",
" (15, 14250, 0.03699600842105266),\n",
" (16, 15200, 0.040548757894736887),\n",
" (17, 16150, 0.04368353684210524),\n",
" (18, 17100, 0.046470007017543835),\n",
" (19, 18050, 0.04896316454293631),\n",
" (20, 19000, 0.05120700631578945),\n",
" (21, 19950, 0.05323714887218045),\n",
" (22, 20900, 0.055082733014354124),\n",
" (23, 21850, 0.056767831578947325),\n",
" (24, 22800, 0.0583125052631579),\n",
" (25, 23750, 0.05973360505263159),\n",
" (26, 24700, 0.06104538947368421),\n",
" (27, 25650, 0.06226000467836268),\n",
" (28, 26600, 0.0633878616541354),\n",
" (29, 27550, 0.0644379353901996),\n",
" (30, 28500, 0.06541800421052635),\n",
" (31, 29450, 0.0663348427843804),\n",
" (32, 30400, 0.0671943789473684),\n",
" (33, 31350, 0.06800182200956939),\n",
" (34, 32300, 0.0687617684210527),\n",
" (35, 33250, 0.06947828932330824),\n",
" (36, 34200, 0.07015500350877196),\n",
" (37, 35150, 0.07079513854907543),\n",
" (38, 36100, 0.07140158227146814),\n",
" (39, 37050, 0.07197692631578945),\n",
" (40, 38000, 0.06989192421052631),\n",
" (41, 38950, 0.06559797483953783),\n",
" (42, 39900, 0.06150849924812035),\n",
" (43, 40850, 0.05760923182374539),\n",
" (44, 41800, 0.05388720382775125),\n",
" (45, 42750, 0.05286494315789475),\n",
" (46, 43700, 0.05315570526315794),\n",
" (47, 44650, 0.05343409451287795),\n",
" (48, 45600, 0.05370088421052627),\n",
" (49, 46550, 0.05395678453276048),\n",
" (50, 47500, 0.05420244884210529),\n",
" (51, 48450, 0.05443847925696599),\n",
" (52, 49400, 0.05466543157894743),\n",
" (53, 50350, 0.0555789537239324),\n",
" (54, 51300, 0.057628232358674425),\n",
" (55, 52250, 0.05960299177033496),\n",
" (56, 53200, 0.06150722406015041),\n",
" (57, 54150, 0.0633446411819022),\n",
" (58, 55100, 0.06511869909255902),\n",
" (59, 56050, 0.06683261944692237),\n",
" (60, 57000, 0.06791885473684212),\n",
" (61, 57950, 0.06811756203623826),\n",
" (62, 58900, 0.06830985942275053),\n",
" (63, 59850, 0.06849605213032589),\n",
" (64, 60800, 0.06867642631578946),\n",
" (65, 61750, 0.06885125052631574),\n",
" (66, 62700, 0.06902077703349285),\n",
" (67, 63650, 0.06918524304791834),\n",
" (68, 64600, 0.06934487182662535),\n",
" (69, 65550, 0.06949987368421057),\n",
" (70, 66500, 0.06965044691729322),\n",
" (71, 67450, 0.0697967786508526),\n",
" (72, 68400, 0.06993904561403508),\n",
" (73, 69350, 0.07007741485219904),\n",
" (74, 70300, 0.07021204438122336),\n",
" (75, 71250, 0.07034308378947374),\n",
" (76, 72200, 0.07047067479224373),\n",
" (77, 73150, 0.0705949517429939),\n",
" (78, 74100, 0.07071604210526322),\n",
" (79, 75050, 0.07083406688874089),\n",
" (80, 76000, 0.07094914105263167),\n",
" (81, 76950, 0.0710613738791423),\n",
" (82, 77900, 0.07117086931964056),\n",
" (83, 78850, 0.07127772631578949),\n",
" (84, 79800, 0.07138203909774432),\n",
" (85, 80750, 0.0714838974613003),\n",
" (86, 81700, 0.07158338702570372),\n",
" (87, 82650, 0.07168058947368433),\n",
" (88, 83600, 0.07177558277511964),\n",
" (89, 84550, 0.07186844139562382),\n",
" (90, 85500, 0.07195923649122815),\n",
" (91, 86450, 0.07204803609022559),\n",
" (92, 87400, 0.07213490526315786),\n",
" (93, 88350, 0.07221990628183367),\n",
" (94, 89300, 0.07230309876819707),\n",
" (95, 90250, 0.072384539833795),\n",
" (96, 91200, 0.07246428421052625),\n",
" (97, 92150, 0.07254238437330435),\n",
" (98, 93100, 0.07261889065520943),\n",
" (99, 94050, 0.07269385135566186),\n",
" (100, 95000, 0.07276731284210519),\n",
" (101, 95950, 0.07283931964564871),\n",
" (102, 96900, 0.07290991455108359),\n",
" (103, 97850, 0.07297913868165556),\n",
" (104, 98800, 0.07304703157894732),\n",
" (105, 99750, 0.07311363127819548),\n",
" (106, 100700, 0.07317897437934462),\n",
" (107, 101650, 0.07324309611411706),\n",
" (108, 102600, 0.07330603040935668),\n",
" (109, 103550, 0.07336780994688552),\n",
" (110, 104500, 0.07342846622009563),\n",
" (111, 105450, 0.07348802958748224),\n",
" (112, 106400, 0.0735465293233083),\n",
" (113, 107350, 0.0736039936655799),\n",
" (114, 108300, 0.07366044986149584),\n",
" (115, 109250, 0.07371592421052625),\n",
" (116, 110200, 0.07377044210526318),\n",
" (117, 111150, 0.07382402807017546),\n",
" (118, 112100, 0.07387670579839428),\n",
" (119, 113050, 0.07392849818664304),\n",
" (120, 114000, 0.073979427368421),\n",
" (121, 114950, 0.07402951474554148),\n",
" (122, 115900, 0.07407878101811899),\n",
" (123, 116850, 0.07412724621309374),\n",
" (124, 117800, 0.07417492971137518),\n",
" (125, 118750, 0.07422185027368416),\n",
" (126, 119700, 0.07426802606516286),\n",
" (127, 120650, 0.07431347467882304),\n",
" (128, 121600, 0.07435821315789476),\n",
" (129, 122550, 0.07440225801713579),\n",
" (130, 123500, 0.0744456252631579),\n",
" (131, 124450, 0.07448833041382075),\n",
" (132, 125400, 0.07453038851674643),\n",
" (133, 126350, 0.07457181416699649),\n",
" (134, 127300, 0.07461262152395914),\n",
" (135, 128250, 0.07465282432748538),\n",
" (136, 129200, 0.0746924359133127),\n",
" (137, 130150, 0.07473146922781404),\n",
" (138, 131100, 0.07476993684210526),\n",
" (139, 132050, 0.07480785096554332),\n",
" (140, 133000, 0.07484522345864658),\n",
" (141, 133950, 0.0748820658454647),\n",
" (142, 134900, 0.07491838932542627),\n",
" (143, 135850, 0.07495420478468895),\n",
" (144, 136800, 0.07498952280701748),\n",
" (145, 137750, 0.07502435368421057),\n",
" (146, 138700, 0.07505870742609944),\n",
" (147, 139650, 0.07509259377013972),\n",
" (148, 140600, 0.07512602219061171),\n",
" (149, 141550, 0.07515900190745323),\n",
" (150, 142500, 0.07519154189473687),\n",
" (151, 143450, 0.07522365088881139),\n",
" (152, 144400, 0.07525533739612195),\n",
" (153, 145350, 0.07528660970072243),\n",
" (154, 146300, 0.07531747587149701),\n",
" (155, 147250, 0.0753479437691002),\n",
" (156, 148200, 0.07537802105263164),\n",
" (157, 149150, 0.07540771518605427),\n",
" (158, 150100, 0.07540372231845432),\n",
" (159, 151050, 0.07511841588877854),\n",
" (160, 152000, 0.07483667578947362),\n",
" (161, 152950, 0.0745584355671789),\n",
" (162, 153900, 0.0742836304093567),\n",
" (163, 154850, 0.07401219709396184),\n",
" (164, 155800, 0.0737440739409499),\n",
" (165, 156750, 0.0734792007655502),\n",
" (166, 157700, 0.07321751883322775),\n",
" (167, 158650, 0.07295897081626224),\n",
" (168, 159600, 0.0727035007518797),\n",
" (169, 160550, 0.07245105400186858),\n",
" (170, 161500, 0.0722015772136223),\n",
" (171, 162450, 0.07195501828254847),\n",
" (172, 163400, 0.07171132631578947),\n",
" (173, 164350, 0.07147045159720111),\n",
" (174, 165300, 0.07123234555353897),\n",
" (175, 166250, 0.07099696072180439),\n",
" (176, 167200, 0.07076425071770337),\n",
" (177, 168150, 0.070534170205174),\n",
" (178, 169100, 0.07030667486694264),\n",
" (179, 170050, 0.07008172137606583),\n",
" (180, 171000, 0.06985926736842096),\n",
" (181, 171950, 0.06963927141610937),\n",
" (182, 172900, 0.06948849924812028),\n",
" (183, 173850, 0.06950845280414147),\n",
" (184, 174800, 0.06952818947368422),\n",
" (185, 175750, 0.06954771277382643),\n",
" (186, 176700, 0.06956702614601018),\n",
" (187, 177650, 0.0695861329580636),\n",
" (188, 178600, 0.06960503650615907),\n",
" (189, 179550, 0.06962374001670835),\n",
" (190, 180500, 0.06964224664819935),\n",
" (191, 181450, 0.06966055949297328),\n",
" (192, 182400, 0.0696786815789473),\n",
" (193, 183350, 0.0696966158712844),\n",
" (194, 184300, 0.0697143652740097),\n",
" (195, 185250, 0.06973193263157895),\n",
" (196, 186200, 0.06974932073039741),\n",
" (197, 187150, 0.0697665323002939),\n",
" (198, 188100, 0.06978357001594893),\n",
" (199, 189050, 0.06980043649828088),\n",
" (200, 190000, 0.06981713431578945),\n",
" (201, 190950, 0.06983366598586027),\n",
" (202, 191900, 0.06985003397602912),\n",
" (203, 192850, 0.0698662407052113),\n",
" (204, 193800, 0.06988228854489165),\n",
" (205, 194750, 0.06989817982028235),\n",
" (206, 195700, 0.06991391681144615),\n",
" (207, 196650, 0.069929501754386),\n",
" (208, 197600, 0.06994493684210529),\n",
" (209, 198550, 0.0699602242256358),\n",
" (210, 199500, 0.06997536601503757),\n",
" (211, 200450, 0.06999036428036925),\n",
" (212, 201400, 0.07000522105263163),\n",
" (213, 202350, 0.07001993832468495),\n",
" (214, 203300, 0.07003451805213967),\n",
" (215, 204250, 0.07004896215422274),\n",
" (216, 205200, 0.07006327251461997),\n",
" (217, 206150, 0.0700774509822944),\n",
" (218, 207100, 0.07009149937228387),\n",
" (219, 208050, 0.07010541946647442),\n",
" (220, 209000, 0.07011921301435403),\n",
" (221, 209950, 0.07013288173374621),\n",
" (222, 210900, 0.07014642731152204),\n",
" (223, 211850, 0.07015985140429543),\n",
" (224, 212800, 0.07017315563909765),\n",
" (225, 213750, 0.07018634161403509),\n",
" (226, 214700, 0.07019941089892878),\n",
" (227, 215650, 0.07021236503593792),\n",
" (228, 216600, 0.07022520554016615),\n",
" (229, 217550, 0.07023793390025274),\n",
" (230, 218500, 0.07025055157894738),\n",
" (231, 219450, 0.07026306001367055),\n",
" (232, 220400, 0.07027546061705997),\n",
" (233, 221350, 0.07028775477750165),\n",
" (234, 222300, 0.0702999438596491),\n",
" (235, 223250, 0.07031202920492718),\n",
" (236, 224200, 0.07032401213202505),\n",
" (237, 225150, 0.07033589393737505),\n",
" (238, 226100, 0.07034767589562141),\n",
" (239, 227050, 0.07035935926007492),\n",
" (240, 228000, 0.07037094526315785),\n",
" (241, 228950, 0.07038243511683778),\n",
" (242, 229900, 0.07039383001304916),\n",
" (243, 230850, 0.07040513112410651),\n",
" (244, 231800, 0.07041633960310617),\n",
" (245, 232750, 0.07042745658431787),\n",
" (246, 233700, 0.07043848318356877),\n",
" (247, 234650, 0.07044942049861497),\n",
" (248, 235600, 0.07046026960950758),\n",
" (249, 236550, 0.0704710315789473)]"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"[(x,gross_salary(x),effective_bnp_taxrate2(x)-effective_paye_taxrate(x)) for x in range(1,250)]"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"net monthly salary paye 553.6629090909091\n",
"net monthly salary bnp1 427.9775272727273\n",
"net monthly salary bnp2 487.0496567272727\n"
]
}
],
"source": [
"r1=effective_paye_taxrate(220)\n",
"r2=effective_bnp_taxrate(220)\n",
"r3=effective_bnp_taxrate2(220)\n",
"print ('net monthly salary paye',gross_salary(220)*(1-r1)/220)\n",
"print ('net monthly salary bnp1',gross_salary(220)*(1-r2)/220)\n",
"print ('net monthly salary bnp2',gross_salary(220)*(1-r3)/220)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.4171969377990431"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r1"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5494973397129187"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r2"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.48731615081339713"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"r3"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"50.0"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"250/5"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"hello from laptop"
]
}
],
"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.6.9"
},
"varInspector": {
"cols": {
"lenName": 16,
"lenType": 16,
"lenVar": 40
},
"kernels_config": {
"python": {
"delete_cmd_postfix": "",
"delete_cmd_prefix": "del ",
"library": "var_list.py",
"varRefreshCmd": "print(var_dic_list())"
},
"r": {
"delete_cmd_postfix": ") ",
"delete_cmd_prefix": "rm(",
"library": "var_list.r",
"varRefreshCmd": "cat(var_dic_list()) "
}
},
"types_to_exclude": [
"module",
"function",
"builtin_function_or_method",
"instance",
"_Feature"
],
"window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}