پرسش و پاسخ پیرامون برنامه‌نویسی

  • شروع کننده موضوع max
  • تاریخ شروع
سلام فکرکنم دلیلش اینه که با مقادیر بصورت string برخورد میکنه و از نظر string مقدار 100 کوچیکتر از مثلا مقدار 20 هست
دقیقا همینطور ک میگی شده :)
من عدد هارو دوباره int کردم اوکیه

اخه من تایپشو گرفتم گفت list نه str
عضو های اون لیست استرینگن
 
اره

اخه من تایپشو گرفتم گفت list نه str
والا تست نکردم فقط حدس زدم ولی نوع لیست به کل مجموعه ات تعلق میگیره عناصر دورن لیست تایپ خودشونو دارن
 

این الان اوکیه
دقیقا همون داستانه ک @AliR3za گفت
 
فرق
Iteration با recursiveچیه چرا سرعتشون اینقدر باهم متفاوته؟
 
فرق
Iteration با recursiveچیه چرا سرعتشون اینقدر باهم متفاوته؟
این دو روش واسه نوشتن الگوریتم ها یا بطور کلی تر حل مسئله بکار میره . تو روش تکرار از loop ها و یا حلقه های تکرار استفاده میشه و تو روش بازگشتی از فراخوانی های مکرر تابع درون خودش استفاده میشه . معمولا توضیح دادن بعضی مسائل بصورت بازگشتی خیلی سراست تر و قابل فهم تره ( مثل مسئله برج هانوی یا اعداد فیبوناچی یا تو کامپیوتر بحث تجزیه عبارات و ... ) و قاعدتا نوشتن الگوریتم هم براش ساده تر میشه بخوام مثال کامپیوتری بزنم نوشتن الگوریتم مثلا جستجوی اول عمق یا DFS رو اگه بخوایی با روش تکرار بنویسی متوجه میشی که خیلی کار سختیه اما واسه خیلی از مسائل دیگه روش تکرار بهتره .
--------------------------------------------------------------------------------------------------------------
خوب حالا چرا سرعتشون متفاوته بر میگزده به سرعت اجرا و میزان حافظه ای که مصرف میکنن الگوریتم های بازگشتی برای اجرا چون قراره یه تابع مکررا فراخوانی بشه نیاز به یه حافظه به اسم پشته یا stack دارن که اگه اندازه ورودی مسئله به اندازه کافی بزرگ باشه هم زمان اجراش وحشتناک بالا میره بدلیل فراخوانی مکرر تابع و و هم میزان حافظه مصرفیش بالا میره
 
اگر تو پایتون بنویسیم
a=10
s=a*4
a=20
اگر s روفراخوانی کنیم منطقا نباید به جای a بیست بزاره؟
 
اگر تو پایتون بنویسیم
a=10
s=a*4
a=20
اگر s روفراخوانی کنیم منطقا نباید به جای a بیست بزاره؟
مفسر پایتون خط ب خط جلو میره
خط اول -» جایی ای از حافظه انتخاب شده توش عدد۱۰ نوشته شده اسمش رو هم گذاشته a
خط دوم -»جای از حافظه انتخاب میشه عدد ۴۰ توش نوشته میشه اسمش رو میزاره s
(درواقع جواب 4*a رو توی حافظه مینویسه ،نه خود عبارت a*4(
خط سوم-» میره همون جایی ک قبلا a رو درست کرده بود بجای ۱۰ مینویسه ۲۰
یعنی s هنوز تغیر نکرده
اگه خط دوم رو دوباره بنویسی مقدار s آپدیت میشه
درواقع میره اونجایی ک s رو نوشته بود دوبار 4*a رو حساب میکنه و مینویسه
---------------
sیه متغیره ، وقتی بهش مقدار بدی،هیچوقت خود ب خود تغیر نمیکنه مگه اینکه یه مقدار جدید بهش نسبت بدی
 
آخرین ویرایش:
اگر تو پایتون بنویسیم
a=10
s=a*4
a=20
اگر s روفراخوانی کنیم منطقا نباید به جای a بیست بزاره؟
چرا مگه چند میزاره؟!
کلا این رو بدون کامپایلر خط به خط از بالا اجرا میکنه به پایین شما الان یه مغیر داری که بهش گفتی 10 باش بعد گفتی 20 باش الان اگه a رو پرینت کنی 20 نشون میده و s رو پرینت کنی 40 نشون میده
 
چرا مگه چند میزاره؟!
کلا این رو بدون کامپایلر خط به خط از بالا اجرا میکنه به پایین شما الان یه مغیر داری که بهش گفتی 10 باش بعد گفتی 20 باش الان اگه a رو پرینت کنی 20 نشون میده و s رو پرینت کنی 40 نشون میده
من به اشتباه فکر کردم مقدار aتو sهم تغییر میده
 
کسی که میخواد برای اولین بار برنامه نویسی رو یاد بگیره باید از چه زبانی شروع کنه؟؟؟
و اینکه نحوه ی یاد گرفتن رو چه جوری پیشنهاد میکنین؟ مثلا کتاب یا فیلم های آموزشی...؟
 
شاید ویژوال بیسیک
اصلا و ابدا گزینه خوبی نیست واقعا :-"
ضعیفه
تاریخ مصرفش گذشته
کاربرد خاصی هم نداره الانا
کسی که میخواد برای اولین بار برنامه نویسی رو یاد بگیره باید از چه زبانی شروع کنه؟؟؟
باید خاصی نداره ...تو از هر زبونی میتونی شروع کنی ولی بهتره از زبونی شروع کنی ک یادگرفتنش ساده تر باشه و اینکه بدردت بخوره
پایتون این ویژگی رو داره ک اون اولا ک تازه کاری تورو درگیر پیچیدگی های زیادی نمیکنه
و کتابخونه هاش ب شدت گسترده اس و تو زمینه های زیادی میتونی ایده هات رو اجرا کنی
-----------------------
بخش زیادی از مفاهیم زبون ها مشترکه وقتی یکیشو یاد بگیری...یادگرفتن بعدی ها راحت تر میشه
پایتون گزینه خوبیه درکل
و اینکه نحوه ی یاد گرفتن رو چه جوری پیشنهاد میکنین؟ مثلا کتاب یا فیلم های آموزشی...؟
پایتون جادی ک فوق العاده اس
روش اول : میری سایتی مث مکتبخونه ...یه آموزش رو میخری(مثلا پایتون مقدماتی جادی)
نگاه میکنی و تمرینا رو از روی سایت حل میکنی آخرش هم یه مدرک ک ب درد خاصی نمیخوره بهت میدن :))
-سایت gotoclass هم یه پایتون جادی داره ک رایگانه ولی من خوشم ازش نمیاد

روش دوم : یه پیام ب من میدی ... من پایتون مقدماتی جادی رو واست میفرستم
نگاه میکنی تمرینا رو هم واس خودت حل میکنی بعد میری تو سایت jadi.ir/support
در حد توانت ب جادی کمک مالی میکنی :)) :)) :))

روش سوم: میری تو ی کانالی مث pythonforever یه کتاب ۲۰۰-۳۰۰ صفحه ای دانلود میکنی شروع میکنی ب خوندن
و خودت تمرین میکنی و چیز یاد میگیری

روش چهارم: یوتیوب:-" هم چیز یاد میگیری و هم زبانت قوی تر میشه

روش پنجم:استفاده از فیلمای فارسی ک کلا رایگانن مثل سری درک برنامه نویسی جادی یا کانال آپارات پای پراجک

و صد ها راه دیگر :-" :-"

درکل من ترکیب راه دوم و سوم و چهارم رو دوس دارم
 
اصلا و ابدا گزینه خوبی نیست واقعا :-"
ضعیفه
تاریخ مصرفش گذشته
کاربرد خاصی هم نداره الانا

باید خاصی نداره ...تو از هر زبونی میتونی شروع کنی ولی بهتره از زبونی شروع کنی ک یادگرفتنش ساده تر باشه و اینکه بدردت بخوره
پایتون این ویژگی رو داره ک اون اولا ک تازه کاری تورو درگیر پیچیدگی های زیادی نمیکنه
و کتابخونه هاش ب شدت گسترده اس و تو زمینه های زیادی میتونی ایده هات رو اجرا کنی
-----------------------
بخش زیادی از مفاهیم زبون ها مشترکه وقتی یکیشو یاد بگیری...یادگرفتن بعدی ها راحت تر میشه
پایتون گزینه خوبیه درکل

پایتون جادی ک فوق العاده اس
روش اول : میری سایتی مث مکتبخونه ...یه آموزش رو میخری(مثلا پایتون مقدماتی جادی)
نگاه میکنی و تمرینا رو از روی سایت حل میکنی آخرش هم یه مدرک ک ب درد خاصی نمیخوره بهت میدن :))
-سایت gotoclass هم یه پایتون جادی داره ک رایگانه ولی من خوشم ازش نمیاد

روش دوم : یه پیام ب من میدی ... من پایتون مقدماتی جادی رو واست میفرستم
نگاه میکنی تمرینا رو هم واس خودت حل میکنی بعد میری تو سایت jadi.ir/support
در حد توانت ب جادی کمک مالی میکنی :)) :)) :))

روش سوم: میری تو ی کانالی مث pythonforever یه کتاب ۲۰۰-۳۰۰ صفحه ای دانلود میکنی شروع میکنی ب خوندن
و خودت تمرین میکنی و چیز یاد میگیری

روش چهارم: یوتیوب:-" هم چیز یاد میگیری و هم زبانت قوی تر میشه

روش پنجم:استفاده از فیلمای فارسی ک کلا رایگانن مثل سری درک برنامه نویسی جادی یا کانال آپارات پای پراجک

و صد ها راه دیگر :-" :-"

درکل من ترکیب راه دوم و سوم و چهارم رو دوس دارم
خب از اونجا که برای یه مدتی کمبود اینترنت دارم از روش سوم شروع میکنم تا بعد که اینترنت برسه:D
 
رو تازه كشف كردم، جالبه.Dataquest
 
کسی که میخواد برای اولین بار برنامه نویسی رو یاد بگیره باید از چه زبانی شروع کنه؟؟؟
و اینکه نحوه ی یاد گرفتن رو چه جوری پیشنهاد میکنین؟ مثلا کتاب یا فیلم های آموزشی...؟
ببین همه میگن با پایتون شروع کنید اما من با جاوا شروع کردم و یاد گرفتم
به نظر من باید ببینی چه زبانی باهات سازگاری بیشتری داره...
 
سلام برای پیدا کردن دو عدد بزرگتر
از یکسری اعداد این کدو نوشتم ولی بعضی وقتا عدد دومو درست حساب نمیکنه:-"

http://s10.picofile.com/file/8394452842/20200418_164421.png
فک کنم تو مقایسه عدد دوم و سوم اشتباه میشه
درکل من اینجوری مینویسم:
Python:
listofnumbers =[]
age=int(input())
while(age!=-1):
    listofnumbers.append(age)
    age=int(input())

listofnumbers.sort()
biger = listofnumbers[-1]
big = listofnumbers[-2]
print(biger,big)

خط اول یه لیست خالی درست کردم
خط سوم اولین ورودی رو میگیرم
توی حلقه عدد ورودی رو به لیستم اضافه میکنم و ورودی بعدی رو میگیرم
خط نهم لیستم رو به ترتیب بزرگی مرتب میکنم
خط دهم بزرگ ترین عدد (آخرین عدد اون لیست) رو توی متغیر میریزم
خط یازدهم عدد بعدی رو (عدد یکی مونده ب آخر) زو توی متغیر میرزم
 
سلام برای پیدا کردن دو عدد بزرگتر
از یکسری اعداد این کدو نوشتم ولی بعضی وقتا عدد دومو درست حساب نمیکنه:-"

http://s10.picofile.com/file/8394452842/20200418_164421.png

اون b , c , k که اول برابر صفر قرار دادی کار رو احتمالا خراب میکنه ، چون تو لیست اعدادت نیستن
بهتره که دو مقدار ورودی اول رو بگیری بعد با اونا کار کنی
Python:
# farz mikonim = high1 > high2

high1=int(input())
high2=int(input())

while True:
    age = int(input())
    if age==-1:
        break
    
    elif age > high1:
            high2 = high1
            high1 = age

    elif age < high1 and age > high2:
            high2=age



print(" first = ", high1)
print(" second = " , high2)
 
تو یه لیست پایتون چه جوری میشه عضو باعضو قبلیش مقایسه شه:-"
 
Back
بالا