آموزش زبان برنامه نویسی پایتون#جلسه چهارم

آموزش زبان برنامه نویسی پایتون#جلسه چهارم

بسم الله الرحمن الرحیم
جلسه چهارم 
 رشته ها در پایتون (python)
 
رشته: همان طور که در جلسات پیش نیز مطرح شد، رشته (string) دنباله مرتبی از داده های کاراکتری است و ایجاد یک رشته به معنای ایجاد آرایه ای از کاراکترها می باشد که با استفاده از علامت کروشه می توان به کاراکترهای درون رشته دسترسی پیدا کرد و بسته به نوع کار مورد نظر می توان از دابل کوتیشن(") یا تک کوتیشن(') استفاده کرد. رشته ها تغییر ناپذیر می باشند. ، بدین معنی که نمی توان یک رشته موجود را تغییر داد و به جای تغییر آن، باید رشته ای جدید تعریف کرد.
در این جلسه از آموزش پایتون به توضیح کامل تری از رشته ها می پردازیم.
 
پایتون به زبان فارسی

بسم الله الرحمن الرحیم
جلسه چهارم

 رشته ها در پایتون (python)

رشته: همان طور که در جلسات پیش نیز مطرح شد، رشته (string) دنباله مرتبی از داده های کاراکتری است و ایجاد یک رشته به معنای ایجاد آرایه ای از کاراکترها می باشد که با استفاده از علامت کروشه می توان به کاراکترهای درون رشته دسترسی پیدا کرد و بسته به نوع کار مورد نظر می توان از دابل کوتیشن(") یا تک کوتیشن(') استفاده کرد. رشته ها تغییر ناپذیر می باشند. ، بدین معنی که نمی توان یک رشته موجود را تغییر داد و به جای تغییر آن، باید رشته ای جدید تعریف کرد.
در این جلسه از آموزش پایتون به توضیح کامل تری از رشته ها می پردازیم.
با مراجعه به سایت زیر می توانید لیست کاملی از تمام متدهای مربوط به string objectها را مشاهده کرد.
 
متد به یک object ارتباط دارد و این قابلیت را دارد که از اعضای کلاس برای عملیات خود استفاده کند، معمولا متدهایی که ورودی می‎گیرند بر روی همه‎ی انواع داده‎ها کار می‎کنند ولی متد هایی که با دات (.) و بعد از نوع داده ای خاص قرار می‎گیرند تنها بر روی آن نوع داده ای کار می‎کنند.
در ادامه برخی متدهای پرکاربرد رشته ها توضیح داده می شود. 
با تعریف یک رشته و استفاده از دات بعد از نام رشته می توان لیست کاملی از توابع رشته را مشاهده کرد، با استفاده کلیدهای جهتی، وقتی نام متد به حالت انتخاب در آمد، با کلید تب (tab) آن را انتخاب کرد.
 
 
آموزش متد در پایتون
 
 

متد capitalize

این متد در مورد رشته های لاتین، کپی ای از رشته مورد نظر را بر می گرداند که در آن اولین کاراکتر هر کلمه بزرگ و بقیه کاراکترها کوچک هستند.

متد count

تعداد کاراکتر و یا کاراکترهای مشخص شده در رشته مورد نظر را بر می‎گرداند و برای حروف کوچک و بزرگ تمایز قائل است. در مثال زیر تعداد کاراکترهای t را 1 بر می گرداند زیرا اولین کاراکتر t در رشته با حرف بزرگ نوشته شده است. هم چنین می توان پارامتر دوم و سومی را که مشخص کننده شروع و پایان محدوده جستجو می باشد را
 
برای این تابع تعیین کرد. برای تعیین بازه مورد جستجو می توان از روش های slicing که در آموزش های پیشین گفته شد نیز استفاده کرد.






>>> str1 = 'this is a sample string'

>>> str1.capitalize ()

'This is a sample string'

>>> str2 = strl.capitalize()

>>> str2

'This is a sample string'

>>> str2.count( 't')

1.

>>> str2.count('is')

2

>>> str2・count( ' is ' )

1.

>>> str2.count('t' , 0, 8)

O





 متد find و عملگر in

متد find() کوچکترین اندیس رشته مورد جستجو را در رشته اصلی پیدا کرده و بر میگرداند.
این متد نیزمی تواند دو پارامتر شروع و پایان داشته باشد. در صورت وارد نکردن پارامتر شروع، بصورت پیش فرض ایندکس را از صفر یعنی از ابتدای جمله شروع میکند.  
این متد نه تنها کاراکتر را پیدا کند، بلکه زیر رشته ها را نیز پیدا می کند. در صورتی که زیر رشته مورد نظر در رشته اصلی یافت نشود، مقدار -1 را بر می گرداند.






>>> str2.find(' is ' [O:4])

4

>>> str2.find('is' [O:4])

2

>>> str2.find('python')

-1

  




 

 

 
 
با استفاده از متد find اندیس مربوط به زیر رشته برگردانده می شود، اگر بخواهید وجود و یا عدم وجود یک زیر رشته را مشخص کنید، می توانید از عملگر in استفاده کنید. کلمه in یک عملگر boolean می باشد که عضویت یا تعلق را نشان می دهد. دو رشته را گرفته و در صورتی که رشته اول زیر رشته یا زیر مجموعه رشته دوم باشد مقدار True بر می گرداند. این عملگر (و عملگر نقض آن یعنی not in) بیشتر در بلوکهای شرط به کار میرود.





>>> 'Py' in 'python'

True

>>> 'sample' not in str1

False





 

 
 

متد islower

در رشته های لاتین اگر تمام کاراکترهای موجود در رشته کوچک باشند مقدار True و در غیر این صورت مقدار False را بر می گرداند.





>>>  Str1. isupper ( ) 
False 
>>>  Str1. islower () 
True 
>>>  Str2. islower ()
False






 

متد title

این متد رشته title در می آورد و شروع هر کلمه در رشته با حروف بزرگ می شود.



>>> strl.title()

'This Is A Sample String'




 

  

متد strip

در پایتون کاراکتر space به عنوان یک کاراکتر به حساب می آید. برای حذف spaceهای اضافی در رشته می توان از تابع strip استفاده کرد. تابع lstrip()، spaceهای اضافی را از سمت چپ رشته حذف می کند و تابع rstrip()، spaceهای اضافی موجود در سمت راست رشته را حذف می کند. این تابع به خصوص برای خواندن فایل ها بسیار مفید است.




>>> str3 = '     five tabs of the SPACEBAR     '

>>> str3.lstrip()

'five tabs of the SPACEBAR     '

>>> str3.rstrip()

'     five tabs of the SPACEBAR'

>>> str3.strip()

'five tabs of the SPACEBAR'

>>> 



 

 

متد replace

این متد برای جایگزین کردن مقداری به جای یک قسمت از رشته به کار می رود. اولین پارامتر قسمتی از رشته که می خواهیم آن را تغییر دهیم  و دومین پارامتر نیز رشته ای که قرار است جایگزین رشته فعلی شود، می باشد. 



>>> strl

'this is a sample string'

>>> strl.replace('sample', 'test')

'this is a test string'


 

متد split

متد split() براساس کاراکترهای داده شده، رشته اصلی را به زیر رشته هایی تقسیم می کند و خروجی را به صورت یک لیست برمی گرداند.




>>> str4 = '1, 2,,4, 5'

>>> str4.split(',')

['1', '2', '', '4', '5']







 
 

متد join

  این متد رشته ای را بر می گرداند که در آن عناصر رشته با توجه به کاراکتر خاصی به هم متصل می شوند






>>> days = ['Monday','Tuesday','Wednesday']

>>> week = ' '.join(days)

>>> week

'Monday Tuesday Wednesday'



 

فرمت دهی رشته ها در پایتون (python)

برای فرمت دهی به رشته ا در پایتون دو روش کلی وجود دارد. روش اول استفاده از نحوه نوشتاری مشابه با دسنور printf  در زبان C است که نوع متغیرهای موجود در رشته به همراه علامت درصد (%) [قبل از آنها] در رشته مورد نظر قرار می گیرد و مقدار این متغیرها بعد از رشته در داخل پرانتز می آید. برخ از انواع رایج فرمت دهی رشته ها عبارتند از :
 

تبدیل

علامت فرمت دهی

کاراکتر (single character)

%c

تبدیل به رشته(string)

%s

عدد حقیقی ممیز شناور(floating point decimal)

%f

عدد صحیح ده دهی علامت دار(signed integer decimal)

%d

 
 



>>> s = '%s has %d vacation days left'% ('Tim', 15)

>>> s

'Tim has 15 vacation days left'


 
 
روش دوم استفاده از تابع format است. به این صورت که متغیرها با اندیس هایی با شروع از صفر در متن درون آکولاد قرار می 
گیرند و تابع format  به همراه دات (.) بعد از رشته قرار می گیرد. پارامترهای این تابع مقدار مورد نظری هستند که باید در رشته جایگزین شوند. 
در هنگام کار با رشته ها و فرمت دهی آنها ترتیب قرار گرفتن عبارات جایگزین در پرانتز اهمیت دارد، به طوری که اگر  قرار باشد چندین مقدار از یک نوع داده ای در رشته مورد نظر جایگزین شود، عبارات درون پرانتز که بعد از علامت %  قرار می گیرند، به ترتیب جایگزین مقادیر موجود در رشته می شوند.
می توان عبارات جایگزین را در متغیر قرار داد و با آنها کار کرد.



>>> s1 = "{O} has {1} vacation days left".format('Tim', 15)

>>> s1

'Tim has 15 vacation days left'

>>> c = “No %s for %s !” %('soup', 'you')

>>> C

'No soup for you !'

>>> r = 'food'

>>> d = 'child'

>>> C = "No %s for %s !" %(r, d)

>>> C

NC food for child





 

 

 
 
 
 
توجه داشته باشید که دنباله ها به صورت مبتنی بر صفر (zero-based) می باشند. برای درک بهتر این مطلب به خطای زیر توجه کنید




>>> a = '{0}, {1}, and {2}'.format('this', 'that', 'those')

>>> a

'this, that, and those'

>>> a = '{2}, {1}, and {0}'.format('this', 'that', 'those')

>>> a

'those, that, and this'

>>> a = 'this {1} can {2}'.format('baby', 'walk')



Traceback (most recent call last):

  File "", line 1, in 

       a = 'this {1} can {2}'.format('baby', 'walk')

Index Error : tuple index out of range

>>> b = 'this {0} can {1}'.format('baby', 'walk')

>>> b

'this baby can walk'





 

 
 دریافت ورودی با استفاده از صفحه کلید: دستور input  و raw_input برای دریافت ورودی از کاربر استفاده می شود. برای استفاده از دستور input باید عبارت مورد نظر را در علامت کوتیشن قرار داد وگرنه برنامه اجرا نمی شود و با خطای SyntaxError مواجه می شوید. با استفاده از دستور input به هنگام اجرای برنامه متن عبارت چاپ می شود و مفسر پایتون منتظر دریافت ورودی از کاربر می ماند. برای دریافت ورودی به صورت حروف با استفاده از دستور input باید مقدار را در کوتیشن قرار داد.  معمولا مقدار وارد شده توسط کاربر برای استفاده های بعدی در متغیری ذخیره می شود که این متغیرها باید در سمت چپ دستور input قرار گیرند.
تابع ()input در پایتون 3x  همانند تابع raw_input() در پایتون 2x  است. در پایتون 3x تابع raw_input() وجود ندارد، بلکه تابع input() قدیمی حذف شده است  و تابع raw_input() به  input() تغییر نام داده است، اما به سادگی می توان با استفاده از eval(input()) آن را شبیه سازی کرد.




python2.x                    python3.x

raw_input()   --------------> input()               
input()  -------------------> eval(input())   




 
 
 
در پایتون 2x وقتی تابع raw_input() به کار می رود، ورودی کاربر را به صورت رشته دریافت می کند و برای تبدیل آن به انواع دیگر باید از عمل casting  استفاده کرد.





>>> A=input("Please Enter Your Age:")

Please Enter Your Age: 23

>>> type(A)



>>> A=input("Please Enter Your Name:\n")

Please Enter Your Name:

Tim

Traceback (most recent call last):

   File "", line 1, in 

       A=input("Please Enter Your Name:\n")

   File "", line 1, in 

NameError: name 'Tim' is not defined

>>> A=input ("Please Enter Your Name: \n")

Please Enter Your Name:

'Tim'

>>> type(A)



>>> bottles = raw_input("Daily water consumption: ")

Daily water consumption: 20

>>> type(bottles)

<type str'="">

>>> bottles = input("Daily water consumption: ")

Daily water consumption: 20

>>> type(bottles)



>>> bottles = int (raw_input("Daily water consumption: "))

Daily water consumption: 30

>>> type(bottles)




 
 
 

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس