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