آموزش پایتون از صفر – بخش اول: مفاهیم پایه، متغیرها و شرط‌ها

بازدید: 87 بازدید
آموزش پایتون مبتدی

وقتی یادگیری پایتون را شروع می‌کنیم، معمولاً اولین چیزی که می‌بینیم چند دستور ساده مثل print و input است. اما نقطه‌ی مهم اینجاست: همین دستورهای ساده، پایه‌ی بیشتر برنامه‌هایی هستند که بعداً می‌سازیم.

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

این آموزش با الهام از دوره Python Bootcamp از Angela Yu و با بازنویسی آموزشی، مثال‌های تکمیلی و تمرین‌های اختصاصی تهیه شده است.

فهرست مطالب این بخش

دستور print برای نمایش خروجی استفاده می‌شود. یعنی هر چیزی که بخواهیم برنامه به کاربر نشان دهد، معمولاً با print نمایش داده می‌شود.

print("Hello Python")

خروجی:

Hello Python

در ظاهر خیلی ساده است، اما همین دستور برای تست کردن برنامه، نمایش نتیجه و حتی پیدا کردن خطاها بسیار مهم است.

خیلی از تازه‌کارها فکر می‌کنند print فقط برای نمایش متن است. اما در عمل، print یکی از اولین ابزارهای دیباگ کردن است. یعنی وقتی برنامه درست کار نمی‌کند، با print می‌توانیم ببینیم در هر مرحله چه اتفاقی افتاده است.

age = 25
print(age)

گرفتن اطلاعات از کاربر با input

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

در پایتون از تابع input برای گرفتن ورودی استفاده می‌کنیم:

name = input("What is your name? ")
print("Welcome " + name)

در اینجا کاربر نام خود را وارد می‌کند و برنامه از همان مقدار استفاده می‌کند.

نکته مهم

خروجی تابع input همیشه از نوع رشته یا string است؛ حتی اگر کاربر عدد وارد کند.

مثلاً:

age = input("Enter your age: ")
print(type(age))

اگر کاربر عدد ۲۰ را وارد کند، پایتون آن را به شکل متن "20" در نظر می‌گیرد، نه عدد واقعی.

نکته input این است که ظاهر ورودی ممکن است عدد باشد، اما نوع آن در پایتون همچنان رشته است. به همین دلیل اگر بخواهیم محاسبه انجام دهیم، باید نوع داده را تبدیل کنیم.

مثلاً این کد مشکل دارد:

age = input("Enter your age: ")
next_year = age + 1

چون age رشته است و نمی‌توان آن را مستقیماً با عدد جمع کرد.

نسخه درست:

age = int(input("Enter your age: "))
next_year = age + 1

print(next_year)

2. متغیرها؛ جعبه‌هایی برای نگهداری داده

متغیر در پایتون مثل یک برچسب برای نگهداری مقدار است. وقتی می‌نویسیم:

city = "Tehran"

یعنی مقدار "Tehran" را داخل متغیری به نام city نگه داشته‌ایم.

بعداً می‌توانیم از این متغیر استفاده کنیم:

print(city)

مثال ساده:

first_name = "Ali"
last_name = "Ahmadi"

full_name = first_name + " " + last_name

print(full_name)

خروجی:

Ali Ahmadi

قواعد نام‌گذاری متغیرها

نام متغیر باید خوانا و درست باشد. چند قانون مهم:

user_name = "Ali"    # درست
username = "Ali"     # درست، ولی کمتر خوانا
user name = "Ali"    # غلط
3length = 10         # غلط
length3 = 10         # درست

بهتر است در پایتون برای نام‌های چندکلمه‌ای از _ استفاده کنیم:

total_price = 250
user_age = 30
city_name = "Shiraz"

توجه: تازه‌کارها معمولاً فقط می‌خواهند کد اجرا شود، اما برنامه‌نویسی فقط اجرا شدن نیست. کدی که خوانا نباشد، بعداً خودت هم نمی‌توانی راحت آن را بفهمی.

پس این:

