= ["عمرو", "لؤي", "محمد", "علي", "فصيل"] 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
سلة مشتريات
لديك قائمة بالفواكه وأسعارها:
= ["apple", "banana", "orange"]
fruits = [ 1.5, 2.0, 1.0] prices
احسب حاصل مشتريات كل سلة وفق قائمة الأسعار:
= ["apple", "apple", "apple"]
basket1 = ["banana", "apple"] basket2
للسلة الواحدة نكتب هكذا
= 0
total for item in basket1:
+= prices[fruits.index(item)]
total print(total)
4.5
لجميع السلال يمكن أن نضيف حلقة أخرى:
= []
totals for basket in [basket1, basket2]:
= 0
total for item in basket:
+= prices[fruits.index(item)]
total
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 \]
أي أن كل عنصر من المتجه الأول يضرب في العنصر المناظر له في المتجه الثاني، ويُجْمَعُ ناتج ذلك كله.
= (1, 2, 3)
u = (4, 5, 6) v
فهذا التوكيد الأول بالصيغة الرياضية:
\[ \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*} \]
نضم العناصر المتقابلة من المتجهين ونجمع حاصل ضربهما:
= 0
result for a, b in zip(u, v):
+= a * b
result print(result)
32
= 0
result for a, b in zip(u, u):
+= a * b
result print(result)
14