پایتونمقدماتی۶ دقیقه مطالعهPython 3.12+

ورودی و خروجی

در این درس ورودی از کاربر با input می‌گیرید، آن را به عدد تبدیل می‌کنید و خروجی را با f-string و قالب‌بندی دقیق اعداد شکل می‌دهید.

آنچه در این درس می‌آموزید

  • با تابع input ورودی از کاربر بگیرید
  • ورودی رشته‌ای را قبل از محاسبه به عدد تبدیل کنید
  • خروجی را با f-string و قالب‌بندی اعداد شکل دهید
نویسنده: تیم داکنامه · بازبینی: ۲۰۲۶-۱۰-۳۰
فهرست مطالب
پیش‌نیاز: متغیرها، انواع داده

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

گرفتن ورودی با input

تابع input برنامه را متوقف می‌کند، منتظر تایپ کاربر می‌ماند و هر چه تایپ شد را به برنامه می‌دهد. متن داخل پرانتز، پیام راهنما (prompt) است که پیش از توقف چاپ می‌شود:

greet_user.py
name = input("Your name: ")
print(f"Hello {name}!")
خروجی کد

Your name: Sara Hello Sara!

در این خروجی، بخش بعد از «نام شما: » را خود کاربر تایپ کرده است؛ برنامه فقط رشته تایپ‌شده را در name ذخیره کرده و در جمله خوش‌آمد استفاده کرده است.

ورودی همیشه رشته است

مهم‌ترین نکته این درس همین است: input هر چه کاربر تایپ کند، بدون استثنا به شکل رشته (str) برمی‌گرداند؛ حتی اگر کاربر فقط رقم تایپ کرده باشد:

python
a = input("First number: ")   # user types 5
b = input("Second number: ")   # user types 3
print(a + b)
خروجی کد

First number: 5 Second number: 3 53

جواب ۸ نیست؛ ۵۳ است. چون دو رشته داریم و + روی رشته‌ها یعنی چسباندن. این رفتار خطا هم نمی‌دهد و همین خطرناک‌ترش می‌کند: برنامه درست به نظر می‌رسد ولی نتیجه غلط است.

تبدیل ورودی به عدد

راه‌حل همان تبدیل نوعی است که در درس انواع داده یاد گرفتید؛ int یا float را دور input بپیچید:

birth_year.py
birth_year = int(input("Birth year: "))
age = 2026 - birth_year
print(f"About {age} years")
خروجی کد

Birth year: 1991 About 35 years

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

قالب‌بندی خروجی با f-string

f-string را در درس‌های قبل دیدید؛ اما دو قابلیت قالب‌بندی دارد که خروجی را از «درست» به «حرفه‌ای» می‌رساند. جداکننده هزارگان با :, و محدود کردن اعشار با :.2f:

receipt.py
product = "pen"
price = 12500
count = 4
print(f"{product}: {price * count:,} toman")
خروجی کد

pen: 50,000 toman

دو نقطه بعد از نام متغیر یعنی «از این به بعد دستور قالب‌بندی می‌آید». نمونه دوم با اعداد اعشاری:

python
pi = 3.14159
print(f"{pi:.2f}")
print(f"{pi:.4f}")
خروجی کد

3.14 3.1416

:.2f یعنی با دو رقم اعشار و :.4f با چهار رقم؛ در هر دو حالت گرد کردن انجام می‌شود. این قالب‌ها به‌خصوص وقتی مهم می‌شوند که نتیجه محاسبه‌ای مثل 16.375000000000004 بیرون بیاید و خواننده فقط «۱۶٫۳۸» را لازم داشته باشد.

تمرین‌ها

تمرین

تمرین ۱ — فاکتور فروشگاه

دو متغیر price = 900000 و count = 7 تعریف کنید و جمع کل را با جداکننده هزارگان در جمله‌ای به شکل «جمع: 6,300,000 تومان» چاپ کنید.

python
# Write your code here
نمایش راه‌حل
python
price = 900000
count = 7
print(f"Total: {price * count:,} toman")
خروجی کد

Total: 6,300,000 toman

::: :::

تمرین

تمرین ۲ — ورودی واقعی

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

python
# Write your code here
نمایش راه‌حل
python
a = float(input("First number: "))
b = float(input("Second number: "))
print(f"Sum: {a + b:.1f}")
خروجی کد

First number: 2.5 Second number: 4 Sum: 6.5

::: :::

خلاصه

  • input برنامه را متوقف می‌کند، ورودی کاربر را می‌خواند و همیشه رشته برمی‌گرداند.
  • ورودی عددی را با int(input(...)) یا float(input(...)) تبدیل کنید؛ وگرنه + به‌جای جمع، چسباندن می‌کند.
  • در f-string، دو نقطه بعد از متغیر قالب‌بندی را شروع می‌کند.
  • :, جداکننده هزارگان می‌گذارد و :.2f عدد اعشاری را دو رقمی و گرد می‌کند.

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

منابع و ارجاع‌ها

درس‌های مرتبط