زبان برنامه نویسی پایتون - پردازش رشته - مسئله کاربردی -زمان

«بسم الله الرحمن الرحیم»python and string proccessing timeیکی ازکاربردهای پردازش رشته را در مسئله زیر بیان می کنیم.فرض کنید یک زمان به شکل ثانیه:دقیقه :ساعت را به شکل یک رشته در پایگاه داده ذخیره می کنید . حال می خواهید برای ذخیره کردن وفراخوانی این رشته یا چندین رشته پردازش های زیر راانجام دهیدایا ساعت ،دقیقه ،ثانیه به صورت صحیح در پایگاه داده ذخیره شده است ؟آیا فرمت یا شکلی که در نظر گرفته ایم را درست است که در پایگاه داده ذخیره کنیم؟فرض کنید می خواهیم 5 زمان را از پایگاه داده فراخوانی کنید وزمان ها راجمع یا تفریق کنیم ایا می توان رشته را باهم جمع کرد ؟-------------------------حال مثال زیررا در زبان پایتون اجرا(حل) می کنیمstr_time="13:14:20";یک رشته توسط کاربر وارد می شود-# ابتدا ببینیم فرمت وارد شده برای زمان می باشد یا نه.ابتدا طولش رابررسی می کنیم .اگر زمان به صورت 00:00:00 وارد شود دارای طول 8 می باشدبررسی می شود find فرمت درصورتی درست است که دارای : باشد که با تابعودرمکان 3 و6 دارای : می باشدif(len(str_time) ==8 and str_time.find(&quot:&quot)!=-1 and str_time[3]==&quot:&quot and str_time[6]==&quot:&quot --- #operation else: --- print(&quotnot correct&quot))# بررسی ساعت ودقیقه وثانیه که درست وارد شده است یا نهرشته جدا می شود ودر یک لیست ذخیره می شود split توسط تابععنصراول=ساعت ،عنصردوم=دقیقه ،عنصرسوم =ثانیهlist_time=str_time.split(":"); #خروجی list_time=["13","14","20"]حال گزینه اول را بررسی می کنیم آیاساعت ،دقیقه ،ثانیه درست وارد شده است .if(int(list_time[0])<25 and int(list_time[1])<61 and int(list_time[2])<61):#save databaseelse:print("زمان به طور صحیح وارد نشده است ")بعدازاین که زمان را به طور صحیح وارد کردیم آن را در پایگاه داده ذخیره می کنیم------------------------------------------------------------------------حال چطور زمان فراخوانی شده از پایگاه داده را باهم جمع کنیم. مثلا مجموع ساعت کاری یک فرد دریک هفتهروی دورشته نمی توان عملیات جمع یا تفریف و... را انجام داد اما پردازش رشته این کار انجام می شود.str_time1="13:14:15" # ساعت فراخوانی ازپایگاه داده که به صورت رشته می باشدstr_time2="15:14:15" # ساعت فراخوانی دوم ازپایگاه داده که به صورت رشته می باشدتوابع بالا را ابتدا روی هر دو ساعت اجرا می کنیم ‍سپس عملیات جمع یا تفریق راروی آن انجام می دهیم#چون که فرض کردیم دوساعت از پایگاه داده استخراج شده است پس دوساعت درست می باشد حال به سراغ جمع دوساعت می رویمlist_time1=str_time1.split(&quot:&quot) #خروجی list_time=[&quot13&quot,&quot14&quot,&quot50&quot list_time2=str_time2.split(&quot:&quot) #خروجی list_time=[&quot15&quot,&quot14&quot,&quot20&quot] for(i in range(0,len(list_time1)): ------temp=list_time1[i].Split(':')//temp[0] =hour ;temp[1]:minute;temp[2]=second ------hour+= int(temp[0]) ------ min += int(temp[1]) ------sec += inte(temp[2]) ------while (min>=60): #اگر دقیقه بزرگتر از 60 شد به ساعت 1 اضافه شود ------------hour += 1 ------------min -= 60 ------while(sec>=60) : #اگرثانیه بزرگتر از60 شدبه دقیقه 1 اضافه شود ------------min += 1 ------------sec -= 60] str_sum =str(hour) + &quot:&quot + str(min) + &quot:&quot + str(sec)دومین مسئله که می توان برای پردازش رشته انجام شود به شرح زیر است -فرض کنید دریک برنامه ساعت ورود وخروج یک شخص را دارید ومی خواهید مجموع ساعت ورود وخروج را دریک هفته یا هرچند روز محاسبه کنیدالگوریتم:ابتدا ساعت خروج وساعت ورود هرروز ازهم کم می کنیم سپس حاصل هرروز را درکل باهم جمع می کنیم .جمع دوساعت با چند ساعت فرقی ندارد و در بالا توضیح داده شده است اما به تفریق یا کم کردن دوساعت پرداخت می شودlist_time1=str_time1.split(&quot:&quot) #خروجی list_time=[&quot13&quot,&quot14&quot,&quot50&quot] به عنوان ساعت ورو list_time2=str_time2.split(&quot:&quot) #خروجی list_time=[&quot15&quot,&quot14&quot,&quot20&quot] به عنوان ساعت خروج for(i in range(0,len(list_time1)) ---if (int(list_time[i]) >= int(list_time1[i]) ------cal = int(time2[i]) - int(time1[i]) ------str_cal = str(cal) + &quot:&quot + str_cal ---else #result neg ------ #convert int to str and reverse ------ temp = int(time2[i]) + 60 ------time2[i] =int(temp) #----- ------temp = int(time2[i -1]) - 1 ------time2[i - 1] = str(temp) #----- ------cal = int(time2[i]) - int(time1[i]); ------str_cal = str(cal)+ &quot:&quot + str_cal; str_time=str_cal #تفاضل ساعت ورود وخروجدتفاضل ساعت ورود وخروج دریک روز محاسبه شده است برای محاسبه دریک هفته این تفاضل هارا باید باهم جمع شود که مجموع در بالا توضیح داده شده استموفق باشیدبه امید خدا