students = ["عمرو", "لؤي", "محمد", "علي", "فصيل"]حل المسائل
إنشاء قائمة
لديك مجموعة طلاب في الفصل وتريد تجميع أسمائهم في مجموعة. وهم:
"عمرو""لؤي""محمد""علي""فصيل"
قائمة الطلاب
من القائمة السابقة تريد تحصيل التالي:
- هل الطالب “لؤي” في القائمة؟
 - كم عدد الطلاب؟
 - اسرد الفائمة
 
print("لؤي" in students)
print(len(students))
for s in students:
    print("Student:", s)True
5
Student: عمرو
Student: لؤي
Student: محمد
Student: علي
Student: فصيل
أضف طالبًا جديدًا
أضف طالبًا جديدًا إلى القائمة، وهو: "زياد".
students.append("زياد")أو
students = students + ["زياد"]بالإشارة
- من هو أول طالب؟
 - من هو آخر طالب؟
 - من هو الطالب الذي في المنتصف؟
 
print(students[0])
print(students[-1])
print(students[len(students) // 2])عمرو
زياد
علي
بالقطعة
- من هم الطلاب باستثناء الأول والأخير؟
 - من هم الطلاب الثلاثة من النهاية
 - من هم الطلاب الذين في موضع فردي؟
 - من هم الطلاب الذين في موضع زوجي؟
 
print(students[1:-1])
print(students[:-3])
print(students[::2])
print(students[1::2])['لؤي', 'محمد', 'علي', 'فصيل']
['عمرو', 'لؤي', 'محمد']
['عمرو', 'محمد', 'فصيل']
['لؤي', 'علي', 'زياد']
متوسط المبيعات اليومية
- لديك قائمة بالمبيعات اليومية.
 
daily_sales = [
    10, 12, 10, 15, 13, 14, 10,
    19, 14, 12, 8, 10, 11, 12,
    14, 15, 14, 14, 10, 5, 13,
    8, 20, 19, 15, 14, 13, 12,
]وتريد أن تحسب ما يلي:
- عدد الأيام
- يمكنك استعمال الإجراء 
len() 
 - يمكنك استعمال الإجراء 
 - مجموع المبيعات لكل أسبوع على حدة
- يمكنك استعمال الإجراء 
sum()واستعمال الإشارة بقطعة[:7]للأسبوع الأول 
 - يمكنك استعمال الإجراء 
 - متوسط المبيعات لكل أسبوع على حدة والانحراف المعياري
- يمكنك استعمال الإجراء 
statistics.mean()وstatistics.stdev() 
 - يمكنك استعمال الإجراء 
 - متوسط المبيعات خلال الشهر والانحراف المعياري
 
import statistics
print(len(daily_sales))
for i in range(0, len(daily_sales), 7):
    print("Week", i//7+1)
    print("Sales:", sum(daily_sales[i:i+7]))
    print("Mean:", round(statistics.mean(daily_sales[i:i+7]), 2))
    print("Std:",  round(statistics.stdev(daily_sales[i:i+7]), 2))
    print()28
Week 1
Sales: 84
Mean: 12
Std: 2.08
Week 2
Sales: 86
Mean: 12.29
Std: 3.5
Week 3
Sales: 85
Mean: 12.14
Std: 3.53
Week 4
Sales: 101
Mean: 14.43
Std: 4.12
سلة مشتريات
لديك قائمة بالفواكه وأسعارها:
fruits = ["apple", "banana", "orange"]
prices = [    1.5,      2.0,      1.0]احسب حاصل مشتريات كل سلة وفق قائمة الأسعار:
basket1 = ["apple", "apple", "apple"]
basket2 = ["banana", "apple"]للسلة الواحدة نكتب هكذا
total = 0
for item in basket1:
    total += prices[fruits.index(item)]
print(total)4.5
لجميع السلال يمكن أن نضيف حلقة أخرى:
totals = []
for basket in [basket1, basket2]:
    total = 0
    for item in basket:
        total += prices[fruits.index(item)]
    totals.append(total)
print(totals)[4.5, 3.5]
ونستطيع أن نجمع المجموعات كلها:
print(sum(totals))8.0
أو نكتبها التعبير المختصر:
print(sum([sum(prices[fruits.index(item)] for item in basket) for basket in [basket1, basket2]]))8.0
ضرب متجهين
يوصف ضرب المتجهين بالصيغة:
\[ \vec{u} \cdot \vec{v} = \sum_{i=1}^{n} u_i v_i \]
أي أن كل عنصر من المتجه الأول يضرب في العنصر المناظر له في المتجه الثاني، ويُجْمَعُ ناتج ذلك كله.
u = (1, 2, 3)
v = (4, 5, 6)فهذا التوكيد الأول بالصيغة الرياضية:
\[ \begin{align*} \vec{u} &= [1, 2, 3] \\ \vec{v} &= [4, 5, 6] \\ \vec{u} \cdot \vec{v} &= (1)(4) + (2)(5) + (3)(6) \\ &= 4 + 10 + 18 \\ &= 32 \end{align*} \]
وهذا التوكيد الثاني بالصيغة الرياضية:
\[ \begin{align*} \vec{u} &= [1, 2, 3] \\ \vec{u} \cdot \vec{u} &= (1)(1) + (2)(2) + (3)(3) \\ &= 1 + 4 + 9 \\ &= 14 \end{align*} \]
نضم العناصر المتقابلة من المتجهين ونجمع حاصل ضربهما:
result = 0
for a, b in zip(u, v):
    result += a * b
print(result)32
result = 0
for a, b in zip(u, u):
    result += a * b
print(result)14