x = 25
y = 3
z = x * y

از نظر پایتون درست است، اما این بهتر است:

price = 25
quantity = 3
total_price = price * quantity

کامنت‌ها در پایتون

کامنت‌ها بخش‌هایی از کد هستند که پایتون اجرا نمی‌کند. از کامنت برای توضیح دادن کد استفاده می‌کنیم.

# This line prints a welcome message
print("Welcome to Python")

کامنت با علامت # شروع می‌شود. در ویندوز از شورتکات /+ctrl برای کامنت دستور می‌توان استفاده کرد.

چه زمانی کامنت بنویسیم؟

برای توضیح منطق برنامه، نه برای توضیح چیزهای بیش از حد واضح.

مثلاً این کامنت خیلی مفید نیست:

# print hello
print("Hello")

اما این بهتر است:

# Convert user input from string to integer before calculation
age = int(input("Enter your age: "))

تابع len؛ شمردن تعداد کاراکترها

تابع len تعداد کاراکترهای یک رشته یا تعداد آیتم‌های یک لیست را برمی‌گرداند.

مثلاً:

name = "Python"
print(len(name))

خروجی:

6

مثال با ورودی کاربر:

username = input("Choose a username: ")
username_length = len(username)

print(f"Your username has {username_length} characters.")

نکته: len تعداد کاراکترها را می‌شمارد، نه تعداد کلمات را.

مثلاً:

text = "Hello Python"
print(len(text))

خروجی شامل فاصله بین دو کلمه هم می‌شود. در این مثال خروجی کد بالا 12 می‌شود.

3. نوع داده‌ها در پایتون

پایتون با انواع مختلفی از داده‌ها کار می‌کند. چند نوع مهم در شروع یادگیری:

رشته یا String

برای متن استفاده می‌شود:

name = "Ali"

عدد صحیح یا Integer

برای عددهای بدون اعشار:

age = 25

وقتی عددی بزرگ باشد معمولا ما با کاما سه رقم رقم جدا می‌کنیم تا خوانایی بیشتر شود. در پایتون این کار را با _ انجام می‌دهیم.

برای مثال عدد 123,456,789 را در پایتون این چنین نشان می‌دهیم. در مثال زیر هر دو متغیر number و number2 مقدار یکسان 123456789 را نگه می‌دارند.

number = 123456789
number2=123_456_789

print(number)
print(number2)

خروجی کد بالا:

123456789
123456789

عدد اعشاری یا Float

برای عددهای اعشاری:

price = 19.99

Boolean

برای مقدار درست یا غلط:

is_active = True
is_finished = False

تبدیل نوع داده‌ها

گاهی باید نوع داده را تغییر دهیم. مثلاً عددی که از کاربر گرفته‌ایم، اول به صورت رشته است و باید به عدد تبدیل شود.

number = input("Enter a number: ")
number = int(number)

print(number + 10)

یا کوتاه‌تر:

number = int(input("Enter a number: "))
print(number + 10)

چند تابع مهم برای تبدیل نوع داده:

int("25")
float("12.5")
str(100)

مثال:

score = 18
message = "Your score is " + str(score)

print(message)

خروجی:

Your score is 18

توجه: در پایتون، این دو با هم فرق دارند:

print(100 + 200)      # خروجی: 300
print("100" + "200") # خروجی: 100200

چون در حالت دوم با متن سروکار داریم، نه عدد. بنابراین دو رشته را کنار هم چاپ می‌کند و خروجی می‌شود: 100200

مثال: در مثال زیر از کاربر میخواهیم عدد دو رقمی را وارد کند و سپس ارقام را باهم جمع کرده و در خروجی نمایش می‌دهیم. در این مثال با فرض اینکه کاربر عدد 56 را وارد کند خروجی می‌شود: 11 (یعنی جمع دو رقم 5 و 6)

two_digit_number = input("type a two digit number: ")


first_digit = two_digit_number[0]
second_digit = two_digit_number[1]

result = int(first_digit) + int(second_digit)

print(result)

