knowledgecomputer2023
knowledgecomputer2023
خواندن ۱ دقیقه·۳ سال پیش

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

«بسم الله الرحمن الرحیم»


python and string proccessing time
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 database

else:

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 #تفاضل ساعت ورود وخروجد

تفاضل ساعت ورود وخروج دریک روز محاسبه شده است برای محاسبه دریک هفته این تفاضل هارا باید باهم جمع شود که مجموع در بالا توضیح داده شده است



موفق باشید

به امید خدا

پردازش رشته پایتونمسئله کاربردی پردازش رشتهpython and striingpython and usage
أَعُوذُ بِاللّه ِ مِنَ الْکَسَل وَ الْفَشَل
شاید از این پست‌ها خوشتان بیاید