GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing python.github.io — 10. نگاهی کوتاه به کتابخانهی استاندارد 10. نگاهی کوتاه به کتابخانهی استاندارد¶10.1. رابط سیستمعامل¶ماژول >>> import os >>> os.getcwd() # Return the current working directory 'C:\\Python315' >>> os.chdir('/server/accesslogs') # Change current working directory >>> os.system('mkdir today') # Run the command mkdir in the system shell 0 حتماً از سبک توابع توکار >>> import os >>> dir(os) <returns a list of all module functions> >>> help(os) <returns an extensive manual page created from the module's docstrings> برای وظایف روزانه مدیریت پرونده و پوشه، ماژول >>> import shutil >>> shutil.copyfile('data.db', 'archive.db') 'archive.db' >>> shutil.move('/build/executables', 'installdir') 'installdir' 10.2. وایلدکاردهای پرونده¶ماژول >>> import glob >>> glob.glob('*.py') ['primes.py', 'random.py', 'quote.py'] 10.3. آرگومانهای خط فرمان¶اسکریپتهای ابزار رایج اغلب نیاز دارند آرگومانهای خط فرمان را پردازش کنند. این آرگومانها در ویژگی argv ماژول # File demo.py import sys print(sys.argv) خروجی اجرای ['demo.py', 'one', 'two', 'three'] ماژول import argparse parser = argparse.ArgumentParser( prog='top', description='Show top lines from each file') parser.add_argument('filenames', nargs='+') parser.add_argument('-l', '--lines', type=int, default=10) args = parser.parse_args() print(args) هنگامی که این اسکریپت با دستور 10.4. تغییر مسیر خروجی خطا و پایان دادن به برنامه¶ماژول >>> sys.stderr.write('Warning, log file not found starting a new one\n') Warning, log file not found starting a new one مستقیمترین راه برای پایان دادن به یک اسکریپت استفاده از 10.5. تطبیق الگوهای رشتهای¶ماژول >>> import re >>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest') ['foot', 'fell', 'fastest'] >>> re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat') 'cat in the hat' وقتی فقط به قابلیتهای ساده نیاز است، استفاده از متدهای رشتهای ترجیح داده میشود، زیرا خواندن و اشکالزدایی آنها آسانتر است: >>> 'tea for too'.replace('too', 'two') 'tea for two' 10.6. ریاضیات¶ماژول >>> import math >>> math.cos(math.pi / 4) 0.70710678118654757 >>> math.log(1024, 2) 10.0 ماژول >>> import random >>> random.choice(['apple', 'pear', 'banana']) 'apple' >>> random.sample(range(100), 10) # sampling without replacement [30, 83, 16, 4, 8, 81, 41, 50, 18, 33] >>> random.random() # random float from the interval [0.0, 1.0) 0.17970987693706186 >>> random.randrange(6) # random integer chosen from range(6) 4 ماژول >>> import statistics >>> data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5] >>> statistics.mean(data) 1.6071428571428572 >>> statistics.median(data) 1.25 >>> statistics.variance(data) 1.3720238095238095 پروژهی SciPy <https://scipy.org> ماژولهای بسیار دیگری برای محاسبات عددی دارد. 10.7. دسترسی به اینترنت¶تعدادی ماژول برای دسترسی به اینترنت و پردازش پروتکلهای اینترنتی وجود دارد. دو مورد از سادهترین آنها >>> from urllib.request import urlopen >>> with urlopen('https://docs.python.org/3/') as response: ... for line in response: ... line = line.decode() # Convert bytes to a str ... if 'updated' in line: ... print(line.rstrip()) # Remove trailing newline ... Last updated on Nov 11, 2025 (20:11 UTC). >>> import smtplib >>> server = smtplib.SMTP('localhost') >>> server.sendmail('[email protected]', '[email protected]', ... """To: [email protected] ... From: [email protected] ... ... Beware the Ides of March. ... """) >>> server.quit() (توجه کنید که مثال دوم به یک سرور ایمیل در حال اجرا روی localhost نیاز دارد.) 10.8. تاریخها و زمانها¶ماژول >>> # dates are easily constructed and formatted >>> import datetime as dt >>> now = dt.date.today() >>> now datetime.date(2003, 12, 2) >>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.") '12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.' >>> # dates support calendar arithmetic >>> birthday = dt.date(1964, 7, 31) >>> age = now - birthday >>> age.days 14368 10.9. فشردهسازی دادهها¶قالبهای رایج بایگانی و فشردهسازی داده مستقیماً توسط ماژولهایی مانند >>> import zlib >>> s = b'witch which has which witches wrist watch' >>> len(s) 41 >>> t = zlib.compress(s) >>> len(t) 37 >>> zlib.decompress(t) b'witch which has which witches wrist watch' >>> zlib.crc32(s) 226805979 10.10. اندازهگیری کارایی¶برخی کاربران پایتون علاقهی زیادی دارند که کارایی نسبی روشهای مختلف برای حل یک مسئلهی یکسان را بدانند. پایتون ابزاری برای اندازهگیری فراهم میکند که بلافاصله به این پرسشها پاسخ میدهد. برای مثال، ممکن است وسوسه شوید که بهجای روش سنتی جابهجایی آرگومانها، از قابلیت بستهبندی و واگشایی تاپلها استفاده کنید. ماژول >>> from timeit import Timer >>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit() 0.57535828626024577 >>> Timer('a,b = b,a', 'a=1; b=2').timeit() 0.54962537085770791 برخلاف دقت بسیار بالای 10.11. کنترل کیفیت¶یکی از روشها برای توسعهی نرمافزار با کیفیت بالا این است که برای هر تابع، همزمان با توسعهی آن، آزمونهایی نوشته شود و این آزمونها در طول فرایند توسعه بهطور مکرر اجرا شوند. ماژول def average(values): """میانگین حسابیِ یک فهرست از اعداد را محاسبه میکند. >>> print(average([20, 30, 70])) 40.0 """ return sum(values) / len(values) import doctest doctest.testmod() # automatically validate the embedded tests ماژول import unittest class TestStatisticalFunctions(unittest.TestCase): def test_average(self): self.assertEqual(average([20, 30, 70]), 40.0) self.assertEqual(round(average([1, 5, 7]), 1), 4.3) with self.assertRaises(ZeroDivisionError): average([]) with self.assertRaises(TypeError): average(20, 30, 70) unittest.main() # Calling from the command line invokes all tests 10.12. همهچیز آماده درون جعبه¶پایتون از فلسفهی «همهچیز آماده درون جعبه» (batteries included) پیروی میکند. این موضوع را میتوان به بهترین شکل در قابلیتهای پیشرفته و قدرتمند بستههای بزرگتر آن مشاهده کرد. برای مثال:
© حق نشر 2001 Python Software Foundation.
این صفحه تحت مجوز بنیاد نرمافزار پایتون نسخه ۲ منتشر شده است. مثالها، دستورالعملها، و سایر کدهای موجود در مستندات همچنین تحت مجوز بدون بند BSD منتشر شدهاند. برای اطلاعات بیشتر به تاریخچه و مجوز مراجعه کنید. بنیاد نرمافزار پایتون یک شرکت غیرانتفاعی است. لطفاً کمک مالی کنید. آخرین بهروزرسانی در نوامبر 12, 2026 (06:19 UTC). آیا اشکالی یافتید؟ ساخته شده با Sphinx 9.1.0. |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |