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

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

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

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

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


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

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

  • ۰
  • ۰
سلام عزیزان در این سری آموزشها با پایگاه داده Sql Server آشنا میشوید.
در قسمت قبل با مفاهیم زیر آشنا شدید:
با ادامه آموزش Sql server همراه باشید
 

 

آموزش عملگرهای AND و OR
عملگرهای AND و OR برای فیلتر کردن record ها براساس بیشتر از یک شرط استفاده می شوند .
عملگر AND رکوردی را نمایش می دهد که هم شرط اول و هم شرط دوم در آن صدق کند .
عملگر OR رکوردی را نمایش می دهد که یا شرط اول و یا شرط دوم در آن صدق کند.

 

نحوه استفاده از عمگرهای AND و OR در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است.
 
استفاده از عملگر AND
دستور SQL زیر تمام customer ها را از کشور "Germany" و شهر "Berlin" از جدول "Customers" انتخاب می کند.
SELECT * FROM Customers
WHERE Country='Germany'
AND City='Berlin';
مثال استفاده از عملگر OR
دستور SQL زیر تمام customer ها را از شهر "Berlin" یا "Munchen" از جدول "Customers" انتخاب می کند.
SELECT * FROM Customers
 
WHERE Country='Germany'
 
AND (City='Berlin' OR City='München');
 

 

دستور ORDER BY در آموزش Sql server
کلید واژه ORDER BY برای مرتب کردن نتیجه result-set استفاده می شود .
کلید واژه ORDER BY برای مرتب کردن نتیجه result-set در یک یا چند ستون استفاده می شود .
کلید واژه ORDER BY به صورت پیش فرض record ها را به صورت صعودی مرتب می کند. برای مرتب کردن recordها به صورت نزولی می توانید از کلید واژه DESC استفاده کنید.
فرم استفاده از کلید واژه ORDER BY :
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC

 

نحوه استفاده از کلید واژه ORDER BY در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد. جدول زیر از میان جدول "Customers" انتخاب شده است:
 

 

مثال استفاده از کلید واژه ORDER BY
دستور SQL زیر تمام customer ها را از جدول "Customers" انتخاب می نماید در حالیکه آنها را بر اساس حرف اول ستون Country مرتب کرده است:
SELECT * FROM Customers
ORDER BY Country;
 

 

مثال استفاده از کلید واژه ORDER BY DESC
دستور SQL زیر تمام customer ها را از جدول "Customers" انتخاب می نماید در حالیکه آنها را بر اساس حرف اول ستون Country و به صورت نزولی مرتب کرده است:
SELECT * FROM Customers
ORDER BY Country DESC;

 

مثال استفاده از کلید واژه ORDER BY و انتخاب چندین ستون
دستور SQL زیر تمام customer ها را از جدول "Customers" انتخاب می نماید در حالیکه از اطلاعات ستون های (Country و Customer Name) استفاده کرده و جدول را بر اساس حرف اول این دو ستون و به صورت صعودی مرتب کرده است:
SELECT * FROM Customers
ORDER BY Country,CustomerName;
 
 
آموزش Sql server ادامه دارد.
  • افشین رفوآ
  • ۰
  • ۰
سلام عزیزان با آموزش جاوا اسکریپت در خدمت شما دوستان هستیم

 

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

 

رخدادهای HTML در آموزش طراحی سایت
رخداد HTML ممکن است چیزی باشد که هم از طرف مرورگر و هم از طرف کاربر روی می دهد. نمونه هایی از رخدادهای HTML به ترتیب زیر می باشند. بار گذاری یک صفحه ی وب HTMLبه پایان رسیده یکی از فیلدهای ورودی (input field) HTML تغییر یافته یا اصلاح شده یک دکمه ی HTML روی صفحه کلیک شده اغلب پس از اینکه رویدادی (event) رخ می دهد، عملیات خاصی را می خواهیم پیاده کنیم. جاوا اسکریپت به مجرد اینکه رخدادی را شناسایی کند، اجازه ی اجرای کد مورد نظر را به برنامه نویس می دهد. HTML به خصیصه های event handler (کنترل گر و مدیریت کننده ی رخداد ها) که به کد جاوا اسکریپت (javascript code) الحاق شده اند اجازه ی متصل یا ضمیمه شدن به عناصر HTML را می دهد.

 

با تک کوتیشن (' ')
<some-html-element some-event='some JavaScript'>

 

با دابل کوتیشن (" ")
<some-html-element some-event="some JavaScript">
در مثال زیر خصیصه (attribute) onClick (به همراه کد)، به المان دکمه (تگ </button>) افزوده می شود.
مثال:

 

نمونه یک
<button onclick="getElementById('demo').innerHTML=Date()">The time is?</button>
همان طور که در مثال بالا مشاهده می کنید، کد جاوا اسکریپت محتوای المان مربوط را به وسیله ی شناسه ی "demo" تغییر می دهد. حال توجه خود را به نمونه ی بعدی جلب کنید که در آن کد محتوای المان خود را با استفاده از this.innerHTML تغییر می دهد.
مثال:

 

نمونه دو
<button onclick="this.innerHTML=Date()">The time is?</button>
نکته:
کد جاوا اسکریپت معمولا چندین خط ادامه دارد. رایج تر این است (بیشتر می بینید) که خصیصه ی رخدادها (event attribute) توابع را فراخوانی کنند.
مثال:

 

نمونه سه
<script>
function displayDate() {
document.getElementById("demo").innerHTML = Date();
}
</script>

 

رخدادهای معمول و پرکاربرد HTML
 
جاوا اسکریپت چه نقشی را ایفا می کند؟
اداره کننده ی رخدادها Event handler ها به منظور کنترل، بررسی، تایید درستی ورودی کاربر (user input) و عملیاتی که توسط کاربر انجام می شود و همچنین عملیات مرورگر مورد استفاده قرار می گیرد. کارهایی که باید با هر بار بارگذاری صفحه، انجام شود. کارهایی که باید با بسته شدن صفحه / هنگامی که صفحه بسته می شود، انجام گیرد. عملیاتی که باید پس از اینکه کاربر یک دکمه را فشار داد، پیاده شوند. محتوا (content) که باید به هنگام وارد شدن داده توسط کاربر، بررسی و تایید درستی شود و غیره..... روش های مختلفی هست که از طریق آن ها می توان به جاوا اسکریپت امکان همکاری و انجام عملیات با رخداد ها را داد، از جمله خصیصه های رخداد HTML خود می توانند (به طور) مستقیم کد جاوا اسکریپت را اجرا کنند. خصیصه های رخداد HTML می توانند توابع جاوا اسکریپت را صدا بزنند.(فراخوانی کنند) برنامه نویس می تواند توابع اداره کننده ی رخداد خود را به المان های HTML تخصیص دهد. برنامه نویس می تواند از ارسال، مدیریت و دستکاری رخدادها جلوگیری کند و غیره.....
 

 

آموزش حوزه ی دسترسی در جاوا اسکریپت / JavaScript Scope
 
در جاوا اسکریپت توابع (functions) و اشیا (objects) نیز متغیر تلقی می شوند. در زبان مبتنی بر اشیا جاوا اسکریپت، scope به مجموعه ی از متغیرها، اشیا و توابع گفته می شود که شما به آن ها دسترسی دارید. حوزه یا scope جاوا اسکریپت توابع هستند و اینscope ها داخل تابع تغییر یافته و تعریف می شوند.

 

متغیرهای محلی جاوا اسکریپت
متغیرهایی که داخل یک تابع تعریف می شوند، در واقع متغیرهای محلی / local آن تابع محسوب می شوند. متغیرهای محلی (local variables)، حوزه دسترسی یا scope آن ها نیز محلی تلقی می گردد، بدین معنا که دسترسی به آن ها تنها داخل خود تابع امکان پذیر می باشد.
مثال:

 

نمونه یک
<script>
myFunction();
document.getElementById("demo").innerHTML =
"I can display " + typeof carName;
 
function myFunction() {
var carName = "Volvo";
}
</script>
 
از آنجایی که متغیرهای محلی تنها داخل توابع مختص به خود شناخته می شوند، متغیرهایی که با متغیرهای محلی (داخل تابع مربوط) هم نام هستند، می توانند در توابع دیگر بکار گرفته شوند، به عبارتی روشن تر شما می توانید در توابع مختلف، متغیرهای محلی با نام های یکسان داشته باشید.(متغیرهای محلی تنها توسط آن تابعی که آنها را معرفی کرده شناخته می شوند). متغیرهای محلی زمانی ایجاد می شوند که تابعی راه اندازی شود (کار خود را آغاز کند) و هنگامی نیز حذف می گردند که تابع عملیات خود را به پایان رسانده باشد / متغیرهای محلی مجرد اینکه عملیات تابع تکمیل شد، خود به خود حذف می گردند.

 

متغیرهای سراسری / عمومی (global variables)
متغیری که بیرون یک تابع تعریف شود، متغیر Global (سراسری) نامیده می شود. یک متغیر سراسری دارای حوزه ی دسترسی سراسری است، بدین معنا که کلیه ی اسکریپت ها و توابع موجود در یک صفحه ی وب امکان دستیابی به آن را دارند.
مثال:

 

نمونه دو
var carName = "Volvo";
myFunction();
 
function myFunction() {
document.getElementById("demo").innerHTML =
"I can display " + carName;
}
اگر به متغیری که هنوز تعریف یا اعلان نشده مقداری تخصیص دهیم، آن متغیر خودکار یک متغیر سراسری (global) تلقی می گردد. در نمونه کد ذیل با اینکه carName داخل یک تابع تعریف شده، اما یک متغیر سراسری تلقی می گردد (زیرا که متغیر مورد نظر از پیش اعلان نگردیده است).
مثال:

 

نمونه سه
<script>
myFunction();
document.getElementById("demo").innerHTML =
"I can display " + carName;
 
function myFunction() {
carName = "Volvo";
}
</script>

 

طول عمر متغیرها (Lifetime of varabiles)
طول عمر یک متغیر جاوا اسکریپت درست از زمانی که آن متغیر اعلان می گردد، آغاز گشته و حساب می شود. همان طور که پیش تر ذکر شد عمر یک متغیر محلی محدود به زمان شروع اجرا و تکمیل عملیات تابع است، یعنی بمحض اینکه تابع تکمیل شود متغیر محلی نیز عمرش به پایان رسیده و حذف می شود. متغیرهای سراسری یا عمومی نیز هنگامی که صفحه ی وب بسته می شود، همگی حذف می گردند.

 

آرگومان های تابع (function arguments)
آرگومان (پارامتر) های یک تابع به عنوان متغیرهای محلی داخل آن تابع عمل می کنند.

 

