نوشتن متغییر ها به چه صورت انجام میشود ؟
نوشتن متغییر ها به چه صورت انجام میشود ؟
نوشتن متغییر ها به چه صورت انجام میشود ؟
آرگومان متد write باید یک رشـته باشـد، بنـابراین اگـر بخـواهیم مقـادیر دیگـري در فایـل بگذاریم باید اول آنها را به رشته تبدیل کنیم. سادهترین راه براي این کار استفاده از تابع str است:
>>> x = 52
>>> f.write (str(x))
راه دیگر، استفاده از عملگر قالببندي % است. وقتـی عملگـر % را بـا اعـداد صـحیح بـه کـار میبریم، عملگر باقیمانده است، اما وقتی اولین عملوند یک رشته باشد، یک عملگر قالببندي است. اولین عملوند، یک رشتۀ قالببندي است و دومـین عملونـد یـک چنـدتایی از عبـارات اسـت. نتیجه، رشتهاي شامل مقادیر عبارات با قالبی مطابق با رشتۀ قالببندي است. به عنوان یک مثال سـاده، دنبالۀ قالببنـدي “d “%یعنـی اولـین عبـارت در چنـدتایی بایـد بهعنوان یک عدد صحیح قالببندي شود. در اینجا d نمادي براي نشان دادن ”decimal ”است:
>>> cars = 52
>>> “%d” % cars
’52’
نتیجه، رشتۀ ’52 ‘است که نباید با مقدار صحیح 52 اشتباه گرفته شود. یک دنبالۀ قالببندي میتواند در هر جاي رشتۀ مورد نظر قرار گیرد. بنابراین، ما میتوانیم یـک مقدار را در یک رشته جاسازي کنیم:
>> cars = 52
>>> “In July we sold %d cars.” % cars
‘In July we sold 52 cars.’
دنبالۀ قالببندي “f ،”%بخش بعـدي را در چنـدتایی بـهعنـوان یـک عـدد اعشـاري و دنبالـۀ قالببندي “s ،”%بخش بعدي را در چندتایی بهعنوان یک رشته، قالببندي میکند:
>>> “In %d days we made %f million %s.” % (34,6.1,’dollars’)
‘In 34 days we made 6.100000 million dollars.’
بنابه قرارداد، قالببندي اعداد اعشاري با شش رقم اعشار چاپ میشود. تعداد عباراتی که در چندتایی وجود دارد باید با تعداد دنبالههاي قالببندي که در رشته وجـود دارد، مطابق باشد:
>>> “%d %d %d” % (1,2)
TypeError: not enough arguments for format string
>>> “%d” % ‘dollars’
TypeError: illegal argument type for built-in operation
در مثال اول، عبارات کافی وجود نداشت و در مثال دوم نوع عبارت غلط است. براي کنترل بیشتر بر روي قالببندي اعداد، ما میتـوانیم تعـداد ارقـام را بـهعنـوان قسـمتی از دنبالۀ قالببندي مشخص کنیم:
>> “%6d” % 62
‘ 62’
>>> “%12f” % 6.1
‘ 6.100000’
شمارة بعد از علامت درصد حداقل تعداد مکانهایی است که عـدد، خواهـد گرفـت. اگـر مقـدار تولید شده رقمهاي کمتري جا گرفت، فضاي خالی قبل از عدد اضافه میشوند و اگر مکانها منفـی بـود فضاي خالی بعد از عدد اضافه میشوند:
>> “%-6d” % 62
’62 ‘
براي اعداد اعشاري ما میتوانیم تعداد ارقام بعد از ممیز را هم مشخص کنیم:
>> “%12.2f” % 6.1
‘ 6.10’
در این مثال نتیجه، دوازده فضاي خالی میگیرد و دو رقم بعد از ممیز را شـامل مـیشـود. ایـن قالببندي براي چاپ مبالغ دلار با ممیزهاي همتراز مفید است. براي مثال یک دیکشنري شامل نام دانشجویان بهعنوان کلید و ساعت کار آنها بهعنـوان مقـدار در نظر بگیرید. در اینجا تابعی که محتویات آن دیکشنري را بهطور گزارشـات قالـببنـدي شـده چـاپ میکند میبینید:
def report (wages):
students = wages.keys()
students.sort()
for student in students:
print “%-20s %12.02f” % (student, wages[student])
براي آزمایش این تابع ما یک دیکشنري کوچک میسازیم و محتویات آن را چاپ میکنیم:
>>> wages = {‘mary’: 6.23, ‘joe’: 5.45, ‘joshua’: 4.25}
>>> report (wages)
joe 5.45
joshua 4.25
mary 6.23
تا زمانی که نامها کمتر از 21 کاراکتر و دستمزدها کمتر از یک میلیارد دلار در سـاعت هسـتند با کنترل عرض هر مقدار تضمین میکنیم که ستونها در یک ردیف قرار میگیرند.
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید