چالش روزانه · ۲۲ مهر ۱۴۰۵

چالش پایتون ۴: ضرب عدد در رشته

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

age = "12"
print(age * 3)
خروجی کدام است؟

نمایش پاسخ و توضیح

پاسخ درست: گزینهٔ ب — 121212

چرا 36 نیست؟

age یک رشته است (به کوتیشن‌ها دقت کنید)، نه عدد. ضرب رشته در عدد صحیح در پایتون یعنی تکرار پشت سر هم:

print("ab" * 3)    # ababab
print("12" * 3)    # 121212

خطا هم نمی‌دهد، چون str * int کاملاً تعریف شده است. این همان چیزی است که این باگ را موذی می‌کند: برنامه اجرا می‌شود ولی جواب غلط می‌دهد.

کجا به این برمی‌خورید؟

تقریباً همیشه سر input():

age = input("سن: ")      # کاربر 12 وارد می‌کند → "12"
print(age * 3)            # 121212 😱
print(int(age) * 3)       # 36 ✅

input همیشه رشته برمی‌گرداند. اگر عدد می‌خواهید، با int() یا float() تبدیلش کنید.

حالا خودت اجرا کن و تغییرش بده

age = "12"
print(age * 3)