متغیرهای سراسری در HTML
حوزه دسترسی سراسری (global scope) در جاوا اسکریپت شامل کل محیط جاوا اسکریپت می شود (از هرجای جاوا اسکریپت یا نقطه ی صفحه می توان به متغیرها دسترسی پیدا کرد). در HTML، حوزه ی عمومی یا سراسری (Global Scope) شی window را شامل می شود: تمامی متغیرهای سراسری متعلق به شی window هستند و از این رو می توان از هر نقطه ی از شی window به متغیرهای عمومی دسترسی پیدا کرد.
مثال:

 

نمونه چهار
<script>
myFunction();
document.getElementById("demo").innerHTML =
"I can display " + window.carName;
 
function myFunction() {
carName = "Volvo";
}
</script>
توجه:
آیا می دانستید که متغیرها (یا توابع) سراسری می تواند متغیرها و توابع متعلق به شی window را بازنویسی / overwrite کنند؟ هر تابعی، حتی خود شی window، قادر است متغیرها و توابع سراسری را بازنویسی کند.
در قسمت بعد رشته ها در جاوا اسکریپت را فرا می گیرید
  • افشین رفوآ
  • ۰
  • ۰
سلام دوستان...
در این قسمت از آموزش پایتون نگاه اولیه به کلاس ها داریم :
کلاس ها مقدار کمی نحو(syntax) جدید را معرفی می کنند، از جمله سه نوع شی جدید و برخی مفاهیم(semantics) جدید.

 

آموزش نحوه تعریف کلاس در Python
ساده ترین حالت تعریف کلاس به صورت زیر است:
class ClassName:
<statement-1>
.
.
.
<statement-n>
</statement-n></statement-1>
 
تعاریف کلاس، مانند تعاریف تابع(عبارت def) باید پیش از اینکه اثری داشته باشند، اجرا شوند. (می توانید تعریف یک کلاس را در شاخه ای از یک عبارت if یا درون یک تابع قرار دهید.)
در عمل، عبارات درون تعریف یک کلاس، معمولا تعاریف تابع خواهند بود، اما عبارات دیگر نیز مجار هستند و گاهی مفید—بعدا به این موضوع خواهیم پرداخت. تعاریف تابع درون یک کلاس معمولا یک شکل عجیبی از لیست آرگومان ها دارند، که توسط قراردادهای فراخوانی متدها نوشته شده اند—دوباره می گویم، این موضع بعدا توضیح داده خواهد شد.
وقتی تعریف یک کلاس وارد شود، یک فضای نام جدیدی ساخته می شود و به عنوان حوزه محلی استفاده می شود—بنابراین، تمامی تخصیص ها به متغیر های محلی، به این فضای نام جدید می روند. به خصوص، تعاریف تابع، نام تابع جدید را در اینجا اتصال می دهند.
زمانی که تعریف یک کلاس به صورت نرمال قرار گیرد(از طریق پایان)، یک شی کلاس ساخته می شود. این اساسا یک بسته بندی حول محتویات فضای نامی است که توسط تعریف کلاس ایجاد شده است. در بخش بعدی مباحث بیشتری درباره اشیای کلاس فرا خواهیم گرفت. حوزه محلی اصلی ( حوزه ای که دقیقا قبل از تعریف کلاس وارد شده است) باز گردانده شده است، و شی کلاس، به نام کلاس که در سربرگ تعریف کلاس است، محدود شده است. (ClassName در مثال).

 

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

 

آموزش Class Objects در پایتون
اشیای کلاس از دو نوع عملیات پشتیبانی می کنند: ارجاع های ویژگی (attribute references) و نمونه گیری (instantiation).
ارجاع های ویژگی، از نحوه نگارش استاندارد مورد استفاده برای تمامی ارجاع های ویژگی در پایتون، استفاده می کنند: obj.name . تمامی نام های موجود در فضای نام کلاس، در زمان ساخت شی کلاس، نام های معتبر ویژگی هستند. بنابراین اگر تعریف کلاس به صورت زیر باشد:
class MyClass:
"""A simple example class"""
i = 12345
 
def f(self):
return 'hello world'
پس MyClass.i و MyClass.f ارجاع های ویژگی معتبر هستند، که به ترتیب یک عدد صحیح و یک شی تابع را باز می گردانند. همچنین می توان به ویژگی های کلاس مقداری را تخصیص داد، بنابراین می توانید مقدار MyClass.i را با تخصیص، تغییر دهید. __doc__ نیز یک ویژگی معتبر است، که docstring متعلق به کلاس "A simple example class" را باز می گرداند. نمونه گیری کلاس از نمادگذاری تابع استفاده می کند. فقط وانمود کنید که شی کلاس یک تابع بدون پارامتر است که یک نمونه جدید از کلاس را باز می گرداند. برای مثال(کلاس بالا را در نظر بگیرید):
x = MyClass()
عبارت بالا یک نمونه جدید از کلاس را ایجاد می کند و این شی را به متغیر محلی x تخصیص می دهد. عمل نمونه گیری (صدا زدن یک شی کلاس) یک شی خالی را ایجاد می کند. بسیاری از کلاس ها، تمایل به ایجاد اشیا با نمونه هایی که برای یک حالت اولیه خاص سفارشی شده باشند، دارند. بنابراین ممکن است یک کلاس یک متد خاص به نام __init__() را به صورت زیر تعریف کند:
def __init__(self):
self.data = []
زمانی که یک کلاس متد __init__() را تعریف می کند، نمونه گیری کلاس، به صورت خودکار __init__() را برای نمونه تازه ساخته شده کلاس فراخوانی می کند. بنابراین در این مثال، یک نمونه جدید و مقدار دهی اولیه شده توسط عبارت زیر قابل دستیابی است:
x = MyClass()
البته که متد __init__() میتواند برای انعطاف پذیری بیشتر دارای آرگومان باشد. در این صورت، آرگومان های داده شده به عملگر نمونه گیری کلاس، به __init__() پاس داده می شوند. برای مثال:
>>> class Complex:
... def __init__(self, realpart, imagpart):
... self.r = realpart
... self.i = imagpart
...
>>> x = Complex(3.0, -4.5)
>>> x.r, x.i
(3.0, -4.5)

 

آموزش اشیای نمونه (instance objects) در Python
حال با اشیای نمونه چه کار می توان کرد؟ تنها عملیات قابل فهم توسط اشیای نمونه، ارجاع های ویژگی هستند. دو نوع نام ویژگی معتبر وجود دارد: ویژگی های داده (data attributes) و متدها.
ویژگی های داده” متناظر است با “متغیر های نمونه” در Smalltalk و "اعضای داده” در C++ . ویژگی های داده نیازی به اعلان شدن ندارند؛ آنها همانند متغیر های محلی، در اولین جایی که مقداری به آنها تخصیص یابد، به وجود می آیند. برای مثال، اگر x نمونه MyClass که در بالا ایجاد شد، باشد، قطعه کد زیر مقدار 16 را بدون برجای گذاشتن ردی چاپ خواهد کرد.
x.counter = 1
while x.counter < 10:
x.counter = x.counter * 2
print(x.counter)
del x.counter
نوع دیگری از ارجاع ویژگی نمونه (instance attribute reference)، متد است.
یک متد تابعی است که متعلق به یک شی است. ( در پایتون، واژه متد تنها مختص به نمونه های کلاس نیست: سایر انواع شی هم می توانند متد داشته باشند. برای مثال، اشیای لیست، متدهایی به نام های append ، insert ، remove ، sort و غیره دارند. اگر چه در مباحث بعدی منحصرا از واژه متد برای بیان متدهای اشیای نمونه کلاس استفاده می شود، مگر اینکه صریحا خلاف آن بیان شود.)
نام های معتبر متد مربوط به یک شی نمونه، به کلاس آن بستگی دارد. در تعریف، تمامی ویژگی های یک کلاس که اشیای تابع هستند، متدهای متناظر با نمونه های آن را تعریف می کنند. بنابراین در مثال ما، از آنجایی که MyClass.f یک تابع است، x.f یک ارجاع معتبر متد است. اما x.i (معتبر)نیست، زیرا MyClass.i (یک تابع) نیست. اما x.f چیزی مشابه MyClass.f نیست—این یک شی متد است، نه یک شی تابع.

 

اشیای متد (method objects) در آموزش پایتون
معمولا یک متد دقیقا پس از بسته شدن (bound)، فراخوانی می شود:
x.f()
در مثال MyClass ، رشته 'hello world' باز گردانده می شود. اگر چه، فراخوانی بلافاصله یک متد، ضروری نیست: x.f یک شی متد است، و می تواند در زمانی دیگر ذخیره و صدا زده شود. برای مثال:
xf = x.f
while True:
print(xf())
تا آخر زمان به چاپ hello world ادامه می دهد. زمانی که یک متد فراخوانی می شود، دقیقا چه اتفاقی می افتد؟ ممکن است متوجه شده باشید که x.f() در بالا بدون آرگومان فراخوانی شده است، هر چند که تعریف تابع برای f() یک آرگومان مشخص کرده است. چه اتفاقی برای آرگومان افتاد؟ زمانی که تابعی نیاز به یک آرگومان دارد و بدون آرگومان فراخوانی می شود، پایتون حتما استثنایی را اعلام می کند—حتی اگر آن آرگومان واقعا استفاده نشده باشد.
در واقع ممکن است پاسخ را حدس زده باشید: نکته خاص درباره متد ها این است که شی نمونه به عنوان اولین آرگومان تابع پاس داده می شود. در مثال ما، فراخوانی x.f() دقیقا برابر با فراخوانی MyClass.f(x) است. به طور کلی، فراخوانی یک متد با لیستی از n آرگومان، برابر است با فراخوانی تابع متناظر آن، با لیستی از آرگومان ها که به واسطه درج شی نمونه متد، قبل از اولین آرگومان ساخته شده است.
اگر همچنان متوجه نحوه عملکرد متدها نمی شوید، نگاهی به پیاده سازی احتمالا میتواند قضیه را روشن کند. زمانی که یک ویژگی غیر داده از یک نمونه، ارجاع یافته باشد، کلاس نمونه جستجو می شود. اگر نام، یک ویژگی کلاس معتبر که یک شی تابع است را نشان دهد، یک شی متد به واسطه جمع کردن(اشاره گر ها به) شی نمونه و شی تابع که با هم در یک شی abstract پیدا شده اند، ساخته میشود: این شی متد است. زمانی که شی متد به همراه لیستی از آرگومان ها فراخوانی شده باشد، یک لیست آرگومان جدید از شی نمونه و لیست آرگومان ها ساخته می شود، و شی تابع با لیست آرگومان جدید فراخوانی می شود.

 

آموزش متغیر های کلاس و نمونه در برنامه نویسی Python
به طور کلی، متغیر های نمونه برای داده هستند و برای هر نمونه یکتا هستند. متغیر های کلاس برای ویژگی ها و متدها هستند و بین همه نمونه های کلاس به اشتراک گذاشته می شوند.
class Dog:
 
kind = 'canine' # class variable shared by all instances
 
def __init__(self, name):
self.name = name # instance variable unique to each instance
 
>>> d = Dog('Fido')
>>> e = Dog('Buddy')
>>> d.kind # shared by all dogs
'canine'
>>> e.kind # shared by all dogs
'canine'
>>> d.name # unique to d
'Fido'
>>> e.name # unique to e
'Buddy'
همانطور که در بخش سخنی درباره نام ها و اشیا بحث شد، داده های اشتراکی می توانند تاثیرات احتمالی شگفت انگیزی با اشیای تغییر پذیر درگیر مانند لیست ها و دیکشنری ها داشته باشند. برای مثال، لیست tricks در کد زیر نباید به عنوان متغیر کلاس استفاده شود زیرا تنها یک لیست توسط همه نمونه های Dog به اشتراک گذاشته می شود.
طراحی صحیح کلاس، باید به جای آن از یک متغیر نمونه استفاده کند.
    class Dog:
 
    def __init__(self, name):
        self.name = name
        self.tricks = []    # creates a new empty list for each dog
 
    def add_trick(self, trick):
        self.tricks.append(trick)
 
>>> d = Dog('Fido')
>>> e = Dog('Buddy')
>>> d.add_trick('roll over')
>>> e.add_trick('play dead')
>>> d.tricks
['roll over']
>>> e.tricks
['play dead']

 

آموزش (random remarks) در برنامه نویسی پایتون
اگر یک نام ویژگی(attribute name) مشابه هم در یک نمونه و هم در یک کلاس رخ دهد، سپس جستجوی ویژگی، نمونه را اولویت بندی می کند.
>>> class Warehouse:
purpose = 'storage'
region = 'west'
 
>>> w1 = Warehouse()
>>> print(w1.purpose, w1.region)
storage west
>>> w2 = Warehouse()
>>> w2.region = 'east'
>>> print(w2.purpose, w2.region)
storage east
ویژگی های داده همانطور که توسط کاربران معمولی (مشتری ها) یک شی ارجاع داده می شوند، ممکن است توسط متدها نیز ارجاع یابند. به بیان دیگر، کلاس ها برای پیاده سازی انواع داده انتزاعی خالص قابل استفاده نیستند. در حقیقت، هیچ چیزی در پایتون، اجبار به پنهان سازی داده را ممکن نمی کند—همه چیز بستگی به قرارداد دارد. ( از طرف دیگر، پیاده سازی پایتون، نوشته شده در C، می تواند به طور کامل جزییات پیاده سازی را پنهان کند و دسترسی به یک شی را در صورت نیاز کنترل کند. توسط ضمیمه های پایتون که به C نوشته شده است، می توان از این استفاده کرد. )
مشتری ها (Clients) باید با احتیاط از ویژگی های داده استفاده کنند—مشتری ها ممکن است ثابت های(invariants) نگهداری شده توسط متد ها را با مهر زدن روی ویژگی های داده آنها اشتباه بگیرند. توجه داشته باشید که ممکن است مشتری ها ویژگی های داده خود را بدون تاثیر گذاری روی اعتبار متدها، به یک شی نمونه اضافه کنند، البته تا زمانی که از ناسازگاری بین نام ها پرهیز شود—مجددا می گویم، قرارداد های نام گذاری می تواند مانع بسیاری از دردسرها در اینجا شود.
هیچ گونه اختصار نویسی برای ارجاع ویژگی های داده(یا سایر متدها) از درون متدها وجود ندارد. در واقع به نظر من این خوانایی متدها را افزایش می دهد: در نگاه کلی به یک متد، امکان اشتباه و سر در گمی بین متغیرهای محلی و متغیرهای نمونه به هیچ وجه وجود ندارد.
اغلب اولین آرگومان یک متد self نام دارد. این فقط یک قرارداد است. نام self مطلقا هیچ معنی خاصی برای پایتون ندارد. هر چند توجه داشته باشد که با رعایت نکردن قراردادها، ممکن است کد شما برای سایر برنامه نویسان پایتون از خوانایی کمتری برخوردار باشد. همچنین ممکن است یک برنامه مرورگر کلاس با تکیه بر چنین قراردادهای نوشته شود.
هر شی تابعی که یک ویژگی کلاس باشد، یک متدی را برای نمونه های آن کلاس تعریف می کند. ضروری نیست که تعریف تابع به صورت نوشتاری درون تعریف کلاس قرار گیرد (محصور باشد). تخصیص یک شی تابع به یک متغیر محلی درون کلاس نیز کفایت می کند. برای مثال:
# Function defined outside the class
def f1(self, x, y):
    return min(x, x+y)
class C:
    f = f1
    def g(self):
        return 'hello world'
    h = g
حال f,g و h همه ویژگی های کلاس c هستند که به اشیای تابع رجوع می کنند، و متعاقبا همه آنها متدهای نمونه های c هستند – h دقیقا برابر است با g. توجه داشته باشید که معمولا این عمل تنها برای سر در گم کردن خواننده برنامه انجام می شود.
ممکن است متدها با استفاده از ویژگی های متد آرگومان self، سایر متدها را فراخوانی کنند.
class Bag:
def __init__(self):
self.data = []
 
def add(self, x):
self.data.append(x)
 
def addtwice(self, x):
self.add(x)
self.add(x)
متدها ممکن است به همان شیوه مشابه ارجاع توابع معمولی، نام های سراسری را ارجاع دهند. حوزه سراسری مربوط به یک متد، ماژولی است که در بردارنده تعریف آن است. (یک کلاس هرگز به عنوان یک حوزه سراسری استفاده نمی شود.) درحالی که به ندرت به دلیل خوبی برای استفاده از داده سراسری در یک متد بر میخوریم، کاربرد های درست و قانونی بسیاری از حوزه سراسری وجود دارد: یک مورد این است که، توابع و ماژول های وارد شده به حوزه سراسری می توانند مانند توابع و کلاس های تعریف شده در آن، توسط متدها استفاده شوند. معمولا کلاسی که در بردارنده متد است، خود نیز درون حوزه سراسری تعریف شده است. در بخش بعد دلایل خوبی برای اینکه چرا یک متد ممکن است بخواهد به کلاس خود ارجاع دهد، را بیان می کنیم.
هر مقدار، یک شی است و بنابراین یک کلاس دارد(نوع آن نیز نامیده می شود) و به عنوان object.__class__ ذخیره می شود.
آموزش پایتون ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
آموزش طراحی سایت : من معتقدم HTML5 دستاورد بزرگی خواهد بود (بسیاری از مردم هم چنین اعتقادی دارند.). این برنامه ممکن است روش لباس پوشیدن و غذا خوردن ما را تغییر ندهد، اما مطمئنا روش توسعه ی برنامه های وب و طراحی صفحات وب را در 10 سال آینده تغییر خواهد داد. به هرحال این صفحه آموزش HTML نمی باشد. HTML5 چیز کاملا جدیدی نمی باشد. بسیاری از ویژگی های HTML5 از HTML4 یا HTML1.0 گرفته شده اند. با زمان و انرژی محدودم می توانم فقط آنچه را در HTML5 جدید است و تمرینات قدیمی که دیگر مورد استفاده نیستند را پوشش دهم.
این یک سایت HTML5 می باشد. هنگامی که در حال کشف و یادگیری HTML5 هستم، امیدوارم بتوانم آنچه را که یاد گرفته ام با شما به اشتراک بگذارم.
" دو نوع انگیزه وجود دارد که با دونوع هدف منطبق می شود. انگیزه های سلطه گرایی هستند که هدف آنها رسیدن به متعلقات شخصی می باشد که نمی توان به اشتراک گذاشت و در مرکز انگیزه ی مادی قرار می گیرند. انگیزه های خلاقانه نیز وجود دارند که هدف آنها آوردن اموالی است که در آنها هیچ گونه تملک و یا شخصی بودنی وجود ندارد.
بهترین زنگی، آن زندگی میباشد که انگیزه های خلاقانه بیشترین نقش را داشته و انگیزه های مالی کمترین را.
برتراند راسل (1872 –1970)
با توجه به این نوشته HTML5 یک نسخه ی در حال کار می باشد. به عبارت دیگر HTML5 هنوز یک کار در حال پیشروی می باشد. ویژگی های آن در W3C منتشر شده و روز به روز تغییر می کند.

 

چرا HTML5 مهم است؟
حتمالا تاکنون در مورد HTML5 شنیده اید، فکر می کنم محبوب ترین برنامه ای که فیلم را بدون Adobe Flash اجرا می کند، باید از آقای استیو جابز برای تبدیل آن به یک فن آوری معروف تشکر کرد. علاوه بر این ممکن است در مورد ایجاد انیمیشن بدون پلاگین، کنترل ورودی غنی مانند دیت پیکر، کالرپیکر، اسلایدر بدون جاوااسکریپت و در انتها ذخیره ی داده ی برون خطی (آفلاین) نیز شنیده باشید. به هرحال این هم فقط بخشی از HTML5 می باشد. چه وقت؟ WC3 در فوریه ی 2011 اعلام کرد که جولای 2014 تاریخی است که HTML5 پیشنهاد رسمی برای استاندارد وب می شود. زمان را فراموش کنید: واقعیت این است که جدول زمانی پیشنهادی از طرف WHATWG واقعا اتفاق نیفتاد. توسعه ی وب در دستان دو گروه از مردم واقع شده است. اولین گروه کمپانی های مرورگر معروفی مانند Mozilla، مایکروسافت، اپل، گوگل و اپرا می باشند. گروه دوم نیز طراحان و توسعه دهندگان وب در این زمینه می باشند. ضعفHTML1.1 و HTML 2 خیلی ساده است، کمپانی های مرورگر فکر می کردند که ایده ی احمقانه است، بنابراین درهای خود را به روی آن بستند. امروزه بسیاری از مرورگرها به شدت تمایل دارند که از HTML5 پشتیبانی کنند.
هیچ دلیلی وجود ندارد که طراحان تحت تاثیر HTML5 قرار نگیرند، زیرا که زندگی را از همیشه برای ما آسانتر کرده است.
اعلام نوع داکیومنت در HTML5 هم ساده و هم جالب می باشد. این کار به سادگی زیر میباشد:
‎<!DOCTYPE html>
و ‎بر خلاف doctype در HTML1 و HTML4 که با آن آشنا هستیم:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">‎
‎<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ‎‎"HTTP>
/www.w3.org/TR/html4/loose.dtd">‎
‎<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" ‎‎"HTTP>
/www.w3.org/TR/html4/frameset.dtd">‎
‎<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ‎‎"HTTP>
/www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">‎
‎<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ‎‎"HTTP>
/www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">‎
 
برخی از آنها حتی در یک خط نوشته نمی شوند. این اولین دلیلی است که نشان می دهد کار طراحان وب با HTML5 راحت تر شده. یک صفحه ی HTML5 می تواند به سادگی زیر باشد:
<!DOCTYPE html>‎
<html>‎
<head> ‎
<title>HTML5 is rocks!</title> ‎
</head>‎
<body>
‎ <h1>HTML5 Rocks!</h1> ‎
</body>‎
</html>‎

 

آموزش کن وس Canvas
آموزش طراحی سایت : یکی از داغ ترین موضوعات HTML5 موضوع canvas می باشد، اما دقیقا canvas چیست؟ canvas یک پارچه ی ساده بافته شده ی سنگین می باشد که برای ساختن قایق، چادر، کوله پشتی، خیمه و دیگر ابزاری که استحکام لازم دارند، استفاده می شود. و همچنین توسط نقاشان به عنوان سطح نقاشی که روی چارچوب چوبی نصب شده باشد، استفاده می شود. شاید این جوابی که شما به دنبال آن بودید، نباشد.به هرحال canvas در HTML5 از کاربرد آن توسط هنرمندان تقلید می کند و بوم نقاشی نامیده می شود.بوم نقاشی یک فضای خالی بدون رنگ ( حتی بدون سفید) است، که قرار است با مداد و قلم موی جاوااسکریپت تبدیل به یک کار هنری شود. البته که وجود بوم نقاشی تنها برای یک تصویر ثابت نیست. تصویر ثابت می تواند به سادگی به وسیله ی عنصر قدیمی img مورد بررسی قرار بگیرد. با جاوااسکریپت به عنوان قلم موی خود، می توانید یک انیمیشن شاد و یا حتی بازیهای تکرار شونده ایجاد کنید. اگر قبلا انیمیشن های درخشانی ایجاد کرده اید و امید دارید که یک ورژن HTML5 ایجاد کنید، ابزاری وجود دارند که در انجام آن به شما کمک می کنند. یکی از آنها Flash to HTML5 می باشد.HTML5 مقوله ی خیلی بزرگی است، آنقدر بزرگ که می توانید در مورد آن یک کتاب بنویسید. هدف من در این آموزش تحت پوشش قرار دادن جزئیات مربوط به بوم نقاشی نیست، بلکه تنها معرفی مختصری از آن است. به یاد داشته باشد که این تنها شروع آن است. برای ایجاد بوم نقاشی، کد ساده ی زیر لازم است.
‎<canvas width="200" height="200"></canvas>‎
به هرحال به یاد داشته باشید که مرز یک بوم نقاشی یک آبجکت ناپیداست. این برنامه فضایی را می گیرد اما شما آن را نمی بینید. اجازه دهید یک سبک مرزی اضافه کرده و از ID برای مرجع استفاده کنیم. هدف از ID این است که با استفاده از DOM (document object model) آن را قابل دسترس کنیم. بدون مرجع ID، جاوا اسکریپت، در این مورد قلم موی شما، هیچ ایده ای برای نقاشی روی بوم ندارد.
‎<canvas id="Canvas1" width="200" height="200" style="border:solid 1px #000000"</canvas>‎
 
کن وس Rectangle در آموزش طراحی سایت
ابتدا روی دکمه ی قرمز کلیک کنید. اگر دکمه ی قرمز در بوم نقاشی نمی بینید، احتمالا تمایل داشته باشید مرورگر درستی برای ادامه بگیرید.
 
<canvas id="c1" width="200" height="200" style="border:solid 1px #000000;"></canvas>
‎<button onclick="draw_square();return true;">Red Square</button>
<script>
function draw_square() {
‎ var c1 = document.getElementById("c1");
‎ var c1_context = c1.getContext("2d");
‎ c1_context.fillStyle = "#f00";
‎ c1_context.fillRect(50, 50, 100, 100);
‎}
‎</script>‎
برای کشیدن هرچیزی در بوم نقاشی، چیزی بین برچسب opening و برچسب closing از <canvas> قرار ندهید، مرورگرهایی که بوم نقاشی را پشتیبانی می کنند، آن را نادیده خواهند گرفت. شما می توانید فقط از جاوااسکریپت برای انجام نقاشی خود استفاده کنید. قانون شماره یک، عنصر بوم نقاشی شما باید دارای یک ID باشد، بنابراین می توانیم از جاوااسکریپت برای قراردادن آن استفاده کنیم. قانون شماره دو، هر بوم نقاشی دارای یک کانتکست می باشد. در واقع کانتکست بوم نقاشی آن چیزی است که قرار است روی آن نقاشی بکشیم، نه خود بوم.
var c1 = document.getElementById("c1");
var c1_context = c1.getContext("2d");‎
ز لحاظ نگارش، نه تنها کانتکست های دو بعدی، بلکه سه بعدی آن نیز در دسترس می باشند. به هرحال کانتکست سه بعدی که webGL نامیده می شود، برای شما توسط W3G یا WHATWG آورده نمی شودبلکه توسط یک شرکت غیرانتفاعی به نام Khronos Group ارائه می شود. علاوه بر آن گوگل هم در دسامبر 2010 برای اطمینان بیشتر آینده ی این استاندارد، تولید شگفت انگیز Body Browser را آزاد کرد. اجازه دهید از رنگ قرمز (fillStyle="#f00";) استفاده کرده و یک مربع قرمز با اضلاع 100px بکشیم.
c1_context.fillStyle = "#f00";
c1_context.fillRect(50, 50, 100, 100);‎
جدول زیر روش های کشیدن مستطیل را نشان می دهد.
 
<div>
<canvas id="Canvas2" width="200" height="200" style="border:solid 1px #000000;"></canvas>
‎ <div>
‎ <button onclick="blue_square_2();return true;">Blue Square</button>
‎ <button onclick="red_stroke_2();return true;">Red Square</button>
‎ <button onclick="clear_rect_2();return true;">Erase Everything</button>
</div>
</div>
<script>
‎ var c2 = document.getElementById("c2");
‎ var c2_context = c2.getContext("2d");
‎ function blue_square_2() { //Blue color square
‎ c2_context.fillStyle = "#00f";
‎ c2_context.fillRect(50, 50, 100, 100);
‎ }
‎ function red_stroke_2() { //Red color edges
‎ c2_context.strokeStyle = "#f00";
‎ c2_context.strokeRect(45, 45, 110, 110);
‎ }
‎ function clear_rect_2() { //Clear all
‎ c2_context.clearRect(40, 40, 120, 120);
‎ }
‎</script>‎
 
آموزش طراحی سایت ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
سلام عزیزان در این سری آموزشها با پایگاه داده Sql Server آشنا میشوید.
در قسمت قبل با مفاهیم زیر آشنا شدید:
با ادامه آموزش Sql server همراه باشید
 

 

آموزش Sql server : دستور SELECT DISTINCT
در یک جدول یک ستون ممکن است حاوی داده های تکراری باشد و بعضی مواقع شما می خواهید تنها لیستی را تهیه کنید که مشخصاً داده های مختلف (distinct) در آن باشد.
از کلید واژه DISTINCT میتوان برای بازگرداندن مقادیر مشخصاً متفاوت استفاده کرد.
فرم دستور SELECT DISTINCT:
SELECT DISTINCT column_name , column_name
FROM table_name;
نحوه استفاده از SELECT DISTINCT در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
 
مثال استفاده از SELECT DISTINCT
دستور SQL زیر تنها مقادیر مختلف را از ستون "City" واقع در جدول "Customers" انتخاب می کند:
SELECT DISTINCT City FROM customers;
 

 

دستور WHERE در آموزش Sql server

 

عبارت WHERE در SQL
عبارت WHERE برای استخراج رکوردهایی استفاده می شود که در طبقه بندی بخصوصی جای می گیرند.

 

فرم عبارت WHERE
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
 

 

 

 

نحوه استفاده از WHERE در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers " انتخاب شده است:
 

 

