شناسایی کلمات n حرفی در پایتون

کد پایتون: شناسایی کلمات n حرفی در یک متن

فرض کنید به شما یک فایل متنی داده شده و از شما خواسته می شود تعداد کلمات ۳ حرفی را در آن پیدا کنید و برای کاربر نمایش دهید یا مثلا لیستی از اسامی اشخاص داده می شود و گفته می شود اسامی ۴ حرفی را پیدا کنید و نمایش دهید. کد پایتون زیر دقیقا همین کار را انجام می دهد، یعنی یک فایل متنی با پسوند txt (یا هر پسوند دیگه) را می گیرد و برای شما کلمات ۳ حرفی را نمایش می دهد:

count = 1
chrw = ""
  
# text file
file = open('textfile.txt', 'r')
while 1:
    sp = file.read(1)
  
    if count<= 3:
        chrw = chrw + sp
  
    if count>3:
        if sp ==" ":
            count = 0
            if len(chrw)>0:
                print(chrw)
                chrw =""
        elif sp !=" ":
            chrw =""
    count = count + 1
  
    if not sp:
        break
  
file.close()

توضیحات خط به خط:

خط۱: تعریف یک متغیر با نام count با مقدار اولیه ۱

خط۲: تعریف یک متغیر با نام chrw با مقدار اولیه خالی

نکته: در پایتون به هر متغیر هرمقدار که بدی تبدیل به اون نوع میشه مثلا اگه عدد معمولی بدی میشه از نوع int اگه کاراکتر یا حرف بدی میشه از نوع char

خط۴: توضیحات اضافی (این علامت # یعنی توضیح)

خط۵: فراخوانی و باز کردن یک فایل با دستور open و ریختن اون در متغیری به نام file . در دستور open اول اینکه ما اسم فایلمونو بهش میگیم دوم مد خوندن یا نوشتن روی اون فایل رو تعیین می کنیم. اینجا فایلی که خوندیم اسمش textfile.txt هست و مدش هم r یعنی خواندنی یعنی میخوایم بخونیم اگه w بود یعنی می خوایم رو فایل یچیزی بنویسیم

خط۶: شروع حلقه while با شرط ۱ : یعنی از این جا به بعد تا پایان while هرچی بود هی انجام بده در واقع میگن حلقه بی نهایت.

خط۷: خواندن یک کاراکتر یا حرف از فایل و ریختن اون توی متغیر جدیدی به نام sp

خط۹: عبارت شرطی: آیا متغیر count کوچکتر و مساوی ۳ هست؟ (بار اول این شرط برقراره چون بالا count رو ۱ تعریف کرده بودیم).

خط۱۰: اگر شرط خط۹ برقرار بود کاراکتر sp رو با کاراکتر chrw جمع کن دوباره بریز توی خود chrw

خط۱۲: عبارت شرطی: آیا متغیر count بزرگتر از ۳ هست؟ (بار اول این شرط برقرار نیست چون بالا count رو ۱ تعریف کرده بودیم).

خط۱۳: اگر شرط خط ۱۲ برقرار بود شرط جدیدی رو بررسی کن: که آیا کاراکتر خوانده شده در خط ۷ برابر با ” ” یا همون space یا فضای خالی هست؟

خط۱۴: اگر شرط خط ۱۳ برقرار بود count رو برابر صفر قرار بده

خط۱۵: عبارت شرطی درون عبارت شرطی خط ۱۳: اگر سایز یا len متغیر chrw بزرگتر از صفر بود:

خط۱۶: اگر شرط خط ۱۵ برقرار بود کلمه chrw را در خروجی چاپ کن

خط۱۷: بعد از چاپ chrw در خط۱۶ در خروجی حالا chrw رو خالی کن و مقدارشو “” بزار

خط۱۸: اگر عبارت شرطی خط ۱۳ برقرار نبود یعنی متغیر sp برابر space نبود:

خط۱۹: chrw رو خالی کن و مقدارشو “” بزار

خط۲۰: پایان بخش عبارت شرطی خط ۱۲ و در این خط count را بعلاوه ۱ کن و درون count بریز.

خط۲۲: عبارت شرطی : اگر متغیر sp وجود نداشت:

خط۲۳: اگر شرط خط ۲۲ برقرار بود: از برنامه خارج شو: break

خط۲۵: فایل باز شده در خط ۵ را با دستور close ببند. (پایان برنامه)

نکته: در کد بالا ما یک فایل متنی با نام textfile.txt به عنوان ورودی دادیم که محتوای اون فقط جمله زیر است:

Hello, how are you ?

خروجی کد بالا:

how 
are 
you

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...