الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تغيير قيمة المتغير بالدالة x

مغلقمُجاب
بدأه أحمد أبو عبد البر في 18 فبراير 2013 · 3 رد · 719 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

في o-pascal كنت أكتب هذا الكود لتغيير قيمة متغير

procedure x(var a:integer);begina=power(a,2);end

لنفرض أن لدينا المتغير y الذي اخذ القيمة 100 مسبقا

إذا طبقنا الإجراء x هكذا

x(y);

ستصير قيمة y هي 10000

 

 

 

كيف يحدث ذلك في البايثون

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 18 فبراير 2013 في 17:11

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#2

يبدو أن هناك مشكلة مع لصق الأكواد...

 

الحل أن تعرف المتغير a كمتغير عام وتقوم بتعديله داخل الدالة 

*لتعلم الدالة ان a هو متغير عام ... قم بإستخدام جملة global

 

 

**من الأفضل البحث عن طريقة أخرى للحل مثل إعادة الإسناد 

 
>>> a=3
>>> def x():
...     global a
...     a = a**2
...     return
... 
>>> x()
>>> a
9

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 18 فبراير 2013 في 17:35

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

شكرا أحمد

هذا سينفع إذا كان المتغير العام هو نفسه الذي في داخل الدالة

ولكن لنفرض أن لدينا عدة متغيرات a,b,c,d ونريد أن نغيرها بواسطة الدالة x مثل نفعل في O-pascal

x(a);x(b);x(c);x(d);//قيم المتغيرات ستتغر

ارجو أن قد فهمت قصدي

نحن نسمي هذا The call by reference

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 18 فبراير 2013 في 17:38

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#4 أفضل إجابة

الأمور لاتعمل في بايثون بهذه الطريقة، لهذا قلت لك أنظر لحل آخر للمشكلة عن طريق إعادة الإسناد

 

* http://en.wikipedia.org/wiki/Call_by_sharing#Call_by_sharing

 

 
 
>>> def inc(val):
...     return val + 1
... 
>>> x=1
>>> y=15
>>> new_x = inc(x)
>>> new_x
2
>>> new_y = inc(y)
>>> new_y
16
1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

هذا الموضوع مغلق.

مواضيع مشابهة