پاسخ‌ها به این تاپیک
پویا نامی
پویا نامیدر حال آموزش وب نویسی(html,css,javascript)
۱۳۹۷/۱۱/۲۴

لطفا بیشتر توضیح بدید و کد رو هم قرار بدید.

محمدامین عطائی
محمدامین عطائیبرنامه نویس جاوااسکریپت
۱۳۹۷/۱۱/۲۴

خیلی سوالتون رو بد پرسیدین. کد رو هم لطفا بزارین که راحت ببینیم چی شده.

maryammahmoodi
maryammahmoodi
۱۳۹۷/۱۱/۲۴
number=""
while number != -1:
    number= int(input(''))
else:   
    number=max(number) 
    print(number)

میخوام تعدادی ورودی بدم به سیستم در صورتی که -1 رو وارد کردم max رو چاپ کنه اما ارور میده اما خط 5 ارور میده

در پاسخ به

amir najdi
amir najdiبرنامه نویس php علاقه مند به هوش مصونوعی (یادگیری ماشین)
۱۳۹۷/۱۱/۲۴

سلام

من پایتون کار نیستم ولی تا جایی که میدونم فکر کنم تابع max برای آرایه هست نه متغیر معمولی.

نمیدونم سوالتون درست متوجه شدم یا نه ولی امیدواردم کد زیر کمکتون کنه

کد زیر تا زمانی که -1 وارد نکید ازتون عدد میگیره و زمانی که -1 وارد کنید بزرگ ترین عدد دریافت شده رو  نمایش میده البته از آرایه استفاده نکردم.

max = 0;
number =0;
while number != -1:
    number = int(input('Enter your number : '));
    if(number>max):
        max = number;

print(max);

در پاسخ به

maryammahmoodi
maryammahmoodi
۱۳۹۷/۱۱/۲۵

سپاس کده شما کاملا درسته

میشه ی توضیح به من بدین بر اساس این کدی که نوشتین max یک متغییره,اگر  number>max باشه هربارmax با number برابرقرارمیده یعنی آخرین عدد بزرگتر از -1, خب وقتی بنویسیم ماکسو چاپ کن آخرین عدد باید بده نه ماکسو,من منطق انتخاب ماکسشو متوجه نمیشم

در پاسخ به

amir najdi
amir najdiبرنامه نویس php علاقه مند به هوش مصونوعی (یادگیری ماشین)
۱۳۹۷/۱۱/۲۵

هر بار number داخل max ریخته نمیشه تنها زمانی این اتفاق میفته که number بزرگتر تر از max باشه.

مثلا شما اولین بار عدد ۵ رو وارد میکنید و دستور if چک میکنه که آیا ۵ بزرگتر از مقدار max هست یا نه که در این حالت شرط برقرار (چون مقدار اولیه ی max صفر است) و  5 رو در max میریزه حالا وقتی حلقه یکبار دیگه تکرار میشه و این بار شما عدد 2 رو وارد میکنید ؛ دستور if چک میکنه که آیا 2 بزرگتر از max هست یا نه که در این حالت شرط برقرار نیست  ( چون مقدار موجود در max عدد 5 هست ) پس بدنه ی دستور if اجرا نمیشه و حلقه ی while یکبار دیگه اجرا میشه تا زمانی که -1 وارد کنید و تو این مدت تنها  زمانی  مقدار max تغیر میکنه که شما عدد بزرگتر از مقدار موجود در  max وارد کنید.

در پاسخ به

maryammahmoodi
maryammahmoodi
۱۳۹۷/۱۱/۲۵

توضیحتون عالی بود

من همین برنامه رو نوشتم برای پیدا کردن دومین عدد بزرگ که البته برای همه اعداد کار نمی کنه واینکه از لیست هم استفاده نکردم شرطم درسته اما علت اینکه برای همش کار نمی کنه رو نمیدونم

max = 0
number =0
max_2=0
while number != -1:
    number = int(input(''))
    if number>max:
        max = number
    if number!=max and number>max_2:
        max_2 = number
print(max,max_2)

در پاسخ به

amir najdi
amir najdiبرنامه نویس php علاقه مند به هوش مصونوعی (یادگیری ماشین)
۱۳۹۷/۱۱/۲۵

زمانی که عددی بزرگتر از max وارد میشه max میشه دومین عدد و شما باید اول max بریزید داخل max_2 بعدش number بریزید تو max.

مثلا فکر کنید max = 4  و max_2 = 2 وقتی کاربر عدد 5 وارد میکنه به دلیل اینکه عدد 5 بزرگ تر از max عدد 5 ریخته میشه داخل max. در کد شما وقتی این اتفاق صورت میگیره مقدار قبلی max که 4 بوده از بین میره در صورتی که نباید این اتفاق بیفته چون عدد 4 بعد از ورود عدد جدید (5) دومین عدد بزرگ هست و باید در max_2 ریخته بشه.

max = 0
number =0
max_2=0
while number != -1:
    number = int(input('Enter number : '))
    if number>max:
        max_2 = max;
        max = number;
    elif number>max_2:
        max_2 = number;

print(max,max_2)

در پاسخ به

maryammahmoodi
maryammahmoodi
۱۳۹۷/۱۱/۲۵

😃

در پاسخ به