مثال استفاده از عبارت WHERE
دستور SQL زیر تمام customer هایی را که اهل کشور(Country") Mexico") ) هستند از جدول "Customers" انتخاب می کند:
SELECT * FROM Customers
WHERE Country='Mexico';
تفاوت استفاده از کوتیشن (") در داده های متنی و داده های عددی در SQL مسلزم استفاده ازکوتیشن در اطراف مقادیر متنی هستید. (اکثر سیستم های پایگاه داده اجازه استفاده از دابل کوتیشن (" ") را به کاربران می دهند)
درحالیکه داده های عددی نباید در داخل کوتیشن قرار گیرند:
SELECT * FROM Customers
WHERE CustomerID=1;

 

عملگرهای عبارت WHERE
از عملگر های زیر می توان در عبارت WHERE استفاده کرد:
عملگرهای عبارت WHERE در sql server
 
آموزش Sql server ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
سلام دوستان ...در قسمت قبل آموزش پایتون مفاهیم زیر را یاد دادیم
  • آموزش خواندن و نوشتن فایل در زبان برنامه نویسی پایتون
  • آموزش خطاها و استثناها در برنامه نویسی پایتون
  • آموزش مدیریت استثناها در آموزش پایتون
 
با ادامه آموزش پایتون همراه ما باشید.
 

 

آموزش اعلام استثناها در برنامه نویسی پایتون
عبارت raise به برنامه نویس این امکان را می دهد تا یک استثنای خاص را مجبور به رخ دادن کند. برای مثال:
>>> raise NameError('HiThere')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: HiThere
</module></stdin>
تنها آرگومان raise بیان می کند که استثنا اعلام شود. این یا باید یک نمونه استثنا (exception instance) باشد یا یک کلاس استثنا ( یک کلاس که از Exception مشتق شده باشد). اگر یک کلاس استثنا پاس شود، با فراخوانی سازنده آن بدون هیچ آرگومانی، به طور ضمنی نمونه گیری می شود.
raise ValueError  # shorthand for 'raise ValueError()'
اگر باید تعیین کنید که آیا یک استثنا اعلام شده اما قصد مدیریت آن را ندارید، حالت ساده تری از عبارت raise به شما این امکان را می دهد تا استثنا را دوباره اعلام کنید.
>>> try:
... raise NameError('HiThere')
... except NameError:
... print('An exception flew by!')
... raise
...
An exception flew by!
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: HiThere
</module></stdin>

 

آموزش استثناهای تعریف شده توسط کاربر در آموزش پایتون
برنامه ها ممکن است با ساخت یک کلاس جدید استثنا، خود برای استثناهای خود نام بگذارند
معمولا استثناها باید به طور مستقیم یا غیر مستقیم از کلاس Exception مشتق شوند.
کلاس های استثنا را میتوان به گونه ای تعریف کرد که کارهایی که هر کلاس دیگری انجام می دهد را بتوانند انجام دهند، اما معمولا آنها را ساده می سازند. این کلاس ها اغلب فقط تعدادی ویژگی ارائه می کنند که امکان استخراج اطلاعات درباره خطا توسط اداره کننده خطا (handler) را فراهم می کند.
در زمان ایجاد ماژولی که بتواند چندین خطای متمایز را اعلام کند، معمول است که یک کلاس پایه برای استثناهای تعریف شده توسط آن ماژول ایجاد کنند، و نیز زیر کلاسی برای ایجاد کلاس های استثنای خاص برای شرایط متفاوت خطا بسازند.
class Error(Exception):
"""Base class for exceptions in this module."""
pass
 
class InputError(Error):
"""Exception raised for errors in the input.
 
Attributes:
expression -- input expression in which the error occurred
message -- explanation of the error
"""
 
def __init__(self, expression, message):
self.expression = expression
self.message = message
 
class TransitionError(Error):
"""Raised when an operation attempts a state transition that's not
allowed.
 
Attributes:
previous -- state at beginning of transition
next -- attempted new state
message -- explanation of why the specific transition is not allowed
"""
 
def __init__(self, previous, next, message):
self.previous = previous
self.next = next
اکثر استثناها، مشابه نامگذاری استثناهای استاندارد، با نام هایی که به “Error” ختم می شود تعریف می شوند. بسیاری از ماژول های استاندارد به منظور گزارش خطاهایی که ممکن است در توابعی که خود تعریف کرده اند رخ دهد، استثناهای خود را تعریف می کنند.

 

آموزش تعریف عملیات تمیزکاری در برنامه نویسی آموزش پایتون
عبارت try یک بخش اختیاری دیگری نیز دارد که وظیفه آن تعریف عملیات تمیزکاری (clean-up actions) است که تحت هر شرایطی باید اجرا شوند. برای مثال:
>>> try:
... raise KeyboardInterrupt
... finally:
... print('Goodbye, world!')
...
Goodbye, world!
KeyboardInterrupt
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
</module></stdin>
اگر یک بخش finally وجود داشته باشد، این بخش finally به عنوان اخرین وظیفه قبل از تکمیل شدن عبارت try اجرا خواهد شد. بخش finally ، چه عبارت try، استثنایی تولید کند یا نکند، اجرا می شود. نکات زیر موارد پیچیده تری از زمانی که استثنا رخ می دهد را بیان می کند.
  • اگر استثنایی در حین اجرای بخش try رخ دهد، استثنا ممکن است توسط بخش except اداره شود. اگر استثنا توسط بخش except اداره نشود، استثنا پس از اجرای بخش finally ، دوباره اعلام می شود.
  • یک استثنا می تواند در حین اجرای یک بخش except یا else رخ دهد. مجددا، استثنا پس از اجرای بخش finally ، دوباره اعلام می شود.
  • اگر عبارت try به یک عبارت break ، continue یا return برسد، بخش finally دقیقا قبل از اجرای عبارات break ، continue یا return اجرا می شود.
  • اگر بخش finally شامل عبارت return باشد، مقدار بازگشت داده شده، از عبارت return بخش finally خواهد بود، نه مقداری که عبارت return بخش try باز می گرداند.
برای مثال:
>>> def bool_return():
... try:
... return True
... finally:
... return False
...
>>> bool_return()
False
یک مثال پیچیده تر:
>>> def divide(x, y):
... try:
... result = x / y
... except ZeroDivisionError:
... print("division by zero!")
... else:
... print("result is", result)
... finally:
... print("executing finally clause")
...
>>> divide(2, 1)
result is 2.0
executing finally clause
>>> divide(2, 0)
division by zero!
executing finally clause
>>> divide("2", "1")
executing finally clause
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in divide
TypeError: unsupported operand type(s) for /: 'str' and 'str'
</stdin></module></stdin>
همانطور که می بینید، بخش finally در هر شرایطی اجرا شده است. خطای TypeError که به واسطه تقسیم دو رشته بر هم اعلام شده است، توسط بخش except اداره نشده است، بنابراین پس از اجرای بخش finally دوباره اعلام می شود. در برنامه های دنیای واقعی، استفاده از بخش finally برای آزادسازی منابع خارجی (مانند فایل ها یا ارتباطات شبکه) مفید است، صرف نظر از اینکه آیا استفاده از منبع موفقیت آمیز بوده است.

 

آموزش عملیات تمیزکاری از قبل تعریف شده در برنامه نویسی پایتون
برخی از اشیا عملیات تمیزکاری استانداردی را تعریف می کنند که در زمانی که شی، دیگر مورد نیاز نیست انجام شوند، صرف نظر از اینکه عملیاتی که از آن شی استفاده می کرد موفق بود یا شکست خورد. مثال زیر را ببینید، که می خواهد یک فایل را باز کند و محتویات آن را روی صفحه نمایش چاپ کند.
for line in open("myfile.txt"):
print(line, end="")
مشکل این کد این است که، برای مدت زمان نامعلومی پس از اتمام اجرای این بخش، فایل را باز می گذارد. در کدهای ساده این مسئله ای نیست، اما برای برنامه های بزرگتر می تواند یک مشکل باشد. عبارت with این تضمین را می دهد تا اشیایی مانند فایل ها به گونه ای مورد استفاده قرار گیرند که همیشه فورا و به طور صحیحی تمیز شوند.
with open("myfile.txt") as f:
for line in f:
print(line, end="")
پس از اجرای این عبارت، فایل f همیشه بسته می شود، حتی اگر در حین پردازش خطوط با مشکلی مواجه شود. اشیایی (مانند فایل ها) که عملیات تمیزکاری از پیش تعریف شده را ارائه می کنند، آن را در مستندات خود توضیح می دهند.
دوره آموزش پایتون ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
سلام با آموزش Bootstrap 4 در خدمت شما هستیم در قسمت قبل با مفهوم زیر آشنا شدیم
  • کار با فرم Form در Bootstrap 4
  • آموزش اعتبارسنجی فرم ها (Form Validation) در Bootstrap
  • آموزش کار با کنترل های ورود اطلاعات Input در بوت استرپ 4
 
حال با ادامه آموزش بوت استرپ 4 از دوره آموزش طراحی سایت همراه باشید:
 

 

آموزش ساخت اسلایدر Carousel در Bootstrap 4
یک اسلایدر یا carousel در بوت استرپ 4، یک اسلاید شو برای نمایش دو یا چند عکس پشت سر هم و تکرار وار است.

 

نحوه ایجاد یک اسلایدر carousel در بوت استرپ 4:
در کد مثال عملی، نحوه ساخت یک اسلایدر carousel را که دارای فلش های حرکت بین عکس ها و کنترل های لازم است را آموزش داده ایم.
به کد مثال و خروجی آن دقت نمایید. در ادامه به تشریح هر بخش پرداخته ایم :

 

مثال 1
<div id="demo" class="carousel slide" data-ride="carousel">
 
<!-- Indicators -->
<ul class="carousel-indicators">
<li data-target="#demo" data-slide-to="0" class="active"></li>
<li data-target="#demo" data-slide-to="1"></li>
<li data-target="#demo" data-slide-to="2"></li>
</ul>
 
<!-- The slideshow -->
<div class="carousel-inner">
<div class="carousel-item active">
<img src="la.jpg" alt="Los Angeles">
</div>
<div class="carousel-item">
<img src="chicago.jpg" alt="Chicago">
</div>
<div class="carousel-item">
<img src="ny.jpg" alt="New York">
</div>
</div>
 
<!-- Left and right controls -->
<a class="carousel-control-prev" href="#demo" data-slide="prev">
<span class="carousel-control-prev-icon"></span>
</a>
<a class="carousel-control-next" href="#demo" data-slide="next">
<span class="carousel-control-next-icon"></span>
</a>
 
</div>
توضیح مثال : در ادامه به تشریح و آموزش کارکرد هریک از کلاس های استفاده شده در carousel پرداخته ایم :
 
آموزش اضافه کردن عنوان (Caption) به هر عکس اسلایدر:
معمولا در زیر هر عکس یک عنوان یا Caption که در مورد اسلایدر توضیح می دهد، قرار می گیرد.
با استفاده از کلاس های carousel-caption و carousel-item در یک تگ div می توانید توضیح یا Caption برای هر اسلاید تعیین کنید، همانند مثال زیر:

 

مثال 2
<div class="carousel-item">
  <img src="la.jpg" alt="Los Angeles">
  <div class="carousel-caption">
    <h3>Los Angeles</h3>
    <p>We had such a great time in LA!</p>
  </div>
</div>

 

آموزش طراحی سایت آموزش کار با کادر پیام Modal در Bootstrap 4
کامپوننت Modal در چهارچوب کاری بوت استرپ 4، یک کادر نمایش popup است که در بالای صفحه جاری ظاهر شده و نمایش داده می شود. عملکرد Modal شبیه کادر اخطار alert در جاوا اسکریپت است، ولی با ظاهری مدرن تر و زیباتر.

 

آموزش ساخت یک کادر نمایش Modal در بوت استرپ 4:
در کد مثال عملی زیر، نحوه ساخت یک کادر نمایش Modal در Bootstrap 4 را نمایش داده ایم، کد را مطالعه کرده و خروجی را مشاهده نمایید، نکات مهم کد عبارتند از :
  • برای فراخوانی و اجرای کادر نمایش Modal معمولا از یک دکمه button یا تگ link استفاده می شود که با کلیک بر روی آن، کادر ظاهر می شود. این المنت بایستی درای خاصیت data-toggle برابر modal بوده و مقدار خاصیت data-target آن نیز برابر با id المنت Modal تنظیم شود.
  • کادر نمایش Modal در یک تگ یا عنصر دربرگیرنده (مثل تگ div) با کلاس modal قرار گرفته و بدنه اصلی آن را نیز 2 تگ با کلاس های modal-dialog و modal-content تعیین می کنند.
  • یک کادر نمایش Modal می تواند دارای 3 بخش اصلی هدر، بدنه و فوتر باشد که به ترتیب با المنت هایی با کلاس modal-header با modal-body و modal-footer تعریف می شوند.
  • برای تعیین عنوان کادر نمایش Modal از یک عنصر با کلاس modal-tittle استفاده می شود.

 

مثال 1
<!-- Button to Open the Modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
Open modal
</button>
 
<!-- The Modal -->
<div class="modal" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
 
<!-- Modal Header -->
<div class="modal-header">
<h4 class="modal-title">Modal Heading</h4>
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
 
<!-- Modal body -->
<div class="modal-body">
Modal body..
</div>
 
<!-- Modal footer -->
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
</div>
 
</div>
</div>
</div>

 

اضافه کردن افکت animation به کادر نمایش Modal:
می توانید افکت fade یا محو و ظاهر شدن تدریجی را با اعمال کلاس fade. به کادر نمایش Modal، بدان اضافه نمایید.
مثال: در کد مثال عملی زیر، در کادر نمایش Modal یکی با افکت fade و دیگری بدون افکت ایجاد کرده ایم که می توانید تفاوت در ظاهر شدن را مقایسه نمایید :

 

مثال 2
<!-- Fading modal -->
<div class="modal fade"></div>
 
<!-- Modal without animation -->
<div class="modal"></div>

 

آموزش تعیین سایز کادر نمایش Modal در Bootstrap 4:
می توانید با تعیین کلاس modal-sm، اندازه کادر نمایش Modal را کوچک کرده و با کلاس modal-lg سایزی بسیار بزرگ برایش تعیین نمایید.
کلاس اندازه مورد نظر را بایست به عنصر با کلاس modal-dialog اضافه نمایید. در کد مثال های عملی زیر، سایز مختلف Modal را ایجاد کرده ایم :
مثال 1: حالت کوچک sm

 

مثال sm
<div class="modal-dialog modal-sm">
</div>
مثال2: حالت بزرگ Lg

 

مثال lg
<div class="modal-dialog modal-lg">
</div>
مثال 3: حالت بسیار بزرگ xl

 

مثال xl
<div class="modal-dialog modal-xl">
</div>
نکته :
در حالت پیش فرض، بوت استرپ 4، کادرهای نمایش Modal را در اندازه متوسط md یا medium نمایش می دهد.

 

آموزش وسط نمایش دادن کادر نمایش Modal در بوت استرپ 4:
می توایند با اعمال کلاس modal-dialog-centred به کادر نمایش Modal، هم به صورت افقی و هم عمودی، آن را در وسط صفحه نمایش دهید. همانند کد مثال عملی زیر :

 

مثال center
<div class="modal-dialog modal-dialog-centered">
</div>

 

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

 

مثال scroll
<div class="modal-dialog">
</div>
در حالت قبل، برای دیدن ادامه محتویات کادر نمایش Modal صفحه رو به پایین و بالا اسکرول می شود. اما می توانید با اضافه کردن کلاس modal-dialog-scrollable به عنصر دارای کلاس modal-dialog، کاری کنید خود کادر نمایش Modal دارای نوار اسکرول شده و بدون اسکرول صفحه، مابقی محتویات آن را ببینید. همانند کد مثال عملی زیر :

 

مثال scroll 2
<div class="modal-dialog modal-dialog-scrollable">
</div>

 

آموزش کار با عنوان راهنما tooltip در Bootstrap 4
کامپوننت عنوان راهنما یا tooltip یک کادر کوچک popup است که در هنگام عبور موس از روی یک المنت، ظاهر شده و معمولا توضیحاتی راجع به آن ارائه می دهد.

 

آموزش ایجاد عنوان راهنما tooltip در بوت استرپ 4:
برای ایجاد یک tooltip، خاصیت data-toggle=” tooltip” را به المنت مورد نظرتان اضافه کنید. سپس متن ی که می خواهید در tooltip نمایش داده شود را درون خاصیت title تعیین نمایید. نحوه انجام کار را در کد مثال عملی زیر نشان داده ایم :

 

مثال 1
<a href="#" data-toggle="tooltip" title="Hooray!">Hover over me</a>
نکته :
برای اجرای صحیح کادر عنوان tooltip در بوت استرپ 4، بایستی آن را توسط jQuery فراخوانی اولیه نمایید. به این صورت که المنت مورد نظر را انتخاب کرده و متد tooltip() را بر رویش اجرا نمایید.
کد زیر برای اجرای اولیه tooltip در Bootstrap 4 توسط jQuery بایستی به صفحه اضافه شود :
<script>
$(document).ready(function(){
$('[data-toggle="tooltip"]').tooltip();
});
</script>

 

آموزش تعیین موقعیت قرارگیری tooltip در بوت استرپ 4:
به صورت پیش، کادر متن راهنما tooltip در بالای عنصر نمایش داده می شود.
اما می توانید از خاصیت data-placement برای قرارگرفتن کادر tooltip در بالا (top)، پایین (bottom)، راست (right) و چپ (left) عنصر استفاده نمایید. همانند کد مثال عملی زیر :

 

مثال 2
<a href="#" data-toggle="tooltip" data-placement="top" title="Hooray!">Hover</a>
<a href="#" data-toggle="tooltip" data-placement="bottom" title="Hooray!">Hover</a>
<a href="#" data-toggle="tooltip" data-placement="left" title="Hooray!">Hover</a>
<a href="#" data-toggle="tooltip" data-placement="right" title="Hooray!">Hover</a>
آموزش طراحی سایت ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰
سلام دوستان ... در قسمت قبل آموزش جاوا اسکریپت مفاهیم زیر را یاد دادیم .
  • آموزش عملگر های جایگزین در جاوا اسکریپت
  • آموزش انواع داده در جاوا اسکریپت-data types
  • رشته ها در جاوا اسکریپت
  • آرایه ها (arrays) در جاوا اسکریپت
  • اشیا (objects) در جاوا اسکریپت
حال با ادامه دوره آموزش طراحی سایت همراه باشید
 

 

آموزش توابع (functions) درجاوا اسکریپت
تابع (function) در جاوا اسکریپت عبارت است از یک مجموعه یا بلوکی از کدهای داخل آکولاد {} که برای انجام وظیفه ی (task) خاصی طراحی شده اند. یک تابع زمانی اجرا می شود که چیزی (مانند رویداد onclick) آن را صدا زده یا فرابخواند.
مثال:

 

نمونه یک
<script>
function myFunction(a, b) {
return a * b;
}
document.getElementById("demo").innerHTML = myFunction(4, 3);
</script>

 

سینتکس یا دستور نحوی تابع در جاوا اسکریپت در آموزش طراحی سایت
نحوه ی تعریف یک تابع در زبان جاوا اسکریپت بدین ترتیب می باشد : در مرحله ی اول کلیدواژه ی function را تایپ می کنیم، سپس یک اسم و به دنبال آن پرانتز () را قرار می دهیم. اسم تابع می تواند دربردارنده ی حروف، اعداد، خط زیرین / underscore و همچنین علامت دلار باشد، در حقیقت همان قواعدی که برای متغیرها رعایت می شود. می توان اسم پارامترها را داخل پرانتز جای گذاری کرده و آن ها را با ویرگول از هم جداسازی کرد، مشابه این نمونه : ...) (parameter1,parameter2, کدی که باید توسط تابع اجرا گردد، داخل آکولاد {} قرار می گیرد.
function name(parameter1‎،‎ parameter2‎،‎ parameter3) {
‎ code to be executed
‎}‎
پارامتر parameter / پارامترهای تابع همان / nameاسامی هستند که در تعریف تابع لیست شده اند.
آرگومان Argument / آرگومان های تابع نیز همان value / مقادیر حقیقی هستند که هنگامی که تابع فراخوانده می شود این مقادیر واقعی به آن (تابع) داده می شوند. داخل تابع، آرگومان ها به عنوان متغیرهای محلی (local variables) مورد استفاده قرار می گیرند.
توجه:
تابع در حقیقت همان زیر روال (subroutine) یا رویه (procedure) در دیگر زبان های برنامه نویسی است.

 

فراخوانی تابع / Function invocation
کد داخل تابع زمانی اجرا می شود که چیزی تابع یا function را صدا بزند. زمانی که یک رویداد یا event رخ می دهد.(برای مثال زمانی که کاربر روی دکمه ی کلیک می کند) هنگامی که از کد جاوا اسکریپت فراخوانی می شود. و یا به صورت خودکار که به آن self invoked گفته می شود و تابع طی آن خودش را به صورت اتوماتیک صدا می زند.

 

دستور return
هنگامی که جاوا اسکریپت به return statement (دستور return) می رسد، تابع اجرای کدها را متوقف می کند. چنانچه تابع از یک دستور (statement) فراخوانی شود، در آن صورت جاوا اسکریپت باز گشته تا کد را پس از دستور فراخوان (invoking statement / دستوری که تابع را صدا زده بود) اجرا کند. دستور return برای برگداندن یک مقدار مشخص در توابع، بکار گرفته می شود. توابع اغلب یک return value / مقدار بازگشتی محاسبه کرده و بازمی گردانند، به عبارتی دیگر تابع مقدار بازگشتی را به فراخوان یا صدا زننده (caller) برمی گرداند.
مثال:
حاصل ضرب دو عدد را محاسبه کرده و نتیجه را برمی گرداند.

 

نمونه دو
function myFunction(a, b) {
return a * b;
}
document.getElementById("demo").innerHTML = myFunction(4, 3);
 

 

چرا باید از توابع (functions) استفاده کنیم؟
می توان کدها را مجددا مورد استفاده قرار داد : یکبار کد را تعریف کنید و آن را بارها بکار ببرید. می توان یک کد را بارها استفاده نمود و هر بار یک آرگومان متفاوت برای آن در نظر گرفت و از این طریق نتایج گوناگون بدست آورد.
مثال:

 

تبدیل فارنهایت به سلسیوس

 

نمونه سه
function toCelsius(f) {
return (5 / 9) * (f - 32);
}
document.getElementById("demo").innerHTML = toCelsius(32);
 
عملگر () تابع را فراخوانی می کند. با استفاده از مثال بالا می توان دریافت که toCelsius به شی تابع (function object) ارجاع می دهد و toCelsius() به نتیجه ی تابع اشاره دارد.
مثال:
دسترسی به تابع بدون استفاده از عملگر () باعث می شود که بجای نتیجه، تعریف تابع برگردانده شود.

 

نمونه چهار
function toCelsius(f) {
return (5 / 9) * (f - 32);
}
document.getElementById("demo").innerHTML = toCelsius;
//document.getElementById("demo").innerHTML = toCelsius(32);
 

 

استفاده از توابع به عنوان متغیر
در زبان جاوا اسکریپت می توان توابع را به همان شیوه ی که متغیرها را استفاده می نمایید، بکار ببرید.
مثال:
می توانید از این نمونه
var text = "The temperature is " + toCelsius(32) + " Centigrade";‎
بجای
 
var x = toCelsius(32);
var text = "The temperature is " + x + " Centigrade";‎
استفاده کنید.

 

نمونه پنج
document.getElementById("demo").innerHTML =
"The temperature is " + toCelsius(32) + " Centigrade";
 
function toCelsius(fahrenheit) {
return (5 / 9) * (fahrenheit - 32);
}
 

 

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

 

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

 

اشیا جاوا اسکریپت
پیش تر آموختیم که متغیرها در واقع ظرف هایی برای ذخیره ی مقادیر داده محسوب می شوند. کد زیر یک مقدار ساده (Fiat) به متغیری به نام car تخصیص می دهد.

 

نمونه یک
<script>
var car = "Fiat";
document.getElementById("demo").innerHTML = car;
</script>
شیا نیز متغیر (variable) هستند، با این تفاوت که می توانند مقادیر زیادی را در خود جای دهند. به عنوان مثال، توجه خود را به نمونه ی زیر جلب کنید که در آن چندین مقدار متفاوت (Fiat ,500 , white) به متغیری به نام car اختصاص داده شده.

 

نمونه دو
<script>
var car = { type: "Fiat", model: 500, color: "white" };
document.getElementById("demo").innerHTML = car.type;
</script>
همان طور که مشاهده می کنید مقادیر به صورت جفت های اسم : مقدار (name:value pairs) نوشته شده اند.
توجه:
اشیا جاوا اسکریپت در حقیقت ظرف هایی برای مقادیر نام گذاری شده (named variables) هستند.

 

خصوصیات اشیا (object properties)
جفت های اسم : مقدار (name:values pairs) خصوصیات یا properties یک شی در جاوا اسکریپت اطلاق می گردند.
var person = {firstName:"John"‎،‎ lastName:"Doe"‎،‎ age:50‎،‎ ‎eyeColor:"blue"};‎
 

 

متدهای یک شی (object methods)
متدها در واقع عملیاتی هستند که می توان روی شی انجام داد. متدها به عنوانfunction definitions یا تعریف تابع در خصوصیات (property) ذخیره می گردند (می توان متدها را مانند تعریف یک تابع داخل خصوصیت ذخیره کرد).
 
توجه:
اشیا جاوا اسکریپت ظرف هایی برای نگهداری مقادیر نام گذاری شده (که خصوصیت یا property خوانده می شود) و متدها هستند.

 

تعریف یا ایجاد شی در جاوا اسکریپت
یک شئ جاوا اسکریپت را می توان با object literal(نوشته ی متنی) تعریف کرد.
مثال:
var person = {firstName:"John"‎،‎ lastName:"Doe"‎،‎ age:50‎،‎ ‎eyeColor:"blue"};‎
خط فاصله ها و استفاده از enter برای رفتن به خط بعدی اهمیتی نداشته و توسط جاوا اسکریپت نادیده گرفته می شود، به عبارتی دیگر تعریف شی می تواند چندین خط ادامه داشته باشد (در چندین خط قرار گرفته باشد).
مثال:

 

نمونه سه
<script>
var person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" };
 
document.getElementById("demo").innerHTML =
person.firstName + " is " + person.age + " years old.";
</script>

 

دسترسی به خصوصیت های اشیا
از دو طریق می توان به خصوصیت اشیا دسترسی پیدا کرد.
objectName.propertyName‏ ‏
یا
objectName[propertyName]‎
مثال:
person.lastName;‎
مثال2:
person["lastName"];‎

 

دسترسی به متدهای یک شی
می توان با استفاده از دستور نحوی (syntax) زیر به متد یک شی دسترسی پیدا کرد.
objectName.methodName()
مثال:
name = person.fullName();‎
چنانچه سعی کنید به خصوصیت / property، fullName بدون عملگر () دسترسی پیدا کنید، در آن صورت تعریف تابع / function definition به عنوان نتیجه بازگردانده می شود.
مثال:
name = person.fullName;
توجه داشته باشید که هیچگاه نباید رشته ها (strings)، اعداد (numbers)، بولی ها (Booleans) را به عنوان شی تعریف کنید! چنانچه متغیری را در جاوا اسکریپت با کلیدواژه ی "new"تعریف کنید، آن متغیر به عنوان یک شی ایجاد می گردد.
var x = new String(); // Declares x as a String object
var y = new Number(); // Declares y as a Number object
var z = new Boolean(); // Declares z as a Boolean object‎
از اشیا بولی، عددی، رشته ای اجتناب کنید، زیرا که کد را پیچیده تر ساخته و سرعت اجرا را کاهش می دهد.
آموزش طراحی سایت ادامه دارد
  • افشین رفوآ
  • ۰
  • ۰

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

مفهوم Layout با استفاده از Flexbox در آموزش React Native

یک component می تواند چیدمان component های childخودرا با استفاده از algorithm Flexbox تعیین کند. Flexbox برای ایجاد یک Layout پایدار روی صفحات با سایزهای مختلف طراحی شده است.

با استفاده از ترکیبی از flexDirection، alignItems، و justifyContent می توان Layout مناسب طراحی کرد.Flexbox در React Native شبیه CSS عمل می کند. با این تفاوت که مقادیر پیش فرض متفاوتند. flexDirection به جای row، مقدار پیش فرض column دارد، و flex فقط یک عدد می گیرد.

مفهوم Flex

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

در مثال زیر، view های قرمز، زرد و سبز هر سه childهای Viewبا flex:1 هستند. view قرمز از flex: 1 استفاده می کند، viewزرد flex: 2 و view سبز flex: 3. جمع مقادیر flex این سه 6 است که به این معناست که view قرمز 6/1 فضا، viewزرد 6/2 و view سبز 6/3 فضا را می گیرد.

مفهوم Flex Direction

فلکس Flex Direction جهت چیدمان childهای یک nodeرا تعیین می کند. به آن محور اصلی نیز می گویند. محور دیگر، محور متقاطع، محور عمود به محور اصلی است، یا همان محوری است که خطوط wrapping را دربرمیگیرد. Row component های child را از چپ به راست میچیند. اگر wrapping فعال باشد، خط بعد دقیقا از زیر اولین آیتم از چپ شروع می شود. Column (مقدار پیش فرض) componentهای child را از بالا به پایین می چیند. اگر wrapping فعال باشد، خط بعد از اولین آیتم سمت چپ از بالا شروع می شود. row-reverse component های child را از راست به چپ میچیند. اگر wrapping فعال باشد، خط بعد از زیر اولین آیتم از راست شروع می شود. column-reverse component های child را از پایین به بالا می چیند. اگر wrapping فعال باشد، خط بعدی اولین آیتم سمت چپ از پایین شروع می شود.

import React, { Component } from 'react';

import { View } from 'react-native';

export default class FlexDirectionBasics extends Component {

render() {

return (

// Try setting `flexDirection` to `column`.

<View style={{flex: 1, flexDirection: 'row'}}>

<View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} />

<View style={{width: 50, height: 50, backgroundColor: 'skyblue'}} />

<View style={{width: 50, height: 50, backgroundColor: 'steelblue'}} />

</View> ); }};

