کرم های کامپیوتر

کرم های کامپیوتر

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

ربات تلگرامی ما
آخرین نظرات


عید نوروز بر شما مبارک باد

  • ۱۳ نمایش
  • بهنام سیم جو

range در پایتون

۰۶
فروردين
range([start,]end)
range(start, end[, step])

تابع range در زبان پایتون یک مجموعه از اعداد را از start تا end-1 بر میگرداند و در صورتی که start ذکر نشود، آن بصورت پیشفرض ۰ است.step نیز مشخص میکند که چند بار چند بار بریم جلو، که بصورت پیشفرض ۱ هست.

  • فاروق کریمی زاده

فکر نمیکنم نیازی به توضیح باشه، جز اینکه این هم برای ویندوز های ۳۲ بیتی و هم ۶۴ بیتی هست،نسخه‌ی برنامه 1.11 هست و تحت پروانه فراگیر همگانی گنو، نسخه دوم(GPLv2) منتشر شده است.


حجم: 107 کیلوبایت

  • فاروق کریمی زاده

خدایی این مدت که از ویندوز 10 استفاده کردم با انواع چالش ها مواجه شدم! چالش هایی که تا به حال به چشم ندیده بودم!

اولیش نخوندن درایور سی دی رام ( CD-ROM) بود. خیلی عجیب بود چون اولین باری بود که یک سیستم عامل با سی دی رام آشنا نبود. دنبال آپدیت های درایور گشتم. هر نسخه ای که موجود بود برای داس بود. انگار که فقط داس بود که نمی شناخت!

چالش بعدی اررور های بلو اسکرین (blue screen) بود. بعد از بیست دقیقه ارور می داد و سیستم ریستارت می شد.

بعد از گذشتن از همه ی این ها ماکروسافت چالشی جدید برای کاربران خود تدارک دید که موجب خاموش نشدن سیستم میشود!!!!! تو آپدیت جدید این اشکال وجود داره که حتی با زدن دکمه ی shut down هم سیستم خاموش نمی شود ( حتی با دسترسی هم خاموش نمی شه!!!!)

خوشم میاد ماکروسافت هر سری با چالش های جدیدش همه رو غافلگیر می کنه و از ما یک کاربر همه فن حریف می سازه!!

به هر حال من دیگه از این چالش های ماکروسافت طاقت نیاوردم و به لینوکس اسباب کشی کردم :-) البته هنوزم از ویندوز استفاده می کنم ولی دارم سعی می کنم بهش وابسته نشم. ممنون از ماکروسافت که باعث شد لینوکسی بشم!!

  • بهنام سیم جو
enumerate در واقع یک کلاس هست و کاربرد اصلیش در حلقه‌ی for هست. برای این به کار میره که همزمان که عناصر یک مجموعه رو میخونید، یک متغیر داشته باشید که در هر دور حلقه یک واحد افزایش پیدا بکنه، یک کاربرد دیگه اینه که همزمان که مقادیر یک مجموعه رو میخونید، شماره index مقادیر رو هم داشته باشید(با صفر قرار دادن اون متغیر).سینتکس کلی بصورت زیر هست:
enumerate(myCollection, [start])

و در حلقه‌ی for میتونید به این صورت استفاده بکنید ازش:

for enum, value in enumerate(myCollection, [start]):
loop_statments

start شماره‌ی شروع رو مشخص میکنه و بصورت پیشفرض برابر با صفر قرار داده میشه. این تکه کد عناصر یک لیست رو دوبرابر میکنه(روش بهتری هم برای دوبرابر کردن عناصر یک لیست وجود داره، اما خواستم یک مثال از کاری که میتونیم با این بکنیم ارائه بدم):

myList = [1, 2, 3, 4, 5]
for index, value in enumerate(myList):
myList[index] = value * 2

این هم یک کد دیگه با خروجیش:

myList = [2, 3, 4, 5]
for i, v in enumerate(myList, -1):
print(i, v)

خروجی:

-1 2
0 3
1 4
2 5

مطالب مرتبط:

  • فاروق کریمی زاده
DateTime date = DateTime.Today;
persianCalender persian = new persianCalender()
int year= persian.GetYear(date);

if (year>1395)
{
   Console.Write("Happy new year:-D\nNew year: ");
   Console.Write(year);
}

---------------------------- Output ---------------------------

Happy new year :-D

New year: 1396        

  • بهنام سیم جو

این نوع حلقه که در c++11(همون C++0x) معرفی شد، الآن در زبان های برنامه نویسی جاوا، سی شارپ، پایتون، پرل و روبی وجود دارد، حلقه for-each برای انجام دادن یک عمل برای تمام اعضای یک مجموعه - مثلا یک آرایه - است، کد زیر را در نظر بگیرید:

int ary[5] = {1, 2, 4, 8, 16};
for (int i = 0; i < 5; i++){
cout << ary[i] << endl;
}

اما با استفاده از حلقه for-each میتوانید کار بالا را بصورت زیر انجام بدهید:

int ary[5] = {1, 2, 4, 8, 16};
for (a : ary){
cout << a << endl;
}

سینتکس کلی بصورت زیر هست:

