آموزش برنامه نویسی

به روز ترین مطالب آموزشی و متدلوژی های برنامه نویسی

آموزش برنامه نویسی

به روز ترین مطالب آموزشی و متدلوژی های برنامه نویسی

آموزشگاه تحلیل داده فعالیت رسمی خود را از سال 1380 در قالب آموزشگاه تخصصی نرم افزار آغاز نموده. این موسسه از همان ابتدای تأسیس با بهره مندی از استاید حرفه ای رشته های نرم افزار و بانک های اطلاعاتی ، فعالیت تخصصی خود را در زمینه آموزش برنامه نویسی و بانک های اطلاعاتی آغاز نمود و پس از گذشت اندک زمانی توانست در زمینه نرم افزار و شبکه بعنوان یکی از حرفه ای ترین موسسات ایران ظاهر شود. با توجه به اینکه مدیریت آموزشگاه شخصاً در رشته نرم افزار تحصیل کرده و سابقه طولانی در تحلیل و طراحی و پیاده سازی نرم افزار و بانک های اطلاعاتی دارند ، خط مشی کلی موسسه بر مبنای آموزش پایه ای ، کاربردی ، عملی و تخصصی نرم افزار بنا شده است.


آدرس : خیابان شریعتی بالاتر از ملک جنب بانک صادرات طبقه دوم واحد 7
همراه: 09123840871 تلفن: 88146323 - 88146330

۷ مطلب در تیر ۱۳۹۹ ثبت شده است

  • ۰
  • ۰
سلام دوستان ...در قسمت قبل آموزش پایتون مفاهیم زیر را یاد دادیم
  • مقایسه دنباله ها و سایر انواع در برنامه نویسی Python
  • آموزش ماژول ها در برنامه نویسی پایتون
  • آموزش ماژول های استاندارد در برنامه نویسی پایتون
  • آموزش تابع dir() در برنامه نویسی پایتون
با ادامه آموزش پایتون همراه ما باشید.
 

 

آموزش خواندن و نوشتن فایل در زبان برنامه نویسی پایتون
دستور open() یک شی فایل (file object) را باز می گرداند، و در اکثر مواقع با دو آرگومان استفاده می شود:
open(filename, mode)
>>> f = open('workfile', 'w')
آرگومان اول یک رشته شامل نام فایل است. آرگومان دوم یک رشته دیگر شامل تعداد کمی کاراکتر است که روش استفاده از فایل را توصیف می کند. حالت (mode) می تواند r باشد برای زمانی که فایل فقط خوانده می شود، w برای فقط نوشتن (فایل موجود با نام مشابه پاک خواهد شد)، و a فایل را برای افزودن(append) باز می کند؛
هر داده ای که در فایل نوشته شود به صورت خودکار به انتهای فایل اضافه می شود. r+ فایل را برای خواندن و نوشتن باز می کند. آرگومان حالت اختیاری است.
در صوت حذف، r در نظر گرفته می شود. به طور معمول فایل ها در حالت متن(text) باز می شوند، این به این معنی است که شما رشته ها را از فایل می خوانید و درون فایل می نویسید، که این فایل به یک روش رمزنگاری خاص کدگذاری شده است.
اگر روش رمزنگاری مشخص نشده باشد، پیش فرض وابسته به پلتفرم(platform) است
اگر b به حالت اضافه شود، فایل در حالت باینری (binary) باز می شود.، حال، داده در قالب اشیای بایت خوانده و نوشته می شود. این حالت باید برای همه فایل هایی که شامل متن نیستند استفاده شود.
هنگام خواندن در حالت متن، پیش فرض این است که انتهای خطوط خاص هر پلتفرم (\n در Unix، \r\n در ویندوز) را فقط به \n تبدیل کند. هنگام نوشتن در حالت متن، پیش فرض این است که هر جا \n وجود دارد را به انتهای خطوط خاص هر پلتفرم بازگرداند. این تغییرات پشت پرده روی داده فایل برای فایل های متنی مشکلی ایجاد نمی کند، اما داده های باینری مانند فایل های JPEG یا EXE را خراب می کند.
در هنگام خواندن و نوشتن چنین فایل هایی بسیار مراقب استفاده از حالت باینری باشید. خوب است هنگام کار با اشیای فایل از کلمه کلیدی with استفاده کنید. مزیت آن این است که پس از اتمام مجموعه فایل، حتی درصورتی که در جایی یک استثنا رخ دهد، فایل به درستی بسته می شود. همچنین استفاده از with بسیار کوتاهتر از نوشتن بلاک try-finally برابر با آن است.
>>> with open('workfile') as f:
... read_data = f.read()
 
>>> # We can check that the file has been automatically closed.
>>> f.closed
True
اگر از کلمه کلیدی with استفاده نمی کنید، پس باید f.close() را فراخوانی کنید تا فایل را ببندد و فورا منابع سیستمی استفاده شده توسط آن را آزاد کند. اگر صریحا یک فایل را نبندید، زباله جمع کن پایتون (Python’s garbage collector) نهایتا شی را نابود می کند و فایل را برای شما می بندد، اما ممکن است برای مدتی فایل باز بماند. احتمال خطر دیگری که وجود دارد این است که پیاده سازی های مختلف پایتون، این عمل تمیز کردن را در زمان های مختلف انجام می دهند. پس از اینکه یک شی فایل بسته شد، تلاش برای استفاده از شی فایل چه از طریق عبارت with یا با فراخوانی f.close() ، به صورت خودکار شکست می خورد.
>>> f.close()
>>> f.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file.
</module></stdin>

 

آموزش متدهای اشیای فایل در آموزش پایتون
در بقیه مثال های این بخش فرض شده است که یک شی فایل به نام f پیش از این ایجاد شده است. برای خواندن محتویات یک فایل f.read(size) را فراخوانی کنید، که تعدادی داده را می خواند و به صورت یک رشته(در حالت متن) یا شی بایت (در حالت باینری) باز می گرداند.
سایز Size یک آرگومان عددی اختیاری است. زمانی که size حذف شود یا منفی باشد، کل محتویات فایل خوانده و باز گردانده می شود. این مشکل شماست اگر فایل دو برابر بزرگتر از حافظه سیستم شماست. در غیر این صورت، حداکثر اندازه کاراکتر (در حالت متن) یا اندازه بایت(در حالت باینری) خوانده و باز گردانده می شود. اگر به انتهای فایل رسیده باشیم، f.read() یک رشته خالی را باز می گرداند (‘ ‘).
>>> f.read()
'This is the entire file.\n'
>>> f.read()
''
دستور f.readline() یک خط از فایل را می خواند. کاراکتر خط جدید (\n) در انتهای رشته قرار می گیرد، و فقط زمانی حذف می شود که به آخرین خط فایل رسیده باشیم، و البته اگر فایل با خط جدید(\n) تمام نشود. این باعث می شود تا مقدار بازگشتی واضح باشد. اگر f.readline() یک رشته خالی را باز گرداند، به انتهای فایل رسیدیم، در حالی که یک خط خالی توسط \n نمایش داده شده است، یک رشته شامل تنها یک خط جدید.
>>> f.readline()
'This is the first line of the file.\n'
>>> f.readline()
'Second line of the file\n'
>>> f.readline()
''
برای خواندن خطوط از یک فایل، میتوانید روی شی فایل حلقه بزنید. این عمل از نظر حافظه کارآمد است، سریع است و ما را به یک کد ساده می رساند.
>>> for line in f:
... print(line, end='')
...
This is the first line of the file.
Second line of the file
اگر می خواهید همه خطوط یک فایل را بخوانید و در یک لیست قرار دهید، می توانید از list(f) یا f.readlines() استفاده کنید. f.write(string) محتویات رشته را درون فایل می نویسد، و تعداد کاراکتر های نوشته شده را باز می گرداند.
>>> f.write('This is a test\n')
15
سایر انواع اشیا باید قبل از نوشته شدن، یا به یک رشته (در حالت متن) یا به یک شی بایت (در حالت باینری) تبدیل شوند.
>>> value = ('the answer', 42)
>>> s = str(value) # convert the tuple to string
>>> f.write(s)
18
دستور f.tell() یک عدد صحیح که مکان فعلی شی فایل را در فایل مشخص می کند، باز می گرداند. این مقدار بازگشتی به صورت عددی از بایت ها از آغاز فایل در حالت باینری و یک عدد opaque در حالت متن، نمایش داده می شود. برای تغییر مکان شی فایل، از f.seek(offset, whence) استفاده کنید.
مکان با افزودن offset به یک نقطه مرجع محاسبه می شود. نقطه مرجع توسط آرگومان whence انتخاب می شود. مقدار 0 برای whence ، از ابتدای فایل می سنجد، 1 از مکان فعلی استفاده می کند، و 2 از انتهای فایل به عنوان نقطه مرجع استفاده می کند. whence می تواند حذف شود و پیش فرض 0 است که از ابتدای فایل به عنوان نقطه مرجع استفاده می کند.
>>> f = open('workfile', 'rb+')
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5) # Go to the 6th byte in the file
5
>>> f.read(1)
b'5'
>>> f.seek(-3, 2) # Go to the 3rd byte before the end
13
>>> f.read(1)
b'd'
در فایل های متنی(آنهایی که بدون b در رشته حالت، باز شده اند)، تنها جستجوهای وابسته به شروع فایل مجاز است (استثنای جستجو از انتهای فایل با seek(0, 2) انجام می شود) و تنها مقادیر معتبر offset آنهایی هستند که یا صفر باشند یا توسط f.tell() باز گردانده شده اند.
هر مقدار offset دیگری، رفتار تعریف نشده ای را تولید می کند. اشیای فایل، متدهای اضافی دیگری هم دارند، مانند isatty() و truncate() که کمتر مورد استفاده قرار میگیرند.

 