4. دسترسی به کاراکترهای رشته

در پایتون می‌توانیم به کاراکترهای یک رشته با شماره جایگاه آن دسترسی داشته باشیم. این کار را indexing می‌گویند.

نکته مهم این است که شمارش در پایتون از صفر شروع می‌شود.

word = "Python"

print(word[0])
print(word[1])
print(word[5])

خروجی:

P
y
n

همچنین می‌توان از شماره منفی استفاده کرد:

print(word[-1])

خروجی کد بالا n است.

وقتی می‌گوییم اولین کاراکتر، از نظر انسانی یعنی شماره ۱؛ اما در پایتون اولین کاراکتر در جایگاه صفر است. این یکی از اولین تفاوت‌های مهم بین فکر انسانی و فکر برنامه‌نویسی است.

5. عملیات ریاضی در پایتون

پایتون می‌تواند مثل ماشین حساب عمل کند:

print(10 + 5)
print(10 - 5)
print(10 * 5)
print(10 / 5)
عملگرمعنی
+جمع
-تفریق
*ضرب
/تقسیم
**توان
%باقی‌مانده تقسیم
//تقسیم صحیح

مثال:

print(2 ** 3)
print(10 % 3)

خروجی کد بالا:

8
1

یعنی باقی‌مانده تقسیم ۱۰ بر ۳ برابر ۱ است.

اولویت عملیات ریاضی

پایتون عملیات ریاضی را بر اساس اولویت انجام می‌دهد.

ترتیب کلی:

  1. پرانتز ()
  2. توان **
  3. ضرب و تقسیم * /
  4. جمع و تفریق + -

مثلاً:

result = 3 * 3 + 3 / 3 - 3
print(result)                                             # خروجی: 7

اما اگر پرانتز اضافه کنیم، نتیجه تغییر می‌کند:

result = 3 * (3 + 3) / 3 - 3
print(result)                                             # خروجی:3

گاهی کد از نظر پایتون درست است، اما نتیجه‌ای که می‌دهد با چیزی که در ذهن ما بوده فرق دارد. اینجا مشکل از سینتکس نیست، از ترتیب محاسبه است

گرد کردن عددها

برای گرد کردن عددها از round استفاده می‌کنیم:

round(8 / 3)      # گرد کردن به عدد صحیح → 3
round(8 / 3, 2)   # گرد کردن تا دو رقم اعشار → 2.67

خروجی:

3
2.67

خط اول، وقتی فقط round() را بنویسیم، عدد را به نزدیک‌ترین عدد صحیح گرد می‌کند. پس 2.666 می‌شود 3

خط دوم چون عدد دوم یعنی 2 نوشتیم به این معنا است که فقط دو رقم بعد از اعشار نگه دار. پس 2.666 می‌شود 2.67

اگر بخواهیم فقط بخش صحیح تقسیم را داشته باشیم:

