𝗣𝘆𝘁𝗵𝗼𝗻 𝗖𝗵𝗮𝗹𝗹𝗲𝗻𝗴𝗲𝘀
24 subscribers
2 photos
Download Telegram
Proj_9

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

مثال: [1,2,3,4] را دریافت کرده و 6 را چاپ کند.


مفاهیم مورد نیاز:
#iteration #function

سطح:
#stage_1
Proj_10

برنامه‌ای بنویسید که یک نوار پیشرفت را نشان دهد درحالی که هر ۱ ثانیه یک درصد به آن اضافه میشود
در ابتدا کاربر yes را وارد کرده سپس برنامه شروع به کار میکند.
این نوار پیشرفت تشکیل شده از درصد در سمت چپ و یک نوار پیشرفت {----------} (ده عدد خط تیره که به تدریج هر 10 ثانیه یکی از خط تیره ها به ستاره تغییر میکند) مثلا بعد سی ثانیه {***-------} نمایش داده میشود درحالی که خروجی قبلی از صفحه پاک میشود و اطلاعات جدید نمایش داده میشود.

مثال : ایتدا از کاربر برای شروع سوال میپرسد کاربر yes را وارد میکند سپس 0%{----------} برای کاربر نمایش داده میشود
بعد یک ثانیه 1% {----------} به جای قبلی نمایش داده میشود و همینطور بعد ده ثانیه 10%{*----------} روی صفحه‌ی نمایش شکل میبندد.


مفاهیم مورد نیاز:
#libraries #iteration #operators

سطح:
#stage_2