مفهوم Layout Direction

لایه Layout Direction تعیین کننده ی جهتی است که در آن childها و متن در یک سلسله مراتب باید چیده شوند. Layout Direction تعیین کننده این هستند که start و end به کدام لبه ها اشاره می کنند. به طور پیش فرض چیدمان صفحات در React Native بصورت LTR است. در این حالت start به چپ و endبه راست اشاره می کند. LTR(مقدار پیش فرض) متن ها و childها از چپ به راست چیده می شوند. Margin و paddingکه برای start یک المان تعیین می شوند به سمت چپ اعمال می شوند. RTLمتن ها و child ها از راست به چپ چیده می شوند. Margin و paddingکه برای start یک المان تعیین می شوند به سمت راست اعمال می شوند.

تراز کردن محتوا (justify Content)

محتوای justifyContent نحوه قرار گرفتن childها در راستای محور اصلی container شان را تعیین می کند. برای مثال، می توانید با استفاده از این ویژگی یک المان child را وسط یک containerقرار دهید؛ به این صورت که برای افقی وسط بودن، flexDirection را مساوی rowقرار دهید، برای عمودی وسط بودن، flexDirectionرا مساوی column قرار دهید. flex-start (مقدار پیش فرض) childهای یک container را از ابتدای محور اصلی آن، مرتب می کند. flex-end child های یک container را از انتهای محور اصلی آن، مرتب می کند. Center child های یک container را در راستای محور اصلی، وسط قرار می دهد. space-between المان های childرا در راستای محور اصلی container قرار می دهد و فضای اضافه را بین آن ها توزیع می کند. space-around المان های child را در راستای محور اصلی containerقرار می دهد و فضای اضافه را اطراف آن ها توزیع می کند. در مقایسه با space-between، فضای اضافه به ابتدا و انتهای اولین و آخرین child افزوده می شود.