print(8 // 3)

خروجی:

2

مثال: محاسبه BMI و گرد کردن عدد نهایی با تابع round.

height = float(input("enter you height in m: "))
weight = float(input("enter you weight in kg: "))

bmi = weight / height **2

print(round(bmi))

6. f-string؛ روش تمیزتر برای ترکیب متن و متغیر

به جای اینکه چند رشته را با + به هم وصل کنیم، می‌توانیم از f-string استفاده کنیم.

روش قدیمی‌تر:

name = "Ali"
age = 25

print("My name is " + name + " and I am " + str(age) + " years old.")

روش بهتر:

name = "Ali"
age = 25

print(f"My name is {name} and I am {age} years old.")

f-string فقط زیباتر نیست؛ احتمال خطا را هم کمتر می‌کند. چون دیگر لازم نیست مدام عددها را با str تبدیل کنیم.

7. شرط‌ها؛ وقتی برنامه تصمیم می‌گیرد

تا اینجا برنامه‌ها بیشتر محاسبه یا نمایش انجام می‌دادند. اما با شرط‌ها، برنامه می‌تواند تصمیم بگیرد.

ساختار ساده شرط: شرط در پایتون با if نوشته می‌شود:

if شرط:
  دستور

اگر بخواهیم حالت دوم هم داشته باشیم از else استفاده می‌کنیم:

if شرط:
    دستور اول
else:
    دستور دوم

مثال:

age = int(input("Enter your age: "))

if age >= 18:
    print("You can enter.")
else:
    print("You can not enter.")

در اینجا اگر سن کاربر ۱۸ یا بیشتر باشد، پیام اول چاپ می‌شود. در غیر این صورت پیام دوم چاپ می‌شود.

فلوچارت کد بالا به صورت زیر می باشد

فلوچارت ساختار if

عملگرهای مقایسه‌ای

برای ساخت شرط، معمولاً از عملگرهای مقایسه‌ای استفاده می‌کنیم:

عملگرمعنی
>بزرگ‌تر از
<کوچک‌تر از
>=بزرگ‌تر یا مساوی
<=کوچک‌تر یا مساوی
==برابر بودن
!=برابر نبودن

چند شرط با elif

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

score = int(input("Enter your score: "))

if score >= 90:
    print("Excellent")
elif score >= 70:
    print("Good")
elif score >= 50:
    print("Acceptable")
else:
    print("Failed")

ترتیب شرط‌ها خیلی مهم است. پایتون از بالا به پایین شرط‌ها را بررسی می‌کند و وقتی اولین شرط درست باشد، بقیه را بررسی نمی‌کند.

مثلاً این کد مشکل منطقی دارد:

score = 95

if score >= 50:
    print("Acceptable")
elif score >= 90:
    print("Excellent")

چون شرط اول برای ۹۵ درست است، برنامه هرگز به شرط دوم نمی‌رسد.

شرط‌های تو در تو

گاهی یک تصمیم داخل تصمیم دیگر قرار می‌گیرد. به این حالت nested if گفته می‌شود.

has_ticket = input("Do you have a ticket? yes/no: ")

if has_ticket == "yes":
    age = int(input("Enter your age: "))

    if age >= 18:
        print("You can enter the event.")
    else:
        print("You need an adult with you.")
else:
    print("Please buy a ticket first.")

شرط‌های تو در تو اگر زیاد شوند، خوانایی کد را پایین می‌آورند. پس باید مراقب باشیم منطق برنامه بیش از حد پیچیده نشود.

مثال کامل شده BMI: این برنامه تکمیل شده برنامه محاسبه‌گر شاخص توده بدنی (BMI) است که با استفاده از شرط‌ها وضعیت وزن فرد را مشخص می‌کند.

height = float(input("enter you height in m: "))
weight = float(input("enter you weight in kg: "))

bmi = round(weight / height **2)

if bmi <18.5:
    print(f"your BMI is {bmi} and you are underweight")
elif bmi<25:
    print(f"your BMI is {bmi} and you are normal weight")
elif bmi<30:
    print(f"your BMI is {bmi} and you are overweight")
elif bmi<35:
    print(f"your BMI is {bmi} and you are obese")
else:
    print(f"your BMI is {bmi} and you are clinically obese")

مثال: این کد برای بررسی سال کبیسه (Leap Year) نوشته شده است. برنامه یک سال را از کاربر می‌گیرد و بررسی می‌کند که آیا آن سال کبیسه است یا نه

year = int(input("which year do you want to check? "))

if year % 4 == 0:
    if year % 100 ==0:
        if year % 400 == 0 : 
            print("Leap year")
        else:
            print("not Leap year")
    else:
        print("Leap year")
else:
    print("Not Leap year")

عملگرهای منطقی: and، or، not

برای ترکیب چند شرط از عملگرهای منطقی استفاده می‌کنیم.

and

هر دو شرط باید درست باشند:

age = 22
has_id = True

if age >= 18 and has_id:
    print("Access granted")

or

حداقل یکی از شرط‌ها باید درست باشد:

is_student = True
has_discount_code = False

if is_student or has_discount_code:
    print("Discount applied")

not

نتیجه شرط را برعکس می‌کند:

is_closed = False

if not is_closed:
    print("The shop is open")

8. ماژول‌ها در پایتون

ماژول در پایتون مثل یک جعبه ابزار آماده است. یعنی لازم نیست همه چیز را از صفر بنویسیم. می‌توانیم قابلیت‌های آماده را وارد برنامه کنیم.

مثلاً برای کار با اعداد تصادفی از ماژول random استفاده می‌کنیم:

import random

number = random.randint(1, 10)
print(number)

اینجا randint(1, 10) یک عدد صحیح تصادفی بین ۱ تا ۱۰ تولید می‌کند.

عدد تصادفی اعشاری

برای تولید عدد اعشاری تصادفی بین ۰ و ۱ از random.random() استفاده می‌کنیم:

import random

number = random.random()
print(number)

اگر بخواهیم عددی بین ۰ و ۵ داشته باشیم:

import random

number = random.random() * 5
print(number)

تصادفی بودن یعنی هر بار اجرای برنامه ممکن است خروجی متفاوت باشد. پس نباید انتظار داشته باشیم همیشه همان نتیجه قبلی را ببینیم.

مثال: این کد به‌صورت تصادفی عدد ۰ یا ۱ تولید می‌کند. اگر عدد ۱ باشد «Head» و اگر ۰ باشد «Tails» چاپ می‌شود؛ درست مثل پرتاب سکه

import random

random_side = random.randint(0,1)

if random_side == 1 :
    print("Head")
else:
    print("Tails")

ساخت ماژول شخصی

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

مثلاً فایلی به نام my_math.py بسازیم:

pi = 3.141592

بعد در فایل اصلی بنویسیم:

import my_math

print(my_math.pi)

این کار کمک می‌کند کدها مرتب‌تر شوند.

9. لیست‌ها در پایتون

لیست برای نگهداری چند مقدار در کنار هم استفاده می‌شود.

cities = ["Tehran", "Shiraz", "Tabriz", "Rasht"]

print(cities)
خروجی کد بالا
['Tehran', 'Shiraz', 'Tabriz', 'Rasht']

برای دسترسی به یک آیتم: ایندکس آیتم مورد نظر را داخل [] وارد می‌کنیم. در مثال زیر اولین آیتم را میخواهیم پس ایندکس می‌شود صفر.

print(cities[0])

خروجی: Tehran

توجه: در لیست باز هم شمارش از صفر شروع می‌شود.

تغییر دادن آیتم‌های لیست

می‌توانیم مقدار یک آیتم را تغییر دهیم:

cities = ["Tehran", "Shiraz", "Tabriz"]

cities[1] = "Isfahan"

print(cities)

خروجی: [‘Tehran’, ‘Isfahan’, ‘Tabriz’]

اضافه کردن آیتم به لیست

برای اضافه کردن یک آیتم به آخر لیست از append استفاده می‌کنیم:

cities = ["Tehran", "Shiraz"]

cities.append("Kerman")

print(cities)

برای اضافه کردن چند آیتم به آخر لیست از extend استفاده می‌کنیم:

cities.extend(["Rasht", "Yazd"])

print(cities)

در این مثال، نام چند نفر را از کاربر دریافت می‌کنیم و سپس به‌صورت تصادفی یک نفر را انتخاب می‌کنیم تا هزینه غذا را پرداخت کند.

متد split(", ") نام‌های واردشده را از محل ویرگول جدا می‌کند و آن‌ها را داخل یک فهرست قرار می‌دهد.

برای انتخاب تصادفی یک نام می‌توانیم از دو روش استفاده کنیم:

در روش اول، با random.randint یک شماره تصادفی از بین شماره‌های فهرست تولید می‌کنیم و سپس نام مربوط به آن شماره را انتخاب می‌کنیم.

import random

names_string = input(" give me everybody's names, separated by a comma. ")

names = names_string.split(", ")

num_items = len(names)

random_choice = random.randint(0,num_items-1)
person = names[random_choice]

print(f"{person} is going to buy the meal today")

در روش دوم، با random.choice مستقیماً یک عضو تصادفی از فهرست انتخاب می‌شود. روش random.choice ساده‌تر، کوتاه‌تر و خواناتر است؛ زیرا دیگر نیازی به محاسبه تعداد اعضای فهرست و تولید شماره تصادفی نداریم.

import random
names_string = input(" give me everybody's names, separated by a comma. ")

names = names_string.split(", ")

person = random.choice(names)
print(f"{person} is going to buy the meal today")

انتخاب تصادفی از لیست

با ترکیب random و لیست می‌توانیم یک آیتم تصادفی انتخاب کنیم.

import random

names = ["Ali", "Reza", "Sara", "Mina"]

chosen_name = random.choice(names)

print(f"{chosen_name} should start first.")

این مثال برای قرعه‌کشی، بازی‌ها و انتخاب تصادفی کاربرد دارد.

خطای IndexError

اگر بخواهیم به جایگاهی دسترسی داشته باشیم که در لیست وجود ندارد، خطا می‌گیریم.

names = ["Ali", "Reza", "Sara"]

print(names[3])

این کد خطا می‌دهد، چون لیست سه آیتم دارد اما جایگاه‌های آن از ۰ تا ۲ هستند:

0 → Ali
1 → Reza
2 → Sara

وقتی len(names) برابر ۳ است، آخرین index برابر ۲ است، نه ۳.

پس اگر بخواهیم آخرین آیتم را بگیریم:

print(names[-1])

یا

print(names[len(names) - 1])

لیست‌های تو در تو

گاهی داخل یک لیست، لیست‌های دیگری قرار می‌دهیم. به این ساختار nested list می‌گویند.

fruits = ["Apple", "Banana", "Orange"]
vegetables = ["Tomato", "Potato", "Carrot"]

foods = [fruits, vegetables]

print(foods)

خروجی:

[[‘Apple’, ‘Banana’, ‘Orange’], [‘Tomato’, ‘Potato’, ‘Carrot’]]

برای دسترسی به آیتم داخل لیست تو در تو:

print(foods[0][1])

خروجی: Banana

یعنی:

foods[0] → fruits
foods[0][1] → Banana

مثال: در این مثال، یک جدول ۳×۳ ساخته می‌شود و کاربر مشخص می‌کند علامت X در کدام خانه قرار بگیرد.

# سه ردیف می‌سازیم که هرکدام شامل سه خانه خالی هستند
row1 = ["🔲", "🔲", "🔲"]
row2 = ["🔲", "🔲", "🔲"]
row3 = ["🔲", "🔲", "🔲"]

# سه ردیف را داخل یک فهرست قرار می‌دهیم تا یک جدول سه‌درسه ساخته شود
game_map = [row1, row2, row3]

# جدول را قبل از ایجاد تغییر نمایش می‌دهیم
print(f"{row1}\n{row2}\n{row3}")

# موقعیت موردنظر را به‌صورت دو عدد از کاربر دریافت می‌کنیم
# عدد اول ستون و عدد دوم سطر را مشخص می‌کند؛ مثلاً 23 یعنی ستون دوم و سطر سوم
position = input("Where do you want to put X? ")

# اولین کاراکتر ورودی را به عدد تبدیل می‌کنیم و به‌عنوان شماره ستون در نظر می‌گیریم
horizontal = int(position[0])

# دومین کاراکتر ورودی را به عدد تبدیل می‌کنیم و به‌عنوان شماره سطر در نظر می‌گیریم
vertical = int(position[1])

# خانه موردنظر را پیدا می‌کنیم و مقدار آن را به X تغییر می‌دهیم
# عدد 1 کم می‌شود، زیرا شماره‌گذاری فهرست‌ها از صفر شروع می‌شود
game_map[vertical - 1][horizontal - 1] = "X"

# جدول را پس از قرار گرفتن X دوباره نمایش می‌دهیم
print(f"{row1}\n{row2}\n{row3}")

پروژه تمرینی بخش اول: برنامه انتخاب غذا

حالا با چیزهایی که یاد گرفتیم، یک برنامه کوچک می‌سازیم.

هدف برنامه:

  1. چند غذا در یک لیست داریم.
  2. برنامه به صورت تصادفی یکی را پیشنهاد می‌دهد.
  3. از کاربر بودجه می‌گیرد.
  4. بر اساس بودجه، پیام مناسب نمایش می‌دهد.
import random

foods = ["Pizza", "Burger", "Pasta", "Salad", "Kebab"]

selected_food = random.choice(foods)

print(f"Today we suggest: {selected_food}")

budget = float(input("How much money do you have? "))

if budget >= 20:
    print("You can order a full meal.")
elif budget >= 10:
    print("You can order a simple meal.")
elif budget > 0:
    print("Maybe choose a snack.")
else:
    print("Invalid budget.")


10. چند تمرین برای این بخش

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

مشاهده پاسخ تمرین 1
name = input("What is your name? ")

name_length = len(name)

print(f"Your name has {name_length} characters.")

تمرین ۲: برنامه‌ای بنویسید که دو عدد از کاربر بگیرد و جمع، تفریق، ضرب و تقسیم آن‌ها را نمایش دهد.

مشاهده پاسخ تمرین 2

number1 = float(input("Enter first number: "))
number2 = float(input("Enter second number: "))

print(f"Sum: {number1 + number2}")
print(f"Subtraction: {number1 - number2}")
print(f"Multiplication: {number1 * number2}")
print(f"Division: {number1 / number2}")

تمرین ۳: برنامه‌ای بنویسید که عددی از کاربر بگیرد و تشخیص دهد زوج است یا فرد.

مشاهده پاسخ تمرین 3

number = int(input("Enter a number: "))

if number % 2 == 0:
    print("This number is even.")
else:
    print("This number is odd.")

تمرین ۴: یک لیست از ۵ شهر بسازید و یکی از آن‌ها را به صورت تصادفی چاپ کنید.

مشاهده پاسخ تمرین 4

import random

cities = ["Tehran", "Shiraz", "Tabriz", "Rasht", "Isfahan"]

random_city = random.choice(cities)

print(random_city)

تمرین ۵: برنامه‌ای بنویسید که سن کاربر را بگیرد و بگوید:

  • اگر کمتر از ۱۳ سال بود: کودک
  • اگر بین ۱۳ تا ۱۸ بود: نوجوان
  • اگر ۱۸ یا بیشتر بود: بزرگسال
مشاهده پاسخ تمرین 5

age = int(input("Enter your age: "))

if age < 13:
    print("Child")
elif age < 18:
    print("Teenager")
else:
    print("Adult")

تمرین 6: بازی سنگ، کاغذ، قیچی

راهنمایی: تصاویر سنگ، کاغذ و قیچی را با ascii art کپی شده است.

مشاهده پاسخ تمرین 6

import random
rock = '''
      _______
  ---'   ____)
        (_____)
        (_____)
VK      (____)
  ---.__(___)
'''

paper = '''
  ---'   ____)____
            ______)
            _______)
VK         _______)
  ---.__________)
'''

scissors = '''
      _______
  ---'   ____)____
            ______)
         __________)
VK      (____)
  ---.__(___)
'''

game_images = [rock, paper, scissors]

user_choice = int(input("what do you choose? Type 0 for Rock, 1 for Paper or 2 for Scissors.\n"))
if user_choice>=3 or user_choice<0:
    print ("You typed an invalid numer, you lose!")
else:
    print(game_images[user_choice])
    computer_choice = random.randint(0,2)

    print("computer chose: ")
    print(game_images[computer_choice])



    if user_choice == 0 and computer_choice== 2:
        print("You win!")
    elif computer_choice == 0 and user_choice == 2:
        print("You lose!")
    elif computer_choice > user_choice:
        print("You lose!")
    elif user_choice > computer_choice:
        print("You win!")
    elif computer_choice == user_choice:
        print("it's a draw")

ادامه مطلب