دوره ویژه مقدماتی پایتون – Telegram
دوره ویژه مقدماتی پایتون
436 subscribers
248 photos
4 videos
250 links
Download Telegram
✍️توابع عددی

برای یافتن بزرگترین و کوچکترین عدد در لیست ها یا در بین تعدادی عدد، از توابع max و min استفاده میکنیم.
برای یافتن فاصله ی عددی از صفر ( ارزش مطلق آن) از abs استفاده میکنیم.
برای داشتن یک عدد به صورت ده ده ی از تابع round استفاده میکنیم.
و برای جمع تمامی اعداد یک لیست از تابع sum استفاده میکنیم.

print(min(1, 2, 3, 4, 0, 2, 1))
print(max([1, 4, 9, 2, 5, 6, 8]))
print(abs(-99))
print(abs(42))
print(sum([1, 2, 3, 4, 5]))

خروجی :
>>>
0
9
99
42
15
>>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
حاصل کد زیر چیست ؟
a=min([sum([11, 22]), max(abs(-30), 2)])‎
print(a)

1️⃣: 20
️0%(0)
2️⃣: 30
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(38)
3️⃣: 12
️0%(0)
4️⃣: 22
️0%(0)

👥: 38شرکت در نظر سنجی
✍️توابع لیستی

این توابع اغلب در شرایط شرطی استفاده می شوند ، all و any یک لیست را به عنوان یک آرگومان میگیرند ، و all و any ارزیابی می کنند که اگر شرط بر روی همه و یا هیچ عددی برقرار باشد،True را بر می گرداند و در غیر این صورت، false برگردانده می شود.
تابع enumerate می تواند با برگرداندن مقدار و اندیس آن به طور هم زمان، یک عمل تکراری را بر روی آن ها انجام دهد.

nums = [55, 44, 33, 22, 11]

if all([i > 5 for i in nums]):
print("All larger than 5")

if any([i % 2 == 0 for i in nums]):
print("At least one is even")

for v in enumerate(nums):
print(v)

خروجی :
>>>
All larger than 5
At least one is even
(0, 55)
(1, 44)
(2, 33)
(3, 22)
(4, 11)
>>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchalleng
خروجی کد زیر چیست؟
nums = [-1, 2, -3, 4, -5]
if all ([abs(i) < 3 for i in nums]): print(1) else: print(2)
Anonymous Poll
11%
1
87%
2
2%
4
✍️آنالیز متن

این یک پروژه نمونه است، در این برنامه یک فایل را تجزیه و تحلیل می کنیم تا بررسی کنیم هر کاراکتر چنددرصد از متن را گرفته است.
filename = input("Enter a filename: ")

with open(filename) as f:
text = f.read()

print(text)

خروجی :
>>>
Enter a filename: test.txt
Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcenfr fv orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabthu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orgnf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba bg thrff.
Gurer fubhyq or bar-- naq cersrenoylbayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
با دستور with فایل زیر را بخوانید.

1️⃣: with open(filename) as f:
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(41)
2️⃣: as open(filename) with f:
️0%(0)
3️⃣: r open(filename)as f:
️0%(0)

👥: 41شرکت در نظر سنجی
✍️آنالیز متن - (قسمت دوم)

در این قسمت از برنامه تابعی را مشاهده میکنید که شمارش میکند که از یک نوع کاراکتر، چندتا در متن وجود دارد.

def count_char(text, char):
count = 0
for c in text:
if c == char:
count += 1
return count

این تابع یک کارکتر از یک فایل را میگیرد و تعداد دفعاتی کاراکتر در متن ظاهر شده است را نمایش میدهد.

filename = input("Enter a filename: ")
with open(filename) as f:
text = f.read()

print(count_char(text, "r"))

خروجی :
>>>
Enter a filename: test.txt
83
>>>

⚠️کاراکتر r در فایل text 83 بار تکرار شده است.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
چرا صکد شمارش کاراکتر در تابع قرار گرفت؟

1️⃣: تا بتوان آن را چندین بار اجرا کرد
️|||||||||||||||||||||||||||||||||||||||||||||||95%(35)
2️⃣: تا بتواند فایل ها را بخواند
️0%(0)
3️⃣: تا سریعتر اجرا شود
️||5%(2)

👥: 37شرکت در نظر سنجی
✍️آنالیز متن - (قسمت سوم)

در این قسمت میخواهیم کاراکتر هایی را پیدا کنیم که در الفبا هستند و بگوییم چند درصد تکرار شده اند.
for char in "abcdefghijklmnopqrstuvwxyz":
perc = 100 * count_char(text, char) / len(text)
print("{0} - {1}%".format(char, round(perc, 2)))
در برنامه قبلی که توضیح داده ایم قرار میدهیم :
def count_char(text, char):
count = 0
for c in text:
if c == char:
count += 1
return count

filename = input("Enter a filename: ")
with open(filename) as f:
text = f.read()

for char in "abcdefghijklmnopqrstuvwxyz":
perc = 100 * count_char(text, char) / len(text)
print("{0} - {1}%".format(char, round(perc, 2)))
خروجی :
Enter a filename: test.txt
a - 4.68%
b - 4.94%
c - 2.28%

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
هدف از تابع round کد برنامه قبلی چیست ؟