آموزش ذخیره داده ساخت یافته با استفاده از json در آموزش پایتون
رشته ها را می توان به سادگی از فایل خواند یا درون فایل نوشت. اعداد نیاز به تلاش بیشتری دارد، از آنجایی که متد read() فقط رشته باز می گرداند، باید به یک تابع مانند int() پاس داده شود، که یک رشته مانند ‘123’ را می گیرد و مقدار عددی آن یعنی 123 را باز می گرداند. زمانی که بخواهید انواع داده پیچیده تری مانند لیست های تو در تو و دیکشنری ها را ذخیره کنید، پارس کردن (parsing) و سریال سازی دستی پیچیده می شود.
به جای اینکه کاربران مدام به نوشتن و اشکال زدایی کد برای ذخیره انواع داده پیچیده در فایل بپردازند، پایتون به شما این امکان را می دهد تا از فرمت تبادل داده محبوب به نام JSON (نماد شی جاوا اسکریپت)استفاده کنید.
ماژول استاندارد json می تواند سلسله مراتب داده پایتون را بگیرد، و آنها را به نمایش های رشته ای تبدیل کند. این روند سریال سازی (serializing) نام دارد. بازسازی داده از نمایش رشته ای، محصور کردن (deserializing) نام دارد. بین سریال سازی و محصور کردن، رشته ای که نمایشگر شی است ممکن است در یک فایل یا داده ذخیره شده باشد، یا از طریق ارتباطات شبکه به یک سیستم دور فرستاده شده باشد.
توجه !
معمولا برای تبادل داده، فرمت JSON توسط برنامه های کاربردی مدرن استفاده می شود. در حال حاظر بسیاری از برنامه نویسان با آن آشنا هستند، و همین آن را به یک گزینه خوب برای همکاری تبدیل کرده است.
اگر شی x را داشته باشید، می توانید نمایش رشته ای JSON آن را با یک خط کد ساده ببینید:
>>> import json
>>> json.dumps([1, 'simple', 'list'])
'[1, "simple", "list"]'
گونه دیگری از تابع dumps()، dump() نام دارد، که به سادگی شی را به یک فایل متنی سریال سازی می کند. بنابراین اگر f یک شی فایل متنی باشد که برای نوشتن باز شده باشد، می توانیم این کار را انجام دهیم:
json.dump(x, f)
برای رمزگشایی مجدد شی، اگر f یک شی فایل متنی باشد که برای خواندن باز شده باشد:
x = json.load(f)
این روش ساده سریال سازی می تواند لیست ها و دیکشنری ها را مدیریت کند، اما سریال سازی اختیاری نمونه های کلاس در JSON نیاز به کمی تلاش بیشتر دارد. مرجع مربوط به ماژول json در بردارنده توضیحاتی برای این موضوع است.

 

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

 

آموزش خطاهای نحوی در Python
خطاهای نحوی که همچنین با نام خطاهای parsing نیز شناخته شده هستند، شاید معمول ترین نوع خطا باشد که در حین یادگیری پایتون به آن بر می خورید.
>>> while True print('Hello world')
File "<stdin>", line 1
while True print('Hello world')
^
SyntaxError: invalid syntax
</stdin>

 

آموزش Parser در Python
خط دارای خطا را تکرار می کند و یک فلش کوچکی را نمایش می دهد که به اولین نقطه در خط، جایی که خطا تشخیص داده شده است، اشاره می کند. خطا توسط علامتی که قبل از فلش وجود دارد رخ داده است یا حداقل در آن نقطه تشخیص داده شده است.
در این مثال، خطا در تابع print() تشخیص داده شده است، زیرا یک دو نقطه (:) قبل از آن حذف شده است. نام فایل و شماره خط چاپ شده است، بنابراین در صورتی که ورودی از یک script بیاید می دانید کجا به دنبال خطا بگردید.

 

