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





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

من و دوستم دو تا کرمیم که داریم تو سیستم ها وُل می خوریم و بعضی وقت ها براتون چیزایی که تو این وُل خوردن ها یاد گرفتیم رو می نویسیم!!!!!

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

۱۷ مطلب با موضوع «آموزش :: برنامه نویسی :: پایتون» ثبت شده است

در زبان پایتون، تابع input از ورودی استاندارد(که بصورت پیشفرض و معمولا صفحه کلید است) تا زمانی که به نویسه‌ی خط جدید نرسیده میخواند و یک رشته(نوع str) با حذف خط جدید برمیگرداند.استفاده از آن بصورت زیر است:

input(prompt='')

prompt یک رشته است که به عنوان یک پیام به کاربر نمایش داده میشود و از کاربر میخواهد تا چیزی وارد کند، در صورتی که ذکر نشود،رشته‌ای خالی است(یعنی چیزی نمایش داده نمیشود). یک مثال:

name = input('What is your name?')
print('Hi,', name)

فراموش نکنید که تابع یک رشته برمیگرداند و در صورت نیاز باید آنرا به عدد و غیره تبدیل کنید.

مطالب مرتبط:

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

اندی پیش به این فکر میکردم که چطور میتوانم حجم یک پرونده را بدست بیاورم و زیر کاپوت این توابع چه چیزی پنهان است.

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

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

range در پایتون

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

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

  • فاروق کریمی زاده
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

مطالب مرتبط:

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

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

#!/usr/bin/python3
'''
HexView.Py - A simple File Viewer in Hexadecimal format.
Author: FarooghKZ
Under GPL3+. THIS SOFTWARE COMES WITH NO WARRENTY FROM MAIN AUTHOR.
'''

import sys # I inlcude this to use sys.exit() and sys.argv

def showhelp(): # this function shows usage of program
    print("Usage: hexview.py file_path\n\tfile_path: Path of file to view.");
    sys.exit()

if '-h' in sys.argv: #shows help if something like this passed to program: 'hexview.py -h'
    showhelp()

path = sys.argv[1]
filestream = None
fbytes = None

try:
    filestream = open(path,'br') # Open the file in Binary mode for Reading(br)
    fbytes = filestream.read() # Read all bytes from the file 
finally:
    if filestream:
        filestream.close()

rown = 0 
print('')
for b in fbytes:
    s = hex(b).upper()
    s = s.replace('0X','')# "0XBA" => "BA"

    if len(s) == 1: 
        print('0', end='')
    print(s, end=' ')

    rown += 1
    if (rown % 27) == 0:
        print('')

print("\n") # prints 2 newline

پیوند تکه کد در گیت هاب گیست ( برای دریافت به اینجا بروید)

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

تقریبا داخل تمام زبان هایی که از نسل سی هستند شما چیزی رو به اسم مجموعه ها یا آرایه ها دیدید!داخل زبان سی یک آرایه، یک مجموعه از متغیر های همنوع هست که داخل حافظه کنار هم قرار گرفتن.آرایه زیر یک آرایه از 3 عدد صحیح هست:

int ary[3] = {1, 2, 3};
printf("%i\n", ary[0]); // prints 1

داخل پایتون چیزی به اسم آرایه وجود نداره.خود زبان پایتون بصورت ذاتی سه نوع مجموعه داره: لیست ها(Lists)،تیوپل ها(Tuples) و دایرکتوری ها(Directories). این سه تا رو حالا میخوام آموزش بدم.

تمام اینها یک خصوصیت مشترک دارن: میتونن هر نوع متغیر و مقداری رو درونشون ذخیره کنن حتی یک مجموعه دیگه رو!

لیست ها

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

lst = [0, 2, 55]
print(lst[1]) # 2
print(lst[-1]) # 55
_lst = [lst, [lst, [None]]]
print(_lst[0][0]) # 0

تیوپل ها

مثل همون لیست ها هستند اما اعضا رو نمیتونید اضافه یا حذف کنید یا مقدارشون رو تغییر بدید.نسبت به لیست ها سرعتشون بالاتره اما چون زیاد انعطاف پذیر نیستن کمتر کاربرد دارن.

tpl = ()
print(len(tpl)) # 0
tpl = ("", None, 0, False, (), ((), ()))
print(len(tpl)) # 6

دایرکتوری ها

دایرکتوری ها یا دیکشنری های به این صورت عمل میکنن که شما به هر کدوم از عضو ها یک اسم میدید به به جای شماره(index) با اون اسم به اون عضو دسترسی پیدا میکنید.
human = {'name': 'john', 'age': 60, 'port': 6667, 'nicks': ('spacea', 'shayan')}
print(human['name']) # john
print(human['age']) # 60
print(human['nicks'][0]) # spacea
nums = dict() # creates an empty dict
nums['one'] = 1
nums['two'] = 2
nums['three'] = 3
print(nums['one']) # 1

نکته: دایریکتوری ها ترتیب ندارن! مثلا این دوتا باهم برابر هستن!

a = {'a': 10, 'b': 7, 'c': 5}
b = {'b': 7, 'a': 10, 'c': 5}
  • فاروق کریمی زاده

در این قسمت آموزش خواندن یک فایل متنی و همچنین ایجاد و نوشتن یک فایل متنی را مطالعه میکنید.

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

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

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

  1. در یک دور پیمایش جابجایی صورت نگیرد.یعنی در آن دور عددی پیدا نشود که از عدد بعدی خود بزرگتر(یا بصورت نزولی کوچکتر) باشد و جایش با عدد بعدیش عوض نشود.
  2. روش دوم که روش من درآوردی است(خودم ساختمش!) این است که یک تابع جدا بنویسید که یکبار مجموعه را از اول تا آخر پیمایش کند و اگر عددی پیدا نشد که از عدد بعدیش بزرگتر باشد پس فهرست‌ما مرتب است.
روش پیشنهاد شده روش اول است.
  • فاروق کریمی زاده

در زبان پایتون جدا از توابع آماده‌ای که برای این کار وجود دارد این روش نیز روش جالبیست:

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

پایتون یکی از زبان های برنامه نویسی قدرتمند و در عین حال ساده است و برای مبتدیان و تازه‌واردان به دنیای برنامه نویسی نیز گزینه خوبیست.این اسلاید شو بصورت نکته وار و سریع و آسان پایتون را آموزش میدهد. این اسلاید‌شو فقط روی سینتکس زبان مانور میدهد و کتابخانه های پایتون را مانند os،string،socket و ... را آموزش نمیدهد.


حجم: 1.11 مگابایت

مطالب مرتبط:

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