import React, { Component } from 'react';

import { View } from 'react-native';

export default class JustifyContentBasics extends Component {

render() {

return (

// Try setting `justifyContent` to `center`.

// Try setting `flexDirection` to `row`.

<View style={{

flex: 1,

flexDirection: 'column',

justifyContent: 'space-between',

}}>

<View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} />

<View style={{width: 50, height: 50, backgroundColor: 'skyblue'}} />

<View style={{width: 50, height: 50, backgroundColor: 'steelblue'}} />

</View>

);

}

};

تراز کردن آیتم ها (align Items) در آموزش React Native

ایتم alignItems تعیین کننده نحوه قرار گرفتن childها در راستای محور متقاطع container است. بسیار شبیه justifyContentعمل می کند، اما به جای اعمال شدن به محور اصلی، روی محور متقاطع اعمال می شود. Stretch (مقدار پیش فرض) childهای یک container را امتداد می دهد تا کامل محور متقاطع را بگیرند و heightمعادل محور متقاطع داشته باشند. flex-start child های یک container را از ابتدای محور متقاطع آن، مرتب می کند. flex-end child های یک container را از انتهای محور متقاطع آن، مرتب می کند. Center child های یک container را در راستای محور متقاطع ، وسط قرار می دهد. Baseline المان های childرا نسبت به یک نقطه مشترک مرتب می کند. المان های child می توانند طوری تنظیم شوند که نقطه ارجاعی برای parentشان باشند.