آموزش استثناها در برنامه نویسی پایتون
حتی اگر یک عبارت یا اصطلاح از نظر نگارشی صحیح باشد، ممکن است زمانی که قصد اجرای آن را داریم، باعث بروز خطا شود. خطاهای تشخیص داده شده در حین اجرا، استثنا نام دارد و بی قید و شرط مهلک نیستند: به زودی نحوه مدیریت آنها در برنامه های پایتون را فرا خواهید گرفت. اغلب استثناها توسط برنامه ها مدیریت نمی شوند، اگرچه منجر به پیام های خطا می شوند که در اینجا نشان داده شده است.
>>> 10 * (1/0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> 4 + spam*3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'spam' is not defined
>>> '2' + 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
</module></stdin></module></stdin></module></stdin>
آخرین خط در پیام خطا، بیان می کند که چه اتفاقی افتاده است. استثناها انواع مختلفی دارند، و نوع آنها به عنوان بخشی از پیام چاپ می شود.
نوع خطاها در این مثال ZeroDivisionError ، NameError و TypeError است. رشته چاپ شده به عنوان نوع استثنا، نام استثنای داخلی (built-in exception) است که رخ داده. این امر برای همه استثناهای داخلی صحت دارد، اما نیاز نیست برای استثناهای تعریف شده توسط کاربر نیز صحت داشته باشد (هرچند این یک قرارداد مفید است).
به طور کلی شامل یک ردیابی پشته ای است که خطوط کد را لیست می کند. اگر چه خطوط خوانده شده از ورودی استاندارد را نمایش نمی دهد. لینک Built-in Exceptions استثناهای درونی را بر می شمارد و معانی آنها را می گوید.

 

آموزش مدیریت استثناها در آموزش پایتون
نوشتن برنامه هایی که استثناهای انتخاب شده را مدیریت کند امکان پذیر است. مثال زیر را ببینید که تا زمان دریافت عدد صحیح معتبر، از کاربر درخواست ورودی می کند.
اما به کاربر این امکان را می دهد که برنامه را قطع کند (با استفاده از کنترل +C و یا هر آنچه که سیستم عامل پشتیبانی می کند). توجه داشته باشید این قطع شدن برنامه که توسط کاربر رخ داده است با اعلام استثنای KeyboardInterrupt شناسانده می شود.
>>> while True:
... try:
... x = int(input("Please enter a number: "))
... break
... except ValueError:
... print("Oops! That was no valid number. Try again...")
...
عبارت try به صورت زیر کار می کند.
  • ابتدا، بخش try (عبارات بین دو کلمه کلیدی try و except) اجرا می شود.
  • اگر هیچ استثنایی رخ ندهد، از روی بخش except می پرد( این بخش اجرا نمی شود) و اجرای عبارت try تمام می شود.
  • اگر در حین اجرای بخش try استثنایی رخ دهد، از اجرای بقیه این بخش صرف نظر می کند. سپس اگر نوع خطای رخ داده با نام خطای نوشته شده پس از کلمه کلیدی except یکسان باشد، بخش except اجرا می شود، و سپس اجرا از پس از عبارت try ادامه می یابد.
  • اگر استثنایی رخ دهد که مشابه نام استثنا در بخش except نباشد، به خارج از عبارات بخش try منتقل می شود. اگر هیچ بخش مدیریتی (handler) وجود نداشته باشد، یک استثنای مدیریت نشده رخ داده است و اجرا با پیامی که در بالا نشان داده شده است متوقف می شود.
یک عبارت try ممکن است برای مدیریت استثناهای مختلف، بیشتر از یک بخش except داشته باشد. حداکثر یک بخش مدیریتی اجرا خواهد شد. بخش های مدیریتی، تنها استثناهای رخ داده شده در بخش try مربوطه را مدیریت می کنند، نه در سایر بخش های مدیریتی از عبارت try مشابه. یک بخش استثنا ممکن است چندین استثنا را در قالب یک چندتایی پرانتز دار نام ببرد. برای مثال:
... except (RuntimeError, TypeError, NameError):
... pass
یک کلاس درون یک بخش except ، با یک استثنا سازگار است، اگر همان کلاس مشابه یا یک کلاس پایه باشد. (اما عکس آن صادق نیست- یک بخش except که یک کلاس مشتق شده را لیست کرده است با یک کلاس پایه سازگار نیست). برای مثال، کد زیر B ,C ,D را به این ترتیب چاپ می کند.
class B(Exception):
pass
 
class C(B):
pass
 
class D(C):
pass
 
for cls in [B, C, D]:
try:
raise cls()
except D:
print("D")
except C:
print("C")
except B:
print("B")
 
توجه داشته باشید که اگر بخش های except معکوس شوند ( اول except B باشد)، B,B,B چاپ می شد—اولین بخش except فعال شده است.
آخرین بخش except ممکن است نام استثنا(ها) را حذف کند. از این قابلیت با احتیاط بسیار استفاده کنید، زیرا پنهان شدن یک خطای واقعی برنامه نویسی از این طریق به سادگی امکان پذیر است. همچنین از آن می توان برای چاپ یک پیام خطا و اعلام دوباره آن استثنا استفاده کرد (همچنین اجازه به فراخواننده برای مدیریت استثنا).
import sys
 
try:
f = open('myfile.txt')
s = f.readline()
i = int(s.strip())
except OSError as err:
print("OS error: {0}".format(err))
except ValueError:
print("Could not convert data to an integer.")
except:
print("Unexpected error:", sys.exc_info()[0])
raise
عبارت try … except دارای یک بخش else اختیاری است که در صورت وجود باید از همه بخش های استثنا پیروی کند. این برای کدی که بخش try آن استثنایی اعلام نکرده و باید اجرا شود، مفید است. برای مثال:
for arg in sys.argv[1:]:
try:
f = open(arg, 'r')
except OSError:
print('cannot open', arg)
else:
print(arg, 'has', len(f.readlines()), 'lines')
f.close()
 
استفاده از بخش else بهتر از افزودن کد اضافی به بخش try است، زیرا آن از گرفتن تصادفی استثنایی که توسط کدی که با عبارت try … except محافظت می شود، جلوگیری میکند. زمانی که یک استثنا رخ می دهد، ممکن است یک مقدار وابسته داشته باشد، که به عنوان آرگومان استثنا نیز شناخته می شود.
حضور و نوع آرگومان به نوع استثنا بستگی دارد. بخش except ممکن است یک متغیر را بعد از نام استثنا مشخص کند. متغیر به یک نمونه استثنا (exception instance) محدود است و آرگومان ها در instance.args ذخیره می شوند.
.برای سادگی، نمونه استثنا __str__() را تعریف می کند، بنابراین آرگومان ها می توانند مستقیما بدون نیاز به ارجاع به .args چاپ شوند. همچنین ممکن است ابتدا پیش از اعلام یک استثنا، مقدار دهی اولیه شود و هر ویژگی دلخواه به آن اضافه شود.
>>> try:
... raise Exception('spam', 'eggs')
... except Exception as inst:
... print(type(inst)) # the exception instance
... print(inst.args) # arguments stored in .args
... print(inst) # __str__ allows args to be printed directly,
... # but may be overridden in exception subclasses
... x, y = inst.args # unpack args
... print('x =', x)
... print('y =', y)
...
<class 'exception'="">
('spam', 'eggs')
('spam', 'eggs')
x = spam
y = eggs
</class>
اگر یک استثنا دارای آرگومان باشد، آنها همانند بخش آخر (‘detail’) پیام برای استثناهای مدیریت نشده، چاپ می شوند. بخش مدیریت استثنا فقط استثناها را در صورت وقوع فوری در بخش try مدیریت نمیکند، بلکه اگر درون توابع بخش try فراخوانی شوند یا حتی مستقیما در آن توابع رخ دهند نیز مدیریت می شوند. برای مثال:
>>> def this_fails():
... x = 1/0
...
>>> try:
... this_fails()
... except ZeroDivisionError as err:
... print('Handling run-time error:', err)
...
Handling run-time error: division by zero
آموزش پایتون ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
سلام با آموزش Bootstrap 4 در خدمت شما هستیم در قسمت قبل با مفهوم زیر آشنا شدیم
  • کار با منو بار Navs در Bootstrap 4
  • آموزش کار با لبه ها Tabs در Bootstrap 4
  • آموزش کار با Pills در بوت استرپ 4
  • آموزش کاربرد Dropdown با منوی pills
  • آموزش کاربرد Dropdown با منوی Tabs
حال با ادامه آموزش بوت استرپ 4 از دوره آموزش طراحی سایت همراه باشید:
 

 

آموزش کار با فرم Form در Bootstrap 4
بوت استرپ 4، کلاس ها و امکانات ویژه ای برای کار با فرم ها (تگ <form>) فراهم کرده است.
کنترل های درون تگ Form در بوت استرپ 4، به صورت خودکار کلیه ی استایل عمومی را دریافت می کند. برای مثال کلیه کادرهای متن در فرم ها مثل تگ <input>، تگ <teatarea> و تگ <select> در صورت دریافت کلاس form control، عرضی برابر 100 درصد خواهند داشت.
بوت استرپ 4 دو نوع قالب یا layout در نمایش اجرای فرم به کار می برد :
1-حالت تمام عرض برای هر کنترل (stacked full width) : در این حالت، کنترل های فرم بر روی هم و با عرض 100 درصد صفحه یا عنصر دربرگیرنده، نمایش داده می شوند.
2- حالت درون خطی (inline form): در این حالت کنترل های فرم در کنار هم و در یک خط، حالت چپ چین نمایش داده می شوند.

 

آموزش حالت تمام عرض در فرم های بوت استرپ 4:
 
در کد مثال عملی زیر، یک فرم بوت استرپ با 2 کنترل ورودی کادر متن، یک دکمه checkbox و یک دکمه ارسال submit button ایجاد کرده ایم که در حالت تمام عرض (full width) نمایش داده می شوند.
برای اطمینان از نمایش درست کنترل ها و رعایت مارجین و Padding، هر کنترل را درون یک عنصر دربرگیرنده با کلاس form-group قرار دهید :

 

مثال 1
<div class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
</div>
<div class="form-group form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
 

 

آموزش حالت درون خطی inline form در آموزش طراحی سایت :
 
در حالت نمایش درون خطی (inline form)، تمامی کنترل ها در یک خط و با حالت پیش فرض چپ چین نمایش داده می شوند.
نکته :
حالت inline فقط در صفحه نمایش های بزرگتر از عرض 576 پیکسل کار می کند. در صفحات موبایلی و کمتر از عرض 576 پیکسل، به صورت خودکار فرم ها به صورت تمام عرض و هر کنترل در یک خط نمایش داده می شود.
برای نمایش المنت های فرم به صورت درون خطی در Bootstrap 4، بایستی کلاس form-inline. را به تگ <form> اضافه نمایید.
مثال عملی : در کد مثال عملی زیر، دو کنترل کادر متن، یک chechbox و دکمه ارسال submit را در یک فرم به صورت خطی (inline) نمایش داده ایم :

 

مثال 2
<form class="form-inline" action="/action_page.php">
<label for="email">Email address:</label>
<input type="email" class="form-control" id="email">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd">
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Remember me
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>

 

آموزش چیدمان بهتر کنترل ها در حالت inline با استفاده از کلاس های کمکی utilities بوت استرپ 4:
کنترل های فرم در مثال آموزشی قبلی، بسیار به هم چسبیده و فشرده هستند. شما می توانید از کلاس های کمکی بوت استرپ (utility classes) برای چیدمان بهتر این کنترل ها در فرم استفاده کنید.
مثلا در کد مثال زیر، از کلاس کمکی mr-sm-2. استفاده کرده ایم که در تمامی دستگاه و اندازه های صفحه نمایش، یک مارجین راست 2 پیکسلی را به تمامی کنترل ها می دهد.
همچنین کلاس کمکی mb-2.، در صورتی که کنترل ها در حالت stacked و بر روی هم قرار بگیرند (به دلیل عرض کم جهت نمایش همه آن ها در یک خط)، یک مارجین زیر (bottom margin) به اندازه 2 پیکسل را به همه کنترل ها اضافه کردند. برای درک بهتر به خروجی و کد مثال دقت نمایید :

 

مثال 3
<form class="form-inline" action="/action_page.php">
<label for="email" class="mr-sm-2">Email address:</label>
<input type="email" class="form-control mb-2 mr-sm-2" id="email">
<label for="pwd" class="mr-sm-2">Password:</label>
<input type="password" class="form-control mb-2 mr-sm-2" id="pwd">
<div class="form-check mb-2 mr-sm-2">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> Remember me
</label>
</div>
<button type="submit" class="btn btn-primary mb-2">Submit</button>
</form>
راهنمایی :
راهنمایی : به طور کامل در بخش آموزش کلاس های کمکی (Bootstrap 4 utilities classes) به آموزش استفاده از این کلاس ها خواهیم پرداخت.

 

آموزش اعتبارسنجی فرم ها (Form Validation) در Bootstrap 4:
در بوت استرپ 4، می توانید از کلاس اعتبارسنجی (Validation Classes) برای ارسال فیدبک های چک کردن اطلاعات وارد شده در فرم، به کاربر، استفاده کنید.
می توانید کلاس های was-validated یا needs-validation را به المنت form اضافه کرده، بسته به این که بخواهید فرم را قبل یا بعد از زدن دکمه ارسال یا submit، چک کرده و پیام های اعتبارسنجی را به کاربر نشان دهید.
در صورت ورود اطلاعات درست در هر کادر متن یا input فرم، کنترل دارای خطوط حاشیه سبز (valid) و در صورت ورود اطلاعات اشتباه یا عدم ورود اطلاعات لازم، دارای خطوط حاشیه قرمز (invalid) خواهد بود.
همچنین می توانید از المنت هایی با کلاس valid-feedback یا invalid-feedback برای اعلام دقیق پیام خطا به کاربر و یا اعلام اینکه چه چیزی فراموش شده یا نادرست است، استفاده کنید.
مثال عملی : در کد مثال عملی زیر، تمامی موارد گفته شده فوق را در عمل به کار برده ایم. در این کد از کلاس was-validated استفاده کرده ایم که اطلاعات را قبل از ارسال و زدن دکمه submit، چک خواهد کرد :

 

مثال 4
<form action="/action_page.php" class="was-validated">
<div class="form-group">
<label for="uname">Username:</label>
<input type="text" class="form-control" id="uname" placeholder="Enter username" name="uname" required="">
<div class="valid-feedback">Valid.</div>
<div class="invalid-feedback">Please fill out this field.</div>
</div>
<div class="form-group">
<label for="pwd">Password:</label>
<input type="password" class="form-control" id="pwd" placeholder="Enter password" name="pswd" required="">
<div class="valid-feedback">Valid.</div>
<div class="invalid-feedback">Please fill out this field.</div>
</div>
<div class="form-group form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox" name="remember" required=""> I agree on blabla.
<div class="valid-feedback">Valid.</div>
<div class="invalid-feedback">Check this checkbox to continue.</div>
</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>

 

آموزش کار با کادرهای ورود اطلاعات فرم در Bootstrap 4
بوت استرپ 4 از کنترل های فرم و ورود اطلاعات زیر، پشتیبانی می کند :
  • ورود متن input.
  • ورود متن چند خطی textarea.
  • کنترل انتخاب گزینه checkbox.
  • کنترل های رادیویی radio.
  • کنترل کادر کشویی select.
در ادامه به آموزش کار با هر یک از کنترل های فوق و ارائه مثال های عملی خواهیم پرداخت.

  • افشین رفوآ
  • ۰
  • ۰
سلام عزیزان در این سری آموزشها با پایگاه داده Sql Server آشنا میشوید.
در قسمت قبل با مفاهیم زیر آشنا شدید:
  • آموزش محدودیت DEFAULT در SQL
  • حذف محدودیت DEFAULT در Sql
  • دستور Create Index
  • آموزش دستور DROP INDEX در SQL
با ادامه آموزش Sql همراه باشید

 

آموزش دستور ALTER TABLE در SQL
از دستور ALTER TABLE برای اضافه کردن ، حذف کردن یا تغییر ستون ها در جدول موجود استفاده می شود.
فرم دستور ALTER TABLE
برای اضافه کردن یک ستون به یک جدول ، از دستور زیر استفاده کنید:
ALTER TABLE table_name
ADD column_name datatype
برای حذف کردن یک ستون از یک جدول از دستور زیر استفاده می کنیم ( توجه داشته باشید که بعضی از پایگاه داده ها اجازه پاک کردن ستون را نمی دهند )
ALTER TABLE table_name
DROP COLUMN column_name
برای تغییر نوع داده یک ستون در یک جدول، از دستور زیر استفاده می کنیم :
در SQL Server/MS Access:
ALTER TABLE table_name
DROP COLUMN column_name
در My SQL/Oracle:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype
در Oracle 10G و نسخه های بالاتر:
ALTER TABLE table_name
MODIFY column_name datatype

 

مثال استفاده از ALTER TABLE در آموزش Sql
به جدول “Persons” در زیر نگاه کنید:
 
می خواهیم تا ستونی را با نام “DateOfBirth” به جدول “Persons” اضافه کنیم.
از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ADD DateOfBirth date
توجه کنید که ستون جدید “DateOfBirth” از نوع date می باشد و تاریخ را در خود نگه می دارد. نوع داده تعیین می کند که چه نوع داده ای را در یک ستون می توان وارد کرد.
 

 

مثال چگونگی تغییر داده
می خواهیم نوع داده های ستون “DateOfBirth” در جدول “Persons” را تغییر دهیم.
از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
ALTER COLUMN DateOfBirth year
توجه کنید که ستون “DateOfBirth” از نوع سال می باشد و از دو یا چهار رقم برای نگهداری سال استفاده خواهد کرد.

 

مثال استفاده از DROP COLUMN
در مرحله بعد می خواهیم تا ستون “DateOfBirth” را از جدول “Persons” حذف کنیم.
برای اینکار از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons
DROP COLUMN DateOfBirth
جدول “Persons” به شکل زیر خواهد شد:
 

 

آموزش افزایش فیلدها در sql
افزایش خودکار فیلدها Auto-Increment یا افزایش خودکار، اجازه می دهد که یک شماره منحصر به فرد، برای سطر جدیدی که درجدول وارد می شود، تولید شود.
خیلی اوقات می خواهیم زمانی که رکورد جدیدی وارد می شود، مقدار فیلد primary key به طور خودکار ایجاد شود.
در این صورت از فیلد auto-increment در جدول استفاده می کنیم.

 

فرم دستور در MySQL
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
 
 
 
CREATE TABLE Persons
 
(
 
ID int NOT NULL AUTO_INCREMENT,
 
LastName varchar(255) NOT NULL,
 
FirstName varchar(255),
 
Address varchar(255),
 
City varchar(255),
 
PRIMARY KEY (ID)
 
)
مای MySQL از کلید واژه AUTO_INCREMENT برای اعمال حالت افزایش خودکار استفاده می کند.
به طور پیش فرض، مقدار شروع برای AUTO_INCREMENT عدد یک می باشد و مقدار آن برای رکورد جدید، یک عدد افزایش می یابد.
برای اینکه مقدار شروع AUTO_INCREMENT را مقداری غیر از یک تعیین کنیم از دستور زیر استفاده می کنیم.
ALTER TABLE Persons AUTO_INCREMENT=100
برای وارد کردن یک رکورد جدید در جدول “Persons” دیگر نباید مقداری برای ستون “ID” تعیین کنیم (مقداری منحصر به فردی، به صورت خودکار در این فیلد وارد می شود):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول Persons وارد می کند. برای ستون“ID” یک مقدار منحصر به فرد تعیین می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.

 

فرم دستور در آموزش SQL Server
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
در MS SQL Server از کلید واژه IDENTITY برای اعمال خصوصیت افزایش خودکار استفاده می کند.
در مثال بالا مقدار شروع برای IDENTITY عدد یک می باشد و برای هر رکورد جدید، یک عدد به آن افزایش می یابد.
نکته: برای اینکه تعیین کنید که ستون “ID” با مقدار 10 شروع شود و 5 تا 5 تا افزایش یابد IDENTITY را به (10،5) تغییر دهید.
برای اینکه سطر جدیدی را در جدول “Persons” وارد کنیم، دیگر نیازی نیست مقداری برای ستون “ID”وارد کنیم. (مقداری منحصر به فرد، به طور خودکار در این ستون وارد می شود):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “ID” یک مقدار منحصر به فرد داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.

 

فرم دستور درAccess
دستور زیر تعیین می کند که ستون “ID”در جدول “Persons” برای فیلدprimary key از افزایش خودکار استفاده کند.
CREATE TABLE Persons
(
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
مای MS Access از کلید واژه AUTOINCREMENT برای اعمال خصوصیت افزایش خودکار استفاده می کند.
به طور پیش فرض، مقدار شروع برای AUTOINCREMENT عدد یک می باشد و مقدار آن برای هر رکورد جدید، یک عدد افزایش می یابد.
نکته:
برای اینکه تعیین کنید که ستون “ID”با مقدار 10 شروع شود و 5 تا 5 تا افزایش یابد autoincrement را به AUTOINCREMENT (10,5) تغییر دهید.
برای اینکه سطر جدیدی را در جدول “Persons” وارد کنیم، دیگر نیازی نیست مقداری برای ستون”ID” وارد کنیم. (مقدار منحصر به فردی به طور خودکار در این ستون وارد می شود)
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “P_Id” یک مقدار منحصر به فرد داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.

 

فرم دستور در Oracle
در Oracle کار کمی پیچیده تر است.
شما باید فیلد auto-increment را با یک sequence object ایجاد کنید. (این object، یک توالی از اعداد را تولید می کند)
برای تولید اعداد متوالی، از دستور CREATE SEQUENCE که در زیر آمده استفاده کنید:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
دستور بالا یک sequence object با نام seq_person ایجاد می کند، که با عدد یک شروع و یک عدد یک عدد افزایش می یابد. همچنین برای کارآیی و سرعت دسترسی بیشتر تا 10 مقدار را در حافظه خود (cache) نگه می دارد.
برای درج یک رکورد جدید در جدول "Persons"، باید از تابع nextval استفاده کنیم (این تابع، مقدار بعدی را از seq_person sequence دریافت می کند):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
دستور بالا سطر جدیدی را در جدول “Persons” وارد می کند. به ستون “ID” عدد بعدی از توالی seq_person داده می شود. ستون “FirstName” به “Lars” و ستون “LastName” به “Monsen” اختصاص می یابد.
آموزش sql ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰

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

لینک قسمت اول آموزش پایتون

  • مقایسه دنباله ها و سایر انواع در برنامه نویسی Python
  • آموزش ماژول ها در برنامه نویسی پایتون
  • آموزش ماژول های استاندارد در برنامه نویسی پایتون
  • آموزش تابع dir() در برنامه نویسی پایتون

 

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

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

پکیج (package) روشی برای ساخت فضای نام (namespace) ماژول پایتون با استفاده از " نام ماژول های نقطه گذاری شده" است.

برای مثال، نام ماژول A.B تعیین کننده یک زیر ماژول به نام B در پکیجی به نام A است. همانند کاربرد ماژول ها که نویسنده ماژول های مختلف را از نگرانی درباره نام متغیر های سراسری هم دیگر می رهاند، استفاده از نام ماژول های نقطه گذاری شده نیز نویسنده پکیج های چند ماژولی مانند NumPy و Pillow را از نگرانی درباره نام ماژول های یکدیگر می رهاند.

فرض کنید می خواهید برای مدیریت یکپارچه فایل ها و داده های صوتی، مجموعه ای از ماژول ها (یک پکیج) را طراحی کنید. فایل های صوتی فرمت های بسیار مختلفی دارند (که معمولا توسط دنباله خود شناخته می شوند مانند .wav , .aiff , .au) ، بنابراین ممکن است مجبور شوید یک مجموعه در حال رشد از ماژول ها را برای تبدیل فرمت های مختلف به هم ایجاد و نگهداری کنید. همچنین ممکن است بخواهید عملیات مختلف زیادی را روی داده های صوتی اعمال کنید (مانند ترکیب کردن، افزودن پژواک، اعمال یک تابع برابر کننده، ساخت یک اثر stereo مصنوعی)، بنابراین شما جریانی از ماژول هایی که هیچگاه تمام نمیشود را برای انجام این عملیات خواهید نوشت. در اینجا یک ساختار محتمل برای پکیج شما وجود دارد (در غالب سیستم فایل سلسله مراتبی بیان شده است).

 

sound/                          Top-level package

__init__.py               Initialize the sound package

formats/                  Subpackage for file format conversions

        __init__.py

        wavread.py

        wavwrite.py

       aiffread.py

        aiffwrite.py

        auread.py

        auwrite.py

        ...

effects/                  Subpackage for sound effects

        __init__.py

        echo.py

        surround.py

        reverse.py

        ...

filters/                  Subpackage for filters

        __init__.py

        equalizer.py

        vocoder.py

        karaoke.py

        ...

هنگامی که پکیج را وارد (import) می کنید، پایتون برای پیدا کردن زیر دایرکتوری پکیج، درون دایرکتوری های روی sys.path را جستجو می کند. برای این که پایتون دیکشنری های حاوی فایل را به عنوان پکیج بشناسد، به فایل های __init__.py نیاز دارد.

این کار مانع از این می شود تا دیکشنری هایی با نام های متداول مانند string ، به طور غیر عمد ماژول های معتبری که بعدا در مسیر جستجوی ماژول قرار میگیرند را پنهان کنند. در ساده ترین حالت، __init__.py می تواند فقط یک فایل خالی باشد، اما همچنین می تواند کد مقدار دهی اولیه (اولیه سازی) برای پکیج را اجرا کند یا متغیر __all__ variable که بعدا توضیح داده می شود را تنظیم کند. کاربران پکیج می توانند ماژول های مجزا را از پکیج وارد کنند، برای مثال:

import sound.effects.echo

این دستور زیر ماژول sound.effects.echo را بار گذری می کند، و باید به نام کامل آن ارجاع داده شود.

sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)

روش جایگزین برای وارد کردن زیر ماژول به این صورت است:

from sound.effects import echo

این دستور همچنین زیر ماژول echo را نیز بار گذاری می کند، و آن را بدون پسوند پکیج خود، در دسترس قرار می دهد، بنابراین میتوان به صورت زیر از آن استفاده کرد:

echo.echofilter(input, output, delay=0.7, atten=4)

علاوه بر آن می توان تابع یا متغیر دلخواه را مستقیما وارد کرد:

from sound.effects.echo import echofilter

 

دوباره، این دستور زیر ماژول echo را بار گذاری می کند، اما تابع echofilter() آن را مستقیما در دسترس قرار می دهد.

echofilter(input, output, delay=0.7, atten=4)

توجه داشته باشید در هنگام استفاده از from package import item ، آیتم می تواند یک زیر ماژول (یا زیر پکیج) از پکیج باشد، یا هر نام دیگری که در پکیج تعریف شده باشد، مانند یک تابع، کلاس یا متغیر. عبارت import در ابتدا بررسی می کند که آیا آیتم در پکیج تعریف شده است، اگر تعریف نشده باشد، فرض می کند که آن یک ماژول است و برای بارگذاری آن اقدام می کند.

اگر در پیدا کردن آن شکست بخورد، استثنای ImportError رخ می دهد. در مقابل، هنگامی که از نحوه نگارش import item.subitem.subsubitem استفاده می کنید، همه آیتم ها به جز مورد آخر باید یک پکیج باشند. آیتم آخر می تواند یک ماژول یا یک پکیج باشد اما نمیتواند یک کلاس یا تابع یا متغیر تعریف شده در آیتم های قبلی باشد.

وارد کردن * از یک پکیج در آموزش پایتون

حال اگر کاربر from sound.effects import * را بنویسد چه اتفاقی می افتد؟

در شرایط ایده آل می توان امیدوار بود که به طریقی به سیستم فایل برود و زیر ماژول های حاضر در پکیج را پیدا کند و همه آنها را وارد کند. این کار می تواند زمان زیادی طول بکشد و وارد کردن زیر ماژول ها می تواند اثرات جانبی ناخواسته ای داشته باشد که باید تنها زمانی که زیر ماژول صریحا وارد می شود اتفاق افتد. تنها راه حل این است که نویسنده پکیج یک اندیس صریح از پکیج را ارائه کند. عبارت import از قرارداد زیر استفاده می کند:

اگر کد __init__.py یک پکیج، یک لیست به نام __all__ را تعریف کند، فرض می شود که لیستی از نام ماژول هایی است که در صورت مواجهه با from package import * ، باید وارد شود.

در زمانی که نسخه جدیدی از پکیج ارائه می شود، به روز نگه داشتن این لیست به عهده نویسنده پکیج است. همچنین ممکن است نویسنده پکیج تصمیم بگیرد در صورتی که کاربردی برای وارد کردن * از پکیج آنها نبینند، از آن پشتیبانی نکند. برای مثال، فایل sound/effects/__init__.py می تواند شامل کد زیر باشد:

 

__all__ = ["echo", "surround", "reverse"]

این به این معنی است که from sound.effects import * سه زیر ماژول نام برده شده از پکیج sound را وارد می کند. اگر __all__ تعریف نشده باشد، عبارت from sound.effects import * تمامی زیر ماژول های پکیج sound.effects را درون فضای نام فعلی وارد نمی کند.

این عبارت فقط تضمین می کند که پکیج sound.effects وارد شده است (احتمالا اجرای هر کد اولیه سازی در __init__.py) و سپس هر نام تعریف شده در پکیج را وارد می کند. این شامل هر نام (و زیر ماژول هایی که صریحا بارگذاری شده اند) تعریف شده توسط __init__.py می باشد. همچنین شامل هر زیر ماژولی از پکیج است که توسط عبارت import قبلی صریحا بارگذاری شده باشد. این کد را در نظر بگیرید:

 

import sound.effects.echo

import sound.effects.surround

from sound.effects import *

 

در این مثال، ماژول های echo و surround در فضای نام فعلی وارد شده اند، زیرا زمانی که عبارت from...import اجرا می شود، آنها در پکیج sound.effects تعریف شده اند. (همچنین زمانی که __all__ تعریف شده است نیز عمل می کند.) با وجود اینکه ماژول های خاصی برای فقط صادر کردن(export) نام هایی که در هنگام استفاده از import * از الگوهای خاصی پیروی می کنند طراحی شده است، این، همچنان عملکرد بد در تولید کد در نظر گرفته می شود. به یاد داشته باشید، هیچ مشکلی در استفاده از from package import specific_submodule وجود ندارد.

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

ارجاع های درونی پکیج (intra-package) در Python

زمانی که پکیج ها درون زیر پکیج ها ساخته می شوند ( مانند پکیج sound در مثال)، می توانید از واردات مستقل (absolute imports) برای ارجاع به زیر ماژول های پکیج های هم خانواده استفاده کنید.

برای مثال، اگر ماژول sound.filters.vocoder نیاز به استفاده از ماژول echo در پکیج sound.effects داشته باشد، می تواند از from sound.effects import echo استفاده کند. همچنین می توانید واردات وابسته (relative imports) را در قالب from module import name از عبارات واردات بنویسید. این واردات از نقاط راهنما برای بیان پکیج های فعلی و والد درگیر در واردات وابسته استفاده می کند. برای مثال ممکن است از ماژول surround استفاده کنید:

توجه داشته باشید که واردات وابسته مبتنی بر نام ماژول فعلی هستند. از آنجایی که نام ماژول اصلی همیشه "__main__" است، ماژول هایی که برای استفاده به عنوان ماژول اصلی برنامه پایتون در نظر گرفته می شوند، همیشه باید از واردات مستقل استفاده کنند.

پکیج ها در چندین دایرکتوری در آموزش پایتون

پکیج ها از یک ویژگی خاص دیگر به نام __path__ نیز پشتیبانی می کنند. این به گونه ای مقدار دهی اولیه شده است که یک لیست شامل نام دایرکتوری باشد که _init__.py مربوط به پکیج را قبل از اینکه کد درون آن فایل اجرا شود، نگه می دارد.

. این متغیر قابل تغییر است، این کار روی جستجو های آینده در زمینه ماژول ها و زیر پکیج های موجود در پکیج تاثیر می گذارد. هر چند که این ویژگی اغلب مورد نیاز نیست، از آن می توان برای توسعه مجموعه ماژول های موجود در یک پکیج استفاده کرد.

توجه !

‌در واقع تعریف توابع عباراتی هستند که اجرا می شوند. اجرای تعریف یک تابع در سطح ماژول، وارد نام تابع در جدول نماد سراسری ماژول می شود.

آموزش ورودی و خروجی در پایتون

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

قالب بندی تفننی خروجی (fancier output formatting) در برنامه نویسی Python

تا اینجا با دو روش نوشتن مقادیر آشنا شده ایم: عبارات اصطلاحی و تابع print() . ( روش سوم استفاده از متد write() اشیای فایل است. به فایل خروجی استاندارد به عنوان sys.stdout می توان ارجاع داد. برای اطلاعات بیشتر در این زمینه بخش مرجع کتابخانه (Library Reference) را ببینید.) شما اغلب خواهان کنترل بیشتری روی قالب خروجی خود هستید تا اینکه فقط خروجی را به صورت مقادیر جدا شده با فاصله چاپ کنید.

در این جا چندین روش برای قالب بندی خروجی ارائه شده است.

  • برای استفاده از حروف رشته قالب بندی شده، یک رشته را با f یا F قبل از باز کردن گیومه نقل قول یا نقل قول سه تایی شروع کنید. درون این رشته، می توانید یک عبارت پایتون را بین کاراکترهای { و } بنویسید که بتواند به مقادیر متغیر ها و حروف ارجاع دهد.

 

  • افشین رفوآ
  • ۰
  • ۰

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

  • قسمت اول آموزش جاوا اسکریپت
  • آموزش Syntax متغیرها در جاوا اسکریپت
  • کلید واژه های جاوا اسکریپت
  • آموزش عملگرهای جاوا اسکریپت
  • آموزش کلیدواژه های جاوا اسکریپت
  • آموزش توضیحات در جاوا اسکریپت

حال با ادامه دورهآموزش طراحی سایت همراه باشید

 

آموزش متغیرها در جاوا اسکریپت در آموزش طراحی سایت

متغیرها Variables ظرف هایی برای ذخیره ی مقادیر داده ها (data values) محسوب می شوند.
در این مثال x، y و z هر سه متغیر هستند.

 

مثال:


var x = 5;

      var y = 6;

      var z = x + y;

      document.getElementById("demo") = z;

از مثال بالا می توانیم نتیجه بگیریم.
X مقدار 5 را درخود ذخیره می کند.
Y مقدار 6 را ذخیره می کند.
Z مقدار 11 را نگه می دارد.
در این مثال price1، price2 و total هر سه متغیر هستند.

< script >
    var price1 = 5;
    var price2 = 6;
    var total = price1 + price2;
    document.getElementById("demo") =
    "The total is: " + total;

< /script >

در برنامه نویسی، درست مثل جبر، برنامه نویس به منظور ذخیره سازی مقادیر از متغیرها استفاده می کند (مانند price1 که مقدار 5 را نگه می دارد).
در برنامه نویسی، مانند جبر، متغییرها را در عبارات (expression) بکار می بریم (total = price1 + price2).
از مثال بالا می توان حاصل متغیر سوم را محاسبه کرد که 11 می باشد.

شناسه های جاوا اسکریپت در آموزش طراحی سایت

تمامی متغیرهای جاوا اسکریپت را باید با اسم های منحصر به فرد شناسایی کرد.
این اسامی منحصر به فرد / identifier شناسه اطلاق می گردند (نامیده می شوند).
شناسه ها می توانند اسم های کوتاه (مثل x و y) یا کلمات توصیفی از قبیل age، sum، totalVolumeباشند.
قوانین کلی برای ساخت اسامی ویژه ی متغیرها به شرح زیر هستند.

  1. در اسامی متغیرها می توان از حروف، اعداد، خط های زیرین (underscore_) و همچنین علامت دلار استفاده کرد.
  2. اسم متغیر حتماً باید با یک حرف آغاز شود.
  3. اسم همچنین می تواند با علامت های $ و _ آغاز شود.
  4. اسامی متغیرها به کوچک و بزرگی حروف حساس هستند.(به عنوان مثال y و Y با هم تفاوت دارند)
  5. کلمات رزرو یا ذخیره شده (reserved words) مانند کلید واژه های جاوا اسکریپت را نمی توان به عنوان اسم بکار برد.

نکته:

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

عملگر جایگزین (Assignment Operator)

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

x = x + 5‎

اما همین نمونه در جاوا اسکریپت کاملاً استاندارد و متعارف تلقی می گردد : مقدار x + 5 را به x تخصیص می دهد.
(مقدار x + 5 را محاسبه کرده و نتیجه را در x قرار می دهد. مقدار x به اندازه ی 5 افزایش می یابد.
عملگر مساوی در جاوا اسکریپت اینگونه نوشته می شود : ==.

نوع داده در جاوا اسکریپت (data type)

متغیرها در جاوا اسکریپت قادر هستند مقادیر عددی و همچنین مبتنی بر نوشته مانند 100 و "John Doe" را در خود ذخیره کنند.
در برنامه نویسی، مقادیر مبتنی بر متن/ text values، رشته های متنی (text strings) خوانده می شوند.
جاوا اسکریپت می تواند نوع داده های مختلفی را پذیرفته و مدیریت کند، اما فعلاً به همان نوع های عددی و رشته ی بسنده می کنیم.
رشته (string) داخل علامت های " " یا ' ' قرار داده می شوند. اعداد بدون علامت نقل و قول نوشته می شوند.
در صورت قرار دادن علامت نقل و قول اطراف یک عدد، با آن به عنوان یک رشته ی متنی (text string) برخورد می شود.

مثال:

var pi = 3.14;
var person = "John Doe"
var answer = 'Yes I am!';

ایجاد (تعریف) متغیر در جاوا اسکریپت در آموزش طراحی سایت

اعلان یا تعریف یک متغیر در برنامه نویسی همان فرایند ایجاد متغیر است.
متغیر را در زبان جاوا اسکریپت با استفاده از کلید واژه ی var تعریف می کنیم

 

پس از تعریف، متغیر تهی است و هیچ مقداری ندارد.
به منظور تخصیص / assign یک مقدار به متغیر دلخواه کافی است از علامت = استفاده کنید.

همچنین می توان مقداردهی یک متغیر را هنگام تعریف آن انجام داد.

در مثال زیر، متغیری به نام carName ایجاد کرده و "Volvo" را به عنوان مقدار به آن تخصیص داده ایم، سپس مقدار را داخل یک پاراگراف HTML با شناسه ی "demo"به عنوان خروجی قرار می دهیم.

توصیه می شود تمامی متغیرها را در ابتدای اسکریپت تعریف کنید.

تعریف متغیرهای متعدد در تنها یک دستور

این امکان وجود دارد که چندین متغیر را در یک دستور واحد ایجاد کنید.
کافی است دستور را با کلید واژه ی var آغاز کرده و متغیرها را با ویرگول از هم جدا کنید

یک تعریف (declaration) همچنین می تواند چندین خط ادامه داشته باشد (پوشش داده یا دربرگیرد).

Value = undefined

در برنامه های رایانه ی، متغیرها اغلب بدون یک مقدار مشخص تعریف می شوند. مقدار می تواند چیزی باشد که باید آن را تعریف یا اعلان کرد و یا چیزی که بعده ها ارائه می گردد مانند ورودی کاربر (user input).
متغیری که بدون مقدار معینی اعلان شود، مقدار آن undefined خواهد بود.
متغیر carName پس از اجرای این دستور مقدار تعریف نشده یا undefined را خواهد داشت.

مثال:

تعریف مجدد متغیرهای جاوا اسکریپت

در صورت تعریف مجدد یک متغیر جاوا اسکریپت، به خاطر داشته باشید که متغیر مقدار خود را از دست نخواهد داد.
متغیر carName هنوز مقدار اولیه ی خود "Volvo" را پس از اجرا این دستورات حفظ خواهد کرد.

محاسبه در جاوا اسکریپت

می توان در جاوا اسکریپ با متغیرها و به وسیله ی عملگرهای = و + محاسبات انجام داد.

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

آموزش عملگرهای محاسباتی جاوا اسکریپت

آن دسته از عملگرهای جاوا اسکریپت که برای محاسبه بکار می روند به ترتیب زیر هستند.

عملگرهای محاسباتی

یک عملیات محاسباتی متعارف روی دو عدد عملیات لازمه را انجام می دهد .
حال این دو عدد ممکن است لیترال (literal) باشند.

 

عملوندها (operands) و عملگرها (operators)

اعداد (در عملیات حسابی) عملوند operand / خوانده می شوند . عملیات که بین دو عملوند صورت می گیرد توسط operator / عملگر تعریف می شود .

عملگر جمع addition operator / اعداد را جمع می بندد.

 

عملگر تفریق subtraction / اعداد را منها (از هم کسر) می کند.

تفریق

عملگر ضرب multiplication / (*) اعداد را در هم ضرب می کند.

ضرب

عملگر تقسیم (/)(division) اعداد را بر هم تقسیم می کند.

تقسیم

عملگر modular (%) باقی مانده ی تقسیم را برمی گرداند.

باقی مانده ی تقسیم

عملگر افزاینده / (++) اعداد را یک واحد افزایش می دهد.

کاهش

اولویت عملگرها

بیانگر اولویت یا ترتیبی است که عملیات در عبارت حسابی باید یکی پس از دیگری اجرا شوند .

آیا نتیجه ی مثال بالا برابر است با 150 * 3 یا 100 + 150؟
آیا عملیات جمع اول انجام می شود یا ضرب؟
عملیات ضرب درست مشابه ریاضیاتی که در مدرسه آموختیم بر دیگر عملیات از جمله جمع تقدم دارد .
عملگر ضرب (*) و تقسیم (/) بر جمع (+) و تفریق (-) تقدم دارند .
همان طور هم که در مدرسه آموختیم که با استفاده از پرانتز می توان ترتیب اولویت را تغییر داد.

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

اولویت عملگرهای محاسباتی

جدول زیر کلیه ی عملگرهای محاسباتی جاوا اسکریپت را به ترتیب اولویت فهرست می کند.

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

دوره آموزش طراحی سایت ادامه دارد

 

 

  • افشین رفوآ
  • ۰
  • ۰

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

  • آموزش دستورات جاوا اسکریپت
  • کلید واژه های جاوا اسکریپت
  • آموزش متغیرها و انواع داده ای در زبان جاوا اسکریپت
  • آموزش محل قرار گیری کدهای جاوا اسکریپت
  • آموزش خروجی جاوا اسکریپت

 

حال با ادامه دوره آموزش طراحی سایت همراه باشید

آموزش Syntax جاوا اسکریپت

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

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

یک برنامه ی کامپیوتری / Computer program در واقع فهرستی از "دستورات / instructions" می باشد که باید توسط رایانه "اجرا / execute" شود.
در یک زبان برنامه نویسی به instruction های برنامه، Statement (دستور) گفته می شود.
جاوا اسکریپت نیز یک زبان برنامه نویسی محسوب می شود.
دستورات زبان جاوا اسکریپت توسط کاراکتر نقطه ویرگول (;) از هم جدا می شوند.

دستورات JavaScript

دستورات جاوا اسکریپت متشکل است از : values (مقادیر)، Operators (عملگرها)، Expressions (عبارات)، Keywords (کلیدواژه ها) و Comments (توضیحات).

لفظ ها یا لیترال های جاوا اسکریپت JavaScript literals :

مهمترین قوانین برای نوشتن مقادیر ثابت عبارتند از

مفهوم Numbers – اعدادی که با اعشار (decimal) یا بدون اعشار نوشته می شوند، به ترتیب زیر

10.50

‎1001‎

مفهوم Strings – رشته ها متن یا نوشته هایی هستند که درون علامت های " " یا ' ' نوشته می شوند.

"John Doe" ‎

‎'John Doe

مفهوم Expressions – عبارات نیز می توانند نمایان گر مقادیر ثابت باشند.

5 + 6

‎5 * 10

متغیرهای جاوا اسکریپت (JavaScript Variables)

در یک زبان برنامه نویسی، متغیرها (variables) به منظور ذخیره سازی (store) مقادیر داده ها بکار می روند.
جاوا اسکریپت با استفاده از کلید واژه ی var متغیر تعریف (define) می کند.
علامت مساوی (=) را به منظور تخصیص مقادیر به متغیرها مورد استفاده قرار می دهیم.
در این مثال، x به عنوان متغیر تعریف شده، سپس به مقدار 6 به آن اختصاص داده شده است.

var x;

x = 6;

عملگرهای جاوا اسکریپت (JavaScript Operators)

جاوا اسکریپت با استفاده از عملگر جایگزین / assignment operator(=) مقادیر را به متغیر ها نسبت (تخصیص / assign) می دهد.

var x = 5;

var y = 6;‎

جاوا اسکریپت با استفاده از عملگرهای محاسباتی (arithmetic operator) از جمله :+ - * / مقادیر را محاسبه (compute) می کند.

(5 + 6) * 10‎‏ ‏

کلیدواژه های جاوا اسکریپت (JavaScript Keywords)

واژه های کلیدی (Keyword) جاوا اسکریپت به منظور شناسایی عملیاتی که باید (انجام) پیاده شود مورد استفاده قرار می گیرد.
در واقع کلید واژه ی var به مرورگر دستور / اطلاع می دهد یک متغیر جدید ایجاد کند.

var x = 5 + 6;

var y = x * 10;‎‏ ‏

کلیدواژه های جاوا اسکریپت (JavaScript Keywords)

واژه های کلیدی (Keyword) جاوا اسکریپت به منظور شناسایی عملیاتی که باید (انجام) پیاده شود مورد استفاده قرار می گیرد.
در واقع کلید واژه ی var به مرورگر دستور / اطلاع می دهد یک متغیر جدید ایجاد کند.

var x = 5 + 6;

var y = x * 10;

توضیحات در جاوا اسکریپت (JavaScript Comments)

تمامی دستورات جاوا اسکریپت لزوماً "اجرا" نمی شوند.
کدهایی که پس از کاراکتر // یا بین */ و /* قرار داده می شوند در حقیقت توضیح (comment) محسوب می شوند و از این رو در اجرا نادیده گرفته می شوند.

جاوا اسکریپت، حساس به کوچک و بزرگی حروف (Case sensitive)

تمامی شناسه های (identifier) جاوا اسکریپت به کوچک و بزرگی حروف حساس هستند.
به عنوان مثال، lastName و lastname گرچه هر دو متغیر هستند ولی به دلیل تفاوت در کوچک و بزرگی حروف کاملاً از هم متمایز تلقی می گردند.

JavaScript و Camel Case

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

خط تیره (hyphen)

خط زیرین (underscore)

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

مجموعه کاراکترهای جاوا اسکریپت (JavaScript Character set)

جاوا اسکریپت از مجموعه کاراکترهای Unicode استفاده می کند.

 

آموزش توضیحات در جاوا اسکریپت:

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

توضیحات تک خطی (single line comments)

توضیحات تک خطی با کاراکتر // آغاز می گردند.
جاوا اسکریپت هر متنی را که بین کاراکتر // و انتهای خط قرار بگیرد کاملاً نادیده می گیرد(اجرا نمی کند).
در این مثال از comment تک خطی پیش از هر خط به منظور تشریح کد مربوط استفاده شده.

مثال:

توضیحات چند خطی (multi-line comments)

کامنت Comment های چند خطی با */ آغاز شده و با کاراکتر /* خاتمه می یابند.
هر نوشته ی که بین دو کاراکتر گفته شده قرار گیرد کاملاً توسط جاوا اسکریپت نادیده گرفته می شود.
این مثال یک توضیح چند خطی (comment block یا مجموعه ی از توضیحات) را برای تشریح کد مورد نظر بکار می گیرد.

نکته:

در بیشتر مواقع برنامه نویسان از توضیح تک خطی استفاده می کنند.

استفاده از توضیحات برای جلوگیری از اجرای کد

با بهره گیری از توضیحات (comments) می توان از اجرای کد جلوگیری کرد که برای اجرای تست و امتحان کردن کد جایگزین بسیار کارامد تلقی می گردد.
افزودن کاراکتر // در ابتدای خط کد باعث می شود خط کد از حالت قابل اجرا به حالت comment تبدیل شود، بدین معنا که دیگر خط کد مورد نظر اجراشدنی نبوده و به یک توضیح ساده تبدیل گردد.
این مثال با استفاده از //، اجرای یکی از خط کدها را مانع می شود.

دوره آموزش طراحی سایت ادامه دارد

 

  • افشین رفوآ
  • ۰
  • ۰

معرفی زبان برنامه نویسی تحت وب JavaScript

جاوا اسکریپت (JavaScript) زبان برنامه نویسی HTML و وب است.
با استفاده از برنامه نویسی می توان کامپیوتر را قادر به انجام کارها یا وظایف مورد نظر کرد.
یادگیری این زبان اسکریپتی بسیار آسان و در عین حال لذت بخش است.
جاوا اسکریپت از آموزش طراحی سایت در حال حاضر یکی از محبوب ترین و پرکاربردترین زبان های برنامه نویسی است.

جاوا اسکریپت JavaScript قادر است محتوای HTML را تغییر دهد

یکی از متدهای زبان طراحی وب HTML، تابع getElementById() است.
این مثال با استفاده از متد بالا، یک المان HTML را با شناسه ی"demo" یافته و محتوای المان (innerHTML) را به "Hello JavaScript" تغییر می دهد.

 

مثال:

document.getElementById("demo") = "Hello JavaScript"‎

جاوا اسکریپت قادر است استایل های (HTML(Style را تغییر دهد (CSS)

اصلاح استایل (style) یک المان HTML، در واقع همان تغییر خصیصه ی یک HTML است.

مثال:

 

document.getElementById("demo").style.fontSize = "25px"‎

یکی از کاربرد های زبان جاوا اسکریپت اعتبار سنجی ورودی (input) است.

توجه:

لازم به ذکر است که زبان JavaScript یک زبان اسکریپتی ساده برای وب و HTML است مبتنی بر اشیا که توسط NetScape تولید و عرضه شده‌ است. این زبان، یک زبان شی‌گرا است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شده‌ است در حالی که زبان برنامه نویسی Java یک زبان برنامه نویسی شی گرای قدرتمند و کارامد برای برنامه سازی ویژه ی محیط ها و پلت فرم های گوناگون می باشد.

مرور کلی بر زبان جاوا اسکریپت

جاوا اسکریپت JavaScript زندگی خود را با نام Live Script آغاز نمود، اما شرکت Netscape نام آن را، احتمالا به دلیل هیجانی که می توانست از سوی زبان Java به خود بگیرد، به JavaScript تغییر داد. جاوا اسکریپت برای اولین بار در مرورگر Netscape 2.0 با عنوان Live Script به کار گرفته شد.
جاوا اسکریپت یک زبان سبک و مفسر، همراه با قابلیت های شی گرایی (Object Oriented) است که به شما این امکان را داده تا به صفحات ایستاتیک و ساده HTML ، حالت واکنش گرا و تعاملی بدهید.
به طور کلی می توان جاوا اسکریپت را در موارد زیر خلاصه کرد.
جاوا اسکریپت یک زبان سبک و مفسر می باشد (معنای مفسر این است که برنامه دستورات را به صورت خط به خط خوانده و در پایان هر خط آن را اجرا می کند. بر خلاف کامپایلر که ابتدا کل دستورات را خوانده و اشکال یابی کرده، سپس آنها را یکباره اجرا می کند).
این زبان برای ساخت نرم افزارهای میانی شبکه ( واسط ) استفاده می شود.
جاوا اسکریپت یک زبان مکمل برای HTML می باشد.
این زبان یک پلتفرم باز می باشد.
جاوا اسکریپت یک زبان طرف کاربر (Client Side) است .
زبان جاوا اسکریپت یک زبان طرف مشتری (Client Side) می باشد، به این معنی که دستورات آن در کامپیوتر کاربر و در مرورگر وی اجرا می شود. دستورات جاوا اسکریپت را مستقیما می توان درون اسناد HTML وارد کرده و یا آنها را در یک فایل مجزا قرار داد و سپس آن فایل را به صفحه HTML پیوند زد.
وجود زبان جاوا اسکریپت باعث می شود تا صفحات HTML از حالت Static و ساده درآمده و بتوانند با کاربر ارتباط برقرار کرده، مرورگر را کنترل نموده و به صورت پویا محتویات HTML تولید و به صفحه اضافه کنند.
کدهای سمت کلاینت جاوا اسکریپت، قابلیت انجام بسیاری از کارهایی که توسط کد های سمت سرور انجام می شوند را دارا هستند. برای مثال، می توانید کد جاوا اسکریپتی نوشته تا مقدار ورودی کاربر در یک کادر متن را کنترل نموده و در صورتی که وی یک آدرس ایمیل با فرمت صحیح را وارد کرده باشد، اجازه ارسال فرم و اطلاعات درون آن را بدهد.
کد های جاوا اسکریپت در صورتی که کاربر تمامی مقادیر مورد نیاز را به درستی در فرم وارد نموده باشد، پس از Submit فرم در صفحه، اجرا می شوند.
جاوا اسکریپت می تواند اعمال کاربر، مثل فشردن یک دکمه فرمان، کلیک بر روی یک لینک و... را تشخیص داده و دستورات مورد نظر را پس از انجام این رخدادها، اجرا کند.

مزایای استفاده از جاوا اسکریپت

استفاده از زبان جاوا اسکریپت، مزایای خاصی دارد که از آن جمله می توان به موارد زیر اشاره کرد.

کاهش عملکرد و درگیر نمودن سرور :

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

پاسخ سریع و لحظه ای به کاربر :

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

بالا رفتن قدرت تعامل با کاربر :

به وسیله جاوا اسکریپت می توانید کدهایی طراحی نموده تا به سرعت به انجام اعمالی مثل کلیک کاربر، عبور موس از روی یک منطقه و یا زدن دکمه های کیبورد، واکنش نشان دهید.

رابط کاربری قوی تر :

به وسیله جاوا اسکریپت می توانید اجزایی مثل منو های بازشو، اسلایدشوها و... را طراحی نموده و به سایت خود، رابط کاربری قوی تری بدهید.

محدودیت در کار با جاوا اسکریپت

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

آموزش ساختار دستوری جاوا اسکریپت

ساختار دستوری جاوا اسکریپت

یک قطعه کد جاوا اسکریپت، شامل دستوراتی است که درون یک تگ باز و بسته

... ، در صفحات وب HTML تعریف می شوند.
می توانید کدهای جاوا اسکریپت خود را که در تگ تعریف نموده اید، در هر جای صفحه وب مورد نظرتان قرار دهید، اما بهترین روش این است که آنها را در تگ ابتدای صفحه (تگ <head>) بگنجانی
تگ به مرورگر اعلام می کند که کلیه دستورات درون این تگ را به صورت مفسر خوانده و اجرا کند. بنابراین ساده ترین کد جاوا اسکریپت می تواند به صورت زیر در صفحه تعریف شود.

تگ JavaScript دو خاصیت مهم زیر را می تواند داشته باشد.

مفهوم Language :

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

مفهوم Type :

این خاصیت نیز نوع دستورات تعیین شده در اسکریپت را تعیین می کرده که رایج ترین مقدار برای آن “ text/javascript “ می باشد. به معنای اینکه به زبان جاوا اسکریپت و به صورت متنی هستند.
بنابراین تگ JavaScript شما در حالت کاملتر بایستی به صورت زیر باشد.

وجود فاصله ( جای خالی ) بین کاراکترها و رفتن به خط بعدی را در دستورات جاوا اسکریپت

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

به کار بردن کاراکتر ; اختیاری است

معمولا هر خط کد یا دستور در جاوا اسکریپت، همانند آنچه در C++ یا Java دیده اید، با یک کاراکتر ; به پایان می رسد. اما در جاوا اسکریپت، چنانچه هر کد دستوری شما در یک خط جدا Line باشد، می توانید از به کار بردن کاراکتر; خودداری کنید. برای مثال در قطعه کد زیر، می توانید از به کار بردن ; در پایان هر دستور اجتناب نمایید.

 

بهتر است عادت کرده از ; در کدهای خود استفاده نمایید.

جاوا اسکریپت یک زبان حساس به بزرگ یا کوچک بودن حروف می باشد. این بدان معناست که که کلمات کلیدی زبان، نام متغیرها یا توابع و هر واژه دیگری بایستی با رعایت بزرگ یا کوچک بودن حروف نوشته شوند.
بنابراین کلمات Time، TIME و یا TiMe در این زبان با هم متفاوت می باشند.

قرار دادن توضیحات کدنویسی (comment) در جاوا اسکریپت

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

 

محل قرارگیری دستورات جاوا اسکریپت

دستورات JavaScript را می توان در بخش های < body >
و همچنین
< head >
یک سند HTML جای گذاری کرد.

تگ< script >

در HTML، کدهای جاوا اسکریپت را باید بین تگ های < script > و < /script > درج کرد (وارد کرد).

مثال:

 

< script >

document.getElementById("demo") = "My First JavaScript"

< /script >

نکته:

در مثال های پیشین خصیصه ی typeبرای تگ< script >بکار برده شده مانند این نمونه

 

< script type="text/javascript" >

در 5 ،HTMLکلیه ی مرورگر های موجود زبان پیش فرض اسکریپت نویسی JavaScript می باشد و از این رو نیازی به خصیصه ی (attribute) type نیست.

توابع و رخدادهای JavaScript

یک تابع / function در جاوا اسکریپت در واقع یک ساختمان یا مجموعه (block) ای از کدها است، که درست زمانی که لازم است اجرا می شوند.
برای مثال، یک تابع ممکن است زمانی اجرا شود که رخدادی / event معین روی دهد درست مثل زمانی که کاربر موس را کلیک می کند.

قرار دادن کدهای جاوا اسکریپت در بخش< head >یا< body >

می توان هر تعداد اسکریپت که لازم است در سند HTML قرار داد.
اسکریپت ها را می توان در بدنه ی HTML یا قسمت < body >قرار داد و یا آن ها را در بخش< head >صفحه HTML گنجاند.

نکته:

توصیه می کنیم تمامی کدهای خود را در یک مکان واحد نگه دارید.

قراردهی کد جاوا اسکریپ در بخش< head >

در این مثال، یک تابع جاوا اسکریپت در بخش (بین تگ باز و بسته ی) < head > صفحه ی HTML قرار داده می شود.
زمانی که روی دکمه کلیک می کنید تابع فراخوانده (invoke) می شود.

مثال:

 

< !DOCTYPE html >

< html >

< head >

< script >

function myFunction() {

document.getElementById("demo") = "Paragraph changed."

}

< /script >

< /head >

< body >

< h1 >My Web Page< /h1 >

< p id="demo" >A Paragraph< /p >

< button type="button" ="myFunction()" >Try it< /button >

< /body >

< /html >

جای گذاری کدهای جاوا اسکریپت در بدنه ی HTML / قسمت < body >

در این مثال، یک تابع جاوا اسکریپت بین تگ های باز و بسته ی < body > صفحه ی HTML قرار داده می شود.
تابع مربوطه با کلیک روی تنها یک دکمه فراخوانده می شود.

مثال:

 

< !DOCTYPE html >

< html >

< body >

< h1 >My Web Page< /h1 >

< p id="demo" >A Paragraph< /p >

< button type="button" ="myFunction()" >Try it< /button >

< script >

function myFunction() {

document.getElementById("demo") = "Paragraph changed."

}

< /script >

< /body >

< /html >

توصیه می شود اسکریپت ها (Script) را در پایین (انتهای) المان < body > قرار دهید. این کار در حقیقت به بارگذاری هر چه بهتر صفحه کمک می کند، زیرا که نمایش HTML با بارگذاری اسکریپت ها مسدود نمی گردد.

قراردادن اسکریپت ها در فایل های خارجی

همچنین می توان اسکریپت ها را در فایل های خارجی جای گذاری کرد.
اسکریپت های خارجی (external scripts) زمانی بیشترین کارایی را دارند که یک کد یکسان در بسیاری از صفحات وب بکار گرفته شده است.
فایل های جاوا اسکریپت همگی دارای پسوند .jsهستند.
جهت استفاده از یک اسکریپت که در فایل خارجی قرار داده شده باشد، کافی است اسم فایل اسکریپت را داخل خصیصه ی src (source) در تگ < script > قرار دهید.

مثال:

 

< !DOCTYPE html >

< html >

< body >

< script src="myScript.js" >< /script >

< /body >

< /html >

می توانید ارجاع (reference) به اسکریپت خارجی را مطابق میل خود در تگ های < head > یا < body > قرار دهید.
اسکریپت مربوطه درست همانگونه عمل خواهد کرد که گویی دقیقاً همان جایی که تگ < script > قرار گرفته، جای گذاری شده.

توجه:

اسکریپت های خارجی نمی توانند دربردارنده ی تگ های < script > باشند.

مزایای استفاده از خاصیت قراردهی کدهای جاوا اسکریپت در فایل های خارجی

.جای گذاری دستورات جاوا اسکریپت در فایل های خارجی مزایایی دارد که به ترتیب زیر می باشد
کد و HTML را از هم جدا می سازد
مدیریت و خواندن کدهای HTML و JavaScript را به مراتب آسان تر می سازد.
فایل های جاوا اسکریپت که در حافظه ی پنهان ذخیره شده باشند.(به طور موقت ذخیره شده باشند) می توانند در افزایش سرعت بارگذاری صفحه کمک شایانی بکنند.

آموزش جاوا اسکریپت از دوره آموزش طراحی سایت ادامه دارد.

  • افشین رفوآ