چالش روزانه · ۲۲ مهر ۱۴۰۵
چالش پایتون ۴: ضرب عدد در رشته
قبل از اجرای کد، خروجی آن را پیشبینی کن. حدس نزن؛ خط به خط فکر کن پایتون چه میکند.
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)