مبانی زبان
ورودی و خروجی در پایتون: print، input و f-string
برنامهای که نه ورودی بگیرد و نه چیزی نشان دهد، به درد کسی نمیخورد. در این درس دو تابع پایهای ارتباط با کاربر را یاد میگیریم: print برای خروجی و input برای ورودی.
خروجی با print
x = 1
print(x)
print("my fav num is", x, ".", "x =", x)
وقتی چند مقدار را با ویرگول به print میدهیم:
- هر نوعی (عدد، رشته، …) را میپذیرد و خودش آنها را به متن تبدیل میکند؛
- بینشان خودکار یک فاصله میگذارد.
راه دیگر چسباندن رشتهها با + است. ولی در این حالت همهچیز باید رشته باشد و فاصلهها را خودتان بگذارید:
x = 1
x_str = str(x)
print("my fav num is " + x_str + ". " + "x = " + x_str)
پارامترهای sep و end
print دو پارامتر کاربردی دارد:
sep: چه چیزی بین مقدارها بیاید (پیشفرض: یک فاصله)end: چه چیزی آخر خط بیاید (پیشفرض:"\n"یعنی رفتن به خط بعد)
print(1403, 7, 15, sep="/")
print("Ali", end="")
print("reza")
for i in range(5):
print(i, end=" - ")
"\n" یک کاراکتر کنترلی است به معنی «برو خط بعد». برای همین هر print معمولی، خروجی بعدی را به خط جدید میبرد.
💡 در Jupyter یا VS Code اگر داخل پرانتز یک تابع باشید و Shift+Tab بزنید، راهنمای تابع و همهٔ پارامترهایش (مثل
sepوend) نمایش داده میشود.
ورودی با input
input متنی را که داخل پرانتز میدهید نمایش میدهد، منتظر میماند کاربر چیزی تایپ کند و Enter بزند، و دقیقاً همان متن را برمیگرداند:
name = input("اسمت چیه؟ ")
print("سلام", name)
(در این سایت وقتی کدی input داشته باشد، قبل از اجرا یک پنجره باز میشود تا ورودیها را وارد کنید.)
مهمترین نکته: input همیشه رشته برمیگرداند
حتی اگر کاربر 12 تایپ کند، input رشتهٔ "12" را برمیگرداند، نه عدد ۱۲ را. حدس بزنید این برنامه با ورودی 12 چه چاپ میکند:
text = input("Type anything... ")
print(5 * text)
جواب 1212121212 است، نه 60! چون ضربِ عدد در رشته یعنی «رشته را ۵ بار پشت سر هم تکرار کن». اگر با عدد کار دارید، ورودی را تبدیل کنید:
num = int(input("Type a number... "))
print(5 * num)
تبدیل را میشود همان لحظهٔ گرفتن ورودی انجام داد، یا بعداً. هر سه شکل زیر درست است:
a = int(input("عدد اول: ")) # همان لحظه
b = input("عدد دوم: ")
b = int(b) # بعداً، در یک خط جدا
c = input("عدد سوم: ")
print(a + 10, b + 10, int(c) + 10) # درست همان جایی که لازم است
⚠️ اگر کاربر بهجای عدد چیزی مثل
salamوارد کند،int()خطایValueErrorمیدهد. در درس مدیریت خطا یاد میگیریم چطور جلوی کرش برنامه را بگیریم.
f-string: تمیزترین راه ساختن متن
چسباندن رشتهها با + و str() سریع شلوغ میشود. f-string راه مدرن و خوانای پایتون است: یک f قبل از کوتیشن بگذارید و هر عبارتی را داخل {} بنویسید:
name = "Sara"
age = 30
print(f"Hello {name}, you are {age} years old.")
print(f"Next year you'll be {age + 1}.")
داخل {} هر عبارت پایتونی مجاز است: متغیر، محاسبه، صدا زدن تابع.
قالببندی اعداد
بعد از : میشود شکل نمایش را تعیین کرد:
pi = 3.14159265
price = 12500000
print(f"{pi:.2f}") # دو رقم اعشار: 3.14
print(f"{price:,}") # جداکنندهٔ هزارگان: 12,500,000
print(f"{7:03d}") # سه رقمی با صفر: 007
print(f"{0.256:.1%}") # درصد: 25.6%
💡 عادت خوب: برای ساختن متن از f-string استفاده کنید. هم خواناتر است، هم سریعتر، هم نیازی به
str()ندارد.
تمرین
برنامهای بنویسید که سه عدد از کاربر بگیرد و هر کدام را بهعلاوهٔ ۱۰ چاپ کند. مثلاً با ورودی 10، 20، 30 خروجی بدهد: 20 30 40. بعد خروجی را با f-string به این شکل دربیاورید: 1st: 20, 2nd: 30, 3rd: 40.
یک جواب
a = int(input("عدد اول: "))
b = int(input("عدد دوم: "))
c = int(input("عدد سوم: "))
print(a + 10, b + 10, c + 10)
print(f"1st: {a + 10}, 2nd: {b + 10}, 3rd: {c + 10}")