برای اینکه استفاده از Stretch موثر باشد، المان child نباید در راستای محور دیگر بعد ثابت داشته باشد. در مثال زیر، مقداردهی به صورت alignItems: stretchاثری ندارد، مگر زمانی که width: 50از المان child حذف شود.

import React, { Component } from 'react';

import { View } from 'react-native';

export default class AlignItemsBasics extends Component {

render() {

return (

// Try setting `alignItems` to 'flex-start'

// Try setting `justifyContent` to `flex-end`.

// Try setting `flexDirection` to `row`.

<View style={{

flex: 1,

flexDirection: 'column',

justifyContent: 'center',

alignItems: 'stretch',

}}>

<View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} />

<View style={{height: 50, backgroundColor: 'skyblue'}} />

<View style={{height: 100, backgroundColor: 'steelblue'}} />

</View>

);

}

};

مفوم AlignSelf

در alignSelf موارد مشابهی دارد و مثل alignItems عمل می کند اما به جای اثر روی child درون container، می توان آن را روی یک المان اعمال کرد ومستقل از parent، آن را تغییر داد.

مفهوم Align Content

در alignContent توزیع خطوط در راستای محور عرضی را تعیین می کند. فقط زمانی اثر آن اعمال می شود که آیتم ها با استفاده از flexWrapدر چندین خط شکسته (wrapped) شوند. flex-start (مقدار پیش فرض) خطوط شکسته (wrapped شده) را از ابتدای محور متقاطع container مرتب می کند. flex-end خطوط شکسته را از انتهای محور متقاطع container مرتب می کند. Stretch خطوط شکسته را امتداد می دهد تا کامل محور متقاطع container را پر کنند. center خطوط شکسته را در راستای محور متقاطع container ، وسط قرار می دهد. space-between خطوط شکسته را در راستای محور اصلی container قرار می دهد و فضای اضافه را بین آن ها توزیع می کند. space-around خطوط شکسته را در راستای محور اصلی container قرار می دهد و فضای اضافه را اطراف آن ها توزیع میکند. در مقایسه با space-between، فضای اضافه به ابتدا و انتهای اولین و آخرین خط افزوده میشود.

مفهوم Flex Wrap

ویژگی flexWrapروی container ها مقداردهی می شود و به کمک آن می توان تعیین کرد هنگامی که المان های childدر راستای محور اصلی از container بیرون میزنند، چه اتفاقی بیوفتد. به طور پیش فرض المان های child باید در یک خط قرار بگیرند ( که ممکن است باعث جمع شدن غیرعادی المان ها شود). اگر شکستن خطوط (wrapping) ممکن باشد، آیتم ها در راستای محور اصلی در چند خط شکسته می شوند.

موقع شکستن خطوط می توان از alignContent برای تعیین چگونگی قرارگیری خطوط در container، استفاده کرد.

مفهوم Flex Basis، Grow و Shrink

در flexGrow تعیین می کند چگونه فضای درون container بین المان های childدر راستای محور اصلی، توزیع شود. پس از قرارگرفتن المان های child درون container ، فضای باقی مانده با توجه به مقدار این متغیر در المان های child، توزیع می شود.flexGrow هر مقدار اعشاری بزرگ تر 0 را می پذیرد و صفر مقدار پیش فرض آن است. یک container براساس مقدار flexGrowالمان های child خود، فضای باقی مانده را بین آن ها توزیع می کند. flexShrink تعیین می کند چگونه المان های child در راستای محور اصلی کوچک شوند، در صورتی که اندازه آن ها از اندازه container شان درراستای محور اصلی، بیشتر شود. FlexShrink بسیار شبیه flexGrow عمل می کند و استفاده هم زمان از هر دو کمک می کند المان های child براساس نیاز بزرگ یا کوچک شوند. flexShrink هر مقدار اعشاری بزرگ تر 0 را می پذیرد و مقدار پیش فرض آن یک است. یک container براساس مقدار flexShrinkالمان های child خود، آن ها را کوچک می کند. FlexBasis یک روش مستقل از محور برای تعیین اندازه پیش فرض یک آیتم در راستای محور اصلی است. مقداردهی به flexBasisبرای یک المان child شبیه مقداردهی به width آن المان است، درصورتی که parent آن flexDirection: rowداشته باشد، و یا مقداردهی hightبه آن المان درصورتی که parent آن flexDirection: column داشته باشد. مقدار FlexBasisیک آیتم، سایز آن آیتم است؛ سایز پیش فرضی که قبل از هرگونه بزرگ و کوچک شدن المان به آن اختصاص می یابد.

مفهوم Width و Height

مقدار Widthیک المان نشان دهنده ی Width محتوای آن المان است. به طور مشابه، Height یک المان Heightمحتوای آن است.

می توان به هردو مقادیر زیر را نسبت داد: Autoمقدار پیش فرض است. React Native مقادیر width/height را برای المان بر اساس محتوایش محاسبه می کند. Pixels تعیین کننده width/heightبراساس pixel به صورت absolute می باشد. با توجه به استایل های دیگر component ، این مقادیر ممکن است اندازه نهایی ابعاد component باشند یا نباشند. Percentage تعیین کننده widthیا height یک componentبه صورت درصدی از width یا height المان parent آن می باشد.

مفهوم Layout های relative و absolute

نوع positionیک المان تعیین کننده نحوه قرار گرفتن آن نسبت به المان parent اش می باشد. Relative (مقدار پیش فرض) به طور پیش فرض یک المان مکانی نسبی دارد. به این معنا که یک المان، اول با توجه به جایگیری نرمال آیتم ها، و سپس براساس مقادیر top، right، bottom و leftنسبت به مکان مورد انتظار، قرار می گیرد. این انحراف، بر مکان sibling element ها، و یا جای المان parentتاثیری ندارد. Absolute اگر المانی به طور مطلق جایی قرار گرفته باشد، در جایگیری نرمال آیتم ها شرکت نمی کند، مستقل از المان های siblingخود قرار می گیرد و مکان دقیقش به کمک مقادیر top ، right، bottom و leftتعیین میشود.

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

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

آموزش React Native ادامه دارد

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

دوره آموزش sql

سلام عزیزان در این سری آموزشها با پایگاه داده Sql Server آشنا میشوید.
در قسمت قبل با مفاهیم زیر آشنا شدید:
با ادامه آموزش Sql همراه باشید

 

آموزش Views در SQL
ویو View یک جدول مجازی است.
این فصل نشان می دهد که چگونه یک View را ایجاد، حذف و یا تغییر دهید.

 

دستور CREATE VIEW در SQL
آدرس صفحه وبی که میخواهید نمایش دهید را Paste کنید
 
در SQL یک View یک جدول مجازی است که نتیجه حاصل از عبارات و دستورات SQL می باشد.
یک view شامل سطر و ستونهایی دقیقا شبیه یک جدول واقعی است. فیلدها در یک View فیلدهایی هستند که از یک یا چند جدول واقعی در پایگاه داده گرفته شده اند.
شما می توانید توابع SQLو همچنین عبارات WHERE و JOIN را به یک View اضافه کنید و داده های نتیجه را به گونه ای نشان دهید که گویی همگی از یک جدول آورده شده اند.

 

فرم دستور CREATE VIEW
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
نکته:
یک View همیشه داده های به روز شده (up-to-date) را نشان می دهد! موتور یک پایگاه داده هر زمانی که کاربر در خواست view کند داده ها را بازسازی می نماید.

 

استفاده از CREATE VIEW در آموزش Sql
اگر پایگاه داده Northwind را دارید شما می توانید چندین view را که به طور پیش فرض روی آن نصب شده است را ببینید.
ویو View با نام Current Product List، لیست محصولات جاری (محصولاتی که تولید آنها متوقف نشده است) را از جدول “Products” نشان می دهد. این view توسط دستور زیر ایجاد می گردد:
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No
می توانیم View فوق را به صورت زیر فراخوانی کنیم:
SELECT * FROM [Current Product List]
مثال دیگری از View در پایگاه داده Northwind، تمام محصولاتی را که در جدول “Products” قیمت واحدشان بزرگتر از میانگین قیمت هاست انتخاب می کند:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
می توانیم view فوق را به صورت زیر فراخوانی کنیم:
SELECT * FROM [Products Above Average Price]
مثال دیگری از View در پایگاه داده Northwind، فروش کل را برای هر دسته از محصولات در سال 1997 محاسبه می کند. توجه کنید که این view داده هایش را از view ی دیگری که “Product Sales for 1997” نامیده می شود می گیرد:
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName
می توانیم view فوق را به صورت زیر فراخوانی کنیم:
SELECT * FROM [Category Sales For 1997]
همچنین می توانیم یک شرط روی Query تعریف کنیم. اکنون می خواهیم فروش کل محصولاتی که در گروه “Beverages” هستند را ببینیم:
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

 

به روز رسانی یک View
می توانیم یک View را به وسیله دستور زیر به روز رسانی کنیم:
فرم دستور CREATE OR REPLACE VIEW در SQL
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
می خواهیم ستون “Category” را به view ی “Current Product List” اضافه کنیم. به وسیله دستور زیر view را به روز رسانی می کنیم:
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

 

حذف یک View در SQL
می توانید یک view را به وسیله دستور DROP VIEW حذف کنید.
فرم دستور DROP VIEW در SQL
DROP VIEW view_name

 

آموزش دستور SELECT
دستور SELECT برای انتخاب داده از یک پایگاه داده استفاده می شود .
نتیجه در جدول نتایج که result-set نامیده می شود ذخیره میگردد .

 

فرم دستور SELECT
select column_name,column_name
from table_name;
select * from table_name;

 

نحوه استفاده از SELECT در پایگاه داده
در این آموزش از نمونه پایگاه داده مشهور Northwind استفاده خواهیم کرد.
جدول زیر از میان جدول "Customers" انتخاب شده است:
 
مثال انتخاب ستون با استفاده از دستور SELECT
دستور SQL زیر ستون های "Customer Name" و "City" را از جدول "Customers" انتخاب می کند:
SELECT CustomerName , City FROM Customeers;
مثال *SELECT
دستور SQL زیر تمام ستون های جدول "Customers" را انتخاب می کند:
SELECT * FROM customers;
در بخش بعدی از سری مقالات آموزشی sql server با نحوه استفاده از دستور select distinct در sql server آشنا می شویم.

 

پیمایش درResult-set
اکثر سیستم های نرم افزاری پایگاه داده اجازه پیمایش در Result-set ها را به وسیله توابع برنامه نویسی همچون Move-To-First-Record, Get-Record-Content, Move-To-Next-Record و غیره را می دهند.
آموزش Sql server ادامه دارد
  • افشین رفوآ