#recommended
🔥2👨‍💻2
𝗣𝘆𝘁𝗵𝗼𝗻 𝗖𝗵𝗮𝗹𝗹𝗲𝗻𝗴𝗲𝘀
Proj_10 برنامه‌ای بنویسید که یک نوار پیشرفت را نشان دهد درحالی که هر ۱ ثانیه یک درصد به آن اضافه میشود در ابتدا کاربر yes را وارد کرده سپس برنامه شروع به کار میکند. این نوار پیشرفت تشکیل شده از درصد در سمت چپ و یک نوار پیشرفت {----------} (ده عدد خط تیره…
from time import sleep

start=input("do you want to start the progress?").strip().lower()

# با استفاده از متد strip اسپیس های احتمالی که ممکن است کاربر اشتباها وارد کند را پاک میکنیم.

# با استفاده از متد lower اگر کاربر جواب را با حروف بزرگ نوشته بود اصلاح میکنیم.

while True :
    if start=="yes":
        for i in range(0,101):
            t= int(i//10)
            star= "*" * t
            dash= "-" * (10-t)
            bar= star+dash

# نوار پیشرفت را به شکل یک رشته درست کردیم.

            print("\r%s\r%d%s"%(' '*15,i,"{"+bar+"}"),end="",flush=True)

# \r اول ما را به اول خط میبرد بعد با قرار گرفتن ۱۵ اسپیس (تعداد کاراکتر های نوار پیشرفت و درصد پیشرفت) کل اطلاعات چاپ شده‌ی قبلی پاک میشود

# \r دوم دوباره ما را به اول خط برمیگرداند در این صورت اطلاعات جدید پاک شده روی از اول خط چاپ میشود.

# دستور end="" باز اطمینان حاصل میکند که وارد خط بعدی نمیشویم و به اول خط برمیگردیم.

# دستور flush=True به پایتون می‌گوید "خروجی را فوراً و بدون معطلی روی صفحه نمایش بده" این بسیار مهم است تا تغییر اعداد را در لحظه ببینیم و نه با تأخیر.

            sleep(1)
        break
elif start=="no"
break
    else:
        start=input("do you want to start the progress?")

print('''successfully completed!
for exit press a key''')
Proj_11

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

مثال: رشته‌ی "world" را دریافت کرده و "dlrow" را برگرداند.


مفاهیم مورد نیاز:
#function #iteration

سطح:
#stage_1
Proj_12

برنامه‌ای بنویسید که عددی را از ورودی بگیرد و از یک ستاره تا تا آن عدد را ، و از آن عدد تا یک ستاره را چاپ کند.

مثال: عدد ۴ را دریافت می‌کند و
*
**
***
****
***
**
*
چاپ کند.



مفاهیم مورد نیاز:
#iteration

سطح:
#stage_1
Proj_13

برنامه‌ای بنویسید که دو تاس را بیاندازد هر بار که برنامه اجرا می‌شود باید دو عدد بین ۱و ۶ برای هر تاس نشان دهد. برنامه باید بعد از نشان دادن نتیجه بپرسد که آیا کاربر می‌خواهد دوباره تاس بریزد یا نه.
و همچنین در آخر نشان دهد کاربر چند بار تاس انداخته است.

مفاهیم مورد نیاز:
#library #iteration

سطح:
#stage_1

#game
Generator function


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

از لحاظ ساختار کد با توابعی که خودمون میساختیم تفاوت نمیکند به غیر اینکه به جای دستور return از دستور yield استفاده میکنیم.

نحوه‌ی کار توابع generator اینطور است که از کد از خط بالا اجرا میشود و وقتی که به دستور yield رسید مقدار برگردانده میشود ولی بعد تابع کاملا بسته نمیشود(بر خلاف توابع کلاسیک)
؛ بعدا که تابع را صدا بزنیم yield بعدی را برمیگرداند.


نکته: توابع generator را حتما درون یک حلقه استفاده میکنیم.

#آموزش #ترفند_پیشرفته
𝗣𝘆𝘁𝗵𝗼𝗻 𝗖𝗵𝗮𝗹𝗹𝗲𝗻𝗴𝗲𝘀
Generator function تفاوت این تابع با توابع کلاسیک این است که در محاسبات خیلی طولانی و پیچیده زمان و مموری کمتری مصرف میکند. همچنین توابع کلاسیک یک مقدار برگردانده و سپس بسته میشوند ولی توابع generator میتوانند نامحدود بار صدا زده و کار انجام دهند. از لحاظ…
Proj_14

برنامه‌ای بنویسید که با استفاده از تابع یک عدد صحیح مثبت (n) دریافت کند و مقادیر اول عامل‌های آن عدد را به صورت یک Generator با استفاده از yield برگرداند.

مثال: از ورودی 1000 را دریافت کرده و در خروجی
[2, 2, 2, 5, 5, 5]

را چاپ کند.(زیرا 1000=2×2×2×5×5×5)



مفاهیم مورد نیاز:
#generator_function #iteration

سطح:
#stage_2
💔2
Proj_15

برنامه‌ای بنویسید که ۲ عدد از کاربر گرفته و با استفاده از تابع عدد اول را به توان عدد دیگر برساند.

مثال: از کاربر به ترتیب عدد ۳ و ۴ را بگیرد و ۸۱ را چاپ کند.


مفاهیم مورد نیاز:
#iteration #function

سطح:
#stage_1
Proj_16

برنامه‌ای بنویسید که کامپیوتر به صورت رندوم یک عدد بین ۱ و ۱۰۰ انتخاب کند سپس از کاربر بخواهد که عدد را حدس بزند. برنامه سپس به کاربر می‌گوید که عددی که انتخاب کرده بزرگتر است یا کوچکتر. کامپیوتر باید حدس های کاربر را محدود کرده و اگر تلاش های کاربر بیشتر از حد محدود شده بود بازی تمام شده و عدد انتخابی کامپیوتر را نشان دهد.
پس از هر بار بازی، کامپیوتر بایر رکورد کاربر را ثبت کرده و بهترین رکورد او را نشان دهد.


مفاهیم مورد نیاز:
#libraries

سطح:
#stage_1

#game
👏3
𝗣𝘆𝘁𝗵𝗼𝗻 𝗖𝗵𝗮𝗹𝗹𝗲𝗻𝗴𝗲𝘀
Proj_16 برنامه‌ای بنویسید که کامپیوتر به صورت رندوم یک عدد بین ۱ و ۱۰۰ انتخاب کند سپس از کاربر بخواهد که عدد را حدس بزند. برنامه سپس به کاربر می‌گوید که عددی که انتخاب کرده بزرگتر است یا کوچکتر. کامپیوتر باید حدس های کاربر را محدود کرده و اگر تلاش های کاربر…
from random import randint

limit=int(input("how many gusses do you want to have? "))
count=0
computer_num=randint(0,101)

for i in range(0,limit):
user_num=int(input("please enter your guess: "))
if user_num==computer_num:
print("yeahhh your guess is right")
break
elif user_num>computer_num:
print("Guess a smaller number!")
count+=1
elif user_num<computer_num:
print("Guess a bigger number.")
count+=1

score=10000
if score>count:
score=count

print("your best score is %i"%score)
Proj_17

برنامه‌ای بنویسید که بازی جنگجو را اجرا کند. در این بازی، کاربر یک بازیکن با نام و سطح انرژی است. در هر مرحله‌ی بازی می‌تواند به دشمن حمله کند که باعث کاهش انرژی خود و دشمن میشود و یا می‌تواند استراحت کند و انرژی‌اش افزایش دهد. همچنین در نوبت دشمن، به طور رندوم حمله یا استراحت را انتخاب می‌کند. هرکس که انرژی‌اش صفر شود میبازد.( هزینه انرژی برای حمله، 3 و هنگام استراحت 4 واحد اضافه می‌شود. انرژی اولیه نیز 5 واحد است.)

مفاهیم مورد نیاز:
#library #oop #iteration #function

سطح:
#stage_2

#game
🔥2
𝗣𝘆𝘁𝗵𝗼𝗻 𝗖𝗵𝗮𝗹𝗹𝗲𝗻𝗴𝗲𝘀
Proj_17 برنامه‌ای بنویسید که بازی جنگجو را اجرا کند. در این بازی، کاربر یک بازیکن با نام و سطح انرژی است. در هر مرحله‌ی بازی می‌تواند به دشمن حمله کند که باعث کاهش انرژی خود و دشمن میشود و یا می‌تواند استراحت کند و انرژی‌اش افزایش دهد. همچنین در نوبت دشمن،…
import random 

class Warrior:
def __init__(self, name, energy=5):
self.name = name
self.energy = energy

def attack(self, enemy):
damage = 3
self.energy -= 3
enemy.energy -= damage
print(f" {self.name} attached {damage} to {enemy.name}")

def rest(self):
heal = 4
self.energy += heal
print(f"{self.name} rested and get {heal} energy!")

player = Warrior(input("enter your name: "), 5)
enemy = Warrior("enemy", 5)

print("a=attack, r=rest, q=quit")

while True:
print( {player.name}, ":" , {player.energy}, "," , {enemy.name} , ":", {enemy.energy})

choice = input("choose (a/r/q): ").lower()

if choice == "a":
if player.energy >= 3:
player.attack(enemy)
else:
print("not enough energy to attack!")
elif choice == "r":
player.rest()
elif choice == "q":
print("game over!")
break
else:
print("not found!")

if player.energy <= 0:
print(f"\n{player.name} lose!")
break
if enemy.energy <= 0:
print(f"\n{player.name} win!")
break

if enemy.energy > 3 and random.choice([True, False]):
enemy.attack(player)
else:
enemy.rest()
Proj_18

برنامه‌ای بنویسید که یک ماشین حافظه‌خوان بسازد. برنامه‌ای که بتواند لیستی از کلمات را به خاطر بسپارد و و بعدا از شما امتحان بگیرد! اعداد یا ‌کلمات به مدت چند ثانیه به نمایش در می‌آیند و کاربر باید عین آنها را بنویسد تا امتیاز بگیرد.


مفاهیم مورد نیاز:
#library #iteration #function

سطح:
#stage_2
👨‍💻2