for ( range_declaration : range_expression ) loop_statement

 در range_declaration باید متغیری رو که هر بار برابر با یکی از عناصر range_expression قرار میگیره رو تعریف بکنید، میتونید از کلمه کلیدی auto(که در C++11) معرفی شد استفاده بکنید یا خودتون یک نوع رو مشخص بکنید:

int ary[5] = {1, 2, 4, 8, 16};
for (auto a : ary){
cout << a << endl;
}

همچنین میتونید از یک نوع ارجاعی استفاده بکنید تا بتونید همزمان عناصر رو تغییر هم بدید:

int ary[5] = {1, 2, 4, 8, 16};
for (int& a : ary){
a *= 2;
}

اما کاری که میتونستید با حلقه for معمولی بکنید و با for-each نمیتونید بکنید، فهمیدن index عنصر فعلی هست، حلقه for-each امکانی رو برای این نداره، لذا باید خودتون یک متغیر تعریف کنید و هر بار افزایش بدیدش.

int ary[5] = {1, 2, 5, 8, 16};
int index = 0;
for (int a : ary){
cout << "Element #" << index++ << " is " << a << endl;
}
  • فاروق کریمی زاده

با sshfs میتونید یک دایرکتوری در سرور رو روی یک دایرکتوری در رایانه محلی تون سوار بکنید(mount) و از این طریق به فایل های روی سرور دسترسی داشته باشید.

sshfs [user@]host:[dir] mountpoint [options]

از همون نام کاربری و رمز عبوری که برای ssh استفاده میکنید، برای sshfs نیز استفاده بکنید.بعد از سوار شدن میتوانید به فایل ها همانند فایل های محلی روی رایانه محلی، دسترسی داشته باشید.برای unmount کردن هم:

fusermount -u mountpoint
  • فاروق کریمی زاده

 

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

  • بهنام سیم جو

چند روز پیش یه بازی گرفتم و نصبش کردم و سری بعد که خواستم بازی کنم دیدم پیغام داده که فایل گم شده. گشتم دیدم آنتی ویروس فایل رو حذف کرده پوشه ی بازی رو تو لیست چشم پوشی گذاشتم و بازی رو دوباره نصبش کردم. فرداش بازم دیدم گند زده به بازیم. برای این که از دستش راحت شم رفتم کاسپرسکی رو فعال کردم. یک چند روزی کار کرد تا همین دیروز که ۳۰ روزش تموم شد حالا دوباره راه انداختمش و از آنتی ویروس ها حالم بهم می خوره. اکثرا الکی سیستم رو کند می کنن،  حجم اینترنتت رو بابت آبدیت ها تموم میکنن، بعضی ها هم که فایل های اشتباهی حذف می کنن یک سری ها هم که ایران رو تحریم کردن. البته بگم ما ویندوزی های بیچاره باید از آنتی ویروس استفاده بکنیم، خوش به حال لینوکس ها و یونیکسی ها که کاری به کار آنتی ویروس ندارن. من که خودم به شخصه ترجیه می دم ویروس ها رو دستی حذف کنم تا این که دو ساعت منتظر بمونم تا آنتی ویروسم اسکن کنه و شاید بد افزاری پیدا کنه! امان از دسته این آنتی ویروس ها!! فکر کنم اسم عقیده ی من "آنتی آنتی ویروس" باشه! 

  • بهنام سیم جو

چند وقت پیش میخواستم چند تا اسکریپت پرل را تست بکنم و در حال نوشتن یک برنامه ساده با پرل بودم که مجبور شدم آپاچی را نصب و پیکره‌بندی بکنم.

نکته: فکر نمیکنم لازم به ذکر باشه که باید دسترسی ریشه داشته باشید.

نکته: با توجه به اینکه من از اوبونتو ۱۶.۰۴ استفاده میکنم شاید نیاز باشه تا بعضی دستورات را با توجه به توزیع خود تغییر دهید.

نکته:‌ اگر کمی باهوش(یا باتجربه؟) باشید میتوانید با توجه به این آموزش آپاچی را برای ویندوز و سایر شبه یونیکس ها هم پیکره‌بندی بکنید.

برای اینکار اول آپاچی را نصب کنید(در توزیع شما ممکن است متفاوت باشد):

apt install apache2

حال آدرس localhost یا 127.0.0.1 را در مرورگر وارد بکنید، اگر صفحه It works ظاهر شد پس آپاچی به درستی نصب شده است. حال این دو خط را به فایل /etc/apache2/apache2.conf اضافه کنید:

AddHandler cgi-script .cgi .pl
ServerName 127.0.0.1

حال این بلاک را پیدا کنید:

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

و آنرا به این تغییر دهید:

<Directory /var/www/>
    Options Indexes FollowSymLinks
ExecCGI
    AllowOverride None
    Require all granted
</Directory>

حال باید ماژول cgi را با این دستور فعال بکنید:

a2enmod cgi

و سرویس مربوط به آپاچی را از نو راه‌اندازی بکنید(در توزیع شما ممکن است متفاوت باشد):

service apache2 restart

پایان!

  • فاروق کریمی زاده