تمرین جلسه ی گذشته را حل کردید؟ جواب تمرین جلسه ی پیش در حالتی بود که هیچ کدام از مقادیر با هم مساوی نبودند حالا شما اگر می خواهید بیشتر تمرین کنید می توانید در این حالت را هم بنویسید و جواب را به ایمیلم که در پایان آموزش آمده بفرستید تا از صحت آن مطمئن شوید، برنامه هایی که با if نوسته می شوند معمولا دارای پیچیدگی خاصی نیستند.

البته راه های ساده تری هم برای حل این سوال بود ولی این راه حل شاید راحتتر به ذهنتان می رسید.
b1=float(input())
b2=float(input())
b3=float(input())
if(b1>b2 and b1>b3):
    r1=b1
    if(b2>b3):
        r2=b2
        r3=b3
    if(b2<b3):
        r2=b3
        r3=b2
if(b2>b1 and b2>b3):
    r1=b2
    if(b1>b3):
        r2=b1
        r3=b3
    if(b1<b3):
        r2=b3
        r3=b1
if(b3>b1 and b3>b2):
    r1=b3
    if(b2>b1):
        r2=b2
        r3=b1
    if(b2<b1):
        r2=b1
        r3=b2
print(r1,'>',r2,'>'r3)

 

در این جلسه قرار است دستور مهم حلقه و مقدمه ای از کتابخانه ی time را فراگیرید، با ما همراه باشید.

 

ابتدا از حلقه شروع می کنیم، ساختار حلقه به مانند if است:
a=0
b=50
while b>a:
    b=b-1
print('Hi')

برنامه مانند if ابتدا عبارت جلوی while را بررسی می کند و در صورت درستی دستورات درون آن را اجرا می کند اما فرقش با if این است که پس از اتمام دستورات داخلش دوباره عبارت جلوی while را بررسی و اگر درست بود دوباره دستورات داخل حلقه را اجرا می کند، و این کار را تا زمانی ادامه می دهد که عبارت جلوی while درست باشد، برنامه ی بالا  می گوید تا زمانی که متغیر b بزرگتر از متغیر a است از b یکی کم کند و زمانی که دیگر b بزرگتر از a نباشد چاپ می کند Hi.

 

مثال:

می خواهیم برنامه ای بنویسیم که تعداد ارقام عدد ورودی را چاپ کند:

 
n=int(input())
count=0
while n!=0:
    count=count+1
    n=n//10
print(count)
 
چند دستور تسهیل کننده:
بجای نوشتن count=count+n می توان نوشت:
count+=n
بجای نوشتن count=count-n می توان نوشت:
count-=n
بجای نوشتن count=count*n می توان نوشت:
count*=n

بجای نوشتن count=count/n می توان نوشت:

count/=n

بجای نوشتن count=count**n می توان نوشت:

count**=n

بجای نوشتن count=count//n می توان نوشت:

count//=n

بجای نوشتن count=count%n می توان نوشت:

count%=n

 

بطور کلی به این شکل می توان نوشتن برنامه را برای خود آسان نمود، مثلا برنامه ی تعداد ارقام ورودی با این تسهیل کننده ها به این شکل می شود:

 
 
n=int(input())
count=0
while n!=0:
    count+=1
    n//=10
print(count)
 

 

حالا دیگر شما می توانید از حلقه ی while استفاده کنید.

 

 

حالا نوبت استفاده از کتابخانه time است، به کمک این کتابخانه می توانید کارهای مختلفی با زمان در برنامه ی خود بکنید، در ابتدای هر برنامه ای که می خواهید از time در آن استفاده کنید باید بنویسید:

 
import time
 
حالا می خواهیم زمان اجرا شدن برنامه مان را بر واحد ثانیه بدانیم برای این کار  :
 
import time
t1=time.time()
برنامه ی اصلیمان
t2=time.time()
print(t2-t1)
مثلا برای دانستن زمان اجرای برنامه در برنامه ی تعداد ارقام به این شکل عمل می کنیم:
 
 
import time
t1=time.time()
n=int(input())
count=0
while n!=0:
    count+=1
    n//=10
print(count)
t2=time.time() 
print('time',t2-t1)

 

بعضی وقت ها هم نیاز خواهید داشت سرعت اجرای برنامه تان را پایین آورید:

 
import time
n=int(input())
count=0
while n!=0:
    count+=1
    n//=10
print(count)
time.sleep(0.1)

 

(هر چه عددی که در پرانتز sleep وارد می کنید بیشتر باشد برنامه ی شما کندتر می شود، برای مثال اگر عدد 10 را وارد کنید برنامه در آن خط 10ثانیه می ایستد و سپس خط بعد را اجرا می کند)

 

تمرین ها:

1. ب ب ک (برنامه ای بنویسید که) 100عدد از کاربر گرفته، میانگین آن ها را چاپ کند.

2. ب ب ک یک عدد و توان آن را گرفته و بدون استفاده از عملگر توان (**) حاصل را بدست بیاورد.

3. ب ب ک یک ورودی بگیرد و بزرگترین توانی از 2 که از ورودی کوچکتر است را چاپ کند مثال:

ورودی 25 ==> خروجی 16                                    ورودی 281 ==> خروجی 256

4. ب ب ک یک ورودی بگیرد و بگوید ورودی عددی کامل است یا خیر (عدد کامل=عددی که جمع مقسوم علیه هایش مساوی با خودش شود مانند 28: 1+2+4+7+14=28)

5. ب ب ک ورودی بگیرد و فاکتویل ورودی را حساب و چاپ کند:

n!=1*2*3*4*...*n

6. ب ب ک دو عدد گرفته ب م م (بزرگترین مقسوم علیه مشترک) آن ها را چاپ کند.

7. ب ب ک ورودی بگیرد و رقم هایش را در خط های جداگانه چاپ کند. مثلا

ورودی 8561

خروجی:

1

6

5

8

8. ب ب ک ورودی بگیرد و مجموع ارقامش را چاپ کند:

ورودی 348==>خروجی 15

جلسه سوم به پایان رسید اگر مشکلی تا اینجا داشتید یا خواستید جواب تمرینها را بگیرید به ایمیل زیر پیغام دهید:

mahdiamiri36@gmail.com