1️⃣: برای صرفه جویی در رم
️0%(0)
2️⃣: برای دقت بیشتر
️0%(0)
3️⃣: برای کاهش تعداد رقم های چاپ شده
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(40)

👥: 40شرکت در نظر سنجی
⛔️ بخش more types به پایان رسید، می توانید برای ارزیابی خود، به سوالات زیر پاسخ دهید.

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
آیا شما می توانید یک قسمت از تاپل را بردارید؟

1️⃣: بله
️|||||||15%(6)
2️⃣: خیر
️||||||||||||||||||||||||||||||||||||||||||85%(34)

👥: 40شرکت در نظر سنجی
کدام یک از کدهای زیر لیست numbers را برعکس می کند؟

1️⃣: numbers[ : :-1]
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(37)
2️⃣: numbers[ : : ]
️0%(0)
3️⃣: numbers[-1 : : ]
️0%(0)

👥: 37شرکت در نظر سنجی
کدام یک از گزینه های زیر یک لیست غیر قابل تغییر هستند؟

1️⃣: دیکشنری
️|3%(1)
2️⃣: تاپل
️|||||||||||||||||||||||||||||||||||||||||||||||||98%(39)
3️⃣: عدد
️0%(0)

👥: 40شرکت در نظر سنجی
کدام یک از گزینه های زیر توسط یک تابعی که return ندارد، بازگردانده می شود؟

1️⃣: False
️0%(0)
2️⃣: None
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(40)
3️⃣: 0
️0%(0)

👥: 40شرکت در نظر سنجی
خروجی کد زیر چیست؟
nums = (55, 44, 33, 22)
print(max(min(nums[ : 2 ]), abs(-42)))

1️⃣: 2
️0%(0)
2️⃣: 42
️|2%(1)
3️⃣: 44
️|||||||||||||||||||||||||||||||||||||||||||||||||98%(41)
4️⃣: -42
️0%(0)

👥: 42شرکت در نظر سنجی
⁉️ تست 128 : خروجی کد زیر چیست؟
def test(func, arg):
return func(func(arg))

def mult(x):
return x * x

print(test(mult, 2))

1️⃣: 2
️0%(0)
2️⃣: 4
️|3%(1)
3️⃣: 8
️0%(0)
4️⃣: 16
️||||||||||||||||||||||||||||||||||||||||||||||||97%(36)

👥: 37شرکت در نظر سنجی
✍️برنامه نویسی کاربردی (Functional programming)

همانطور که از نام آن پیداست، برنامه نویسی کاربردی یک استایل برنامه نویسی است که حول توابع کار می کند. کلید اصلی این نوع برنامه نویسی توابع سطح بالا (higher order funtions) هستند که قبلتر آن ها را به عنوان "استفاده از توابع به عنوان اشیا" دیدیم. توابع سطح بالا، توابع دیگر را به عنوان ورودی دریافت می کنند و یا توابع دیگر را به عنوان خروجی بر می گردانند.

def apply_twice (func, arg) :
return func(func(arg))

def add_five(x):
return x+5

print(apply_twice(add_five, 10))

خروجی :
>>>
20
>>>

📌تابع apply_twice، تابع دیگر را به عنوان ورودی دریافت می کند و آن را 2 بار در درون خود فراخوانی میکند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
✍️توابع خالص (pure functions)

برنامه نویسی کاربردی به دنبال این است که از توابع خالص استفاده کند. توابع خالص هیچ گونه تاثیری خارج از خود تابع ندارند و فقط خروجی ای تولید می کنند که فقط و فقط به ورودی هایش متکی است.
همان طوری که توابع math کار میکنند، برای مثال: cos(x)، که با گرفتن یک ورودی x فقط و فقط مقدار cos را محاسبه می کند و آن را به عنوان خروجی می دهد.

مثالی از توابع خالص:
Def pure_function(x, y) :
Temp = x + 2*y
Return temp / (2*x + y)

توابع نا خالص :
Some_list = [ ]

Def impure(arg) :
Some_list.append(arg)

✍️تابع بالا ناخالص است چون مقدار some_list در خارج از تابع را تغییر می دهد.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️ تست 129 : این یک تابع خالص است؟
def func(x):
y = x**2
z = x+y
return z

1️⃣: بله
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(38)
2️⃣: خیر
️0%(0)
3️⃣: بستگی دارد
️0%(0)

👥: 38شرکت در نظر سنجی
✍️توابع خالص – ( قسمت دوم)

استفاده از توابع خالص مزایا و معایبی دارد:
می توان از این توابع به راحتی نتیجه گیری کرد و از آن تست گرفت.
این توابع کارآمدتر هستند.
زمانی که ورودی تابع ارزیابی شد و محاسبات تابع انجام شد، خروجی می تواند نگهداری شود و بعدا به آن ارجاع شود (زمانی که به آن احتیاج باشد). از این طریق تعداد فراخوانی توابع هم کمتر می شود. به این کار memorization می گویند.
به صورت همزمان، آسان تر اجرا می شود.

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

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge