🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ H R
تفاوت isalnum و isdigit
محمدعلی رضا حل شده توسط محمدعلی رضا

سلام

ممنون میشم در خصوص این دو بیشتر توضیح بدید.

سلاااااااااااااااام

من میتونم بهتون توضیح بدم ولی استاد و بنده تو این دوره قصد داریم هم به شما ماهیگیری رو یاد بدیم هم اینکه بعد این دوره شما تبدیل بشید به یه برنامه نویس واقعی. و برنامه نویس واقعی یه سری تعریف و ویژگی‌ها داره. مثلا:

- اگر به مساله ای میخورن خودشون سعی میکنن مساله شون رو حل کنن.

- از گوگل و داکیومنت‌ها سراسر وب کمک میگیرن.

- خودشون رو به روز نگه میدارن و تکنولوژی‌ها و چیزهای جدید رو از اینترنت یاد میگیرن.

- و غیره

 

به همین دلایلی که گفتم من به جای اینکه جواب رو مستقیما بهتون بدم. بهتون کمک میکنم و این فرصت رو میدم که خودتون تفاوت این ۲ تا رو بفهمید.

روش‌های مختلفی برای فهمیدن شون هست. دم دست‌ترین راه برای فهمیدن فرقشون سرچ کردنه (ترجیحا به انگلیسی) یه راه دیگه ام help گرفتن از پایتونه..

 

اگر هم خواستی بگو بیشتر راهنمایت کنم یا مستقیما جواب رو بهت بگم.

محمدعلی رضا ۲۸ آذر ۱۳۹۹، ۱۹:۲۱

متشکرم از پاسخت محمد عزیز

ممنون بابت توجهت و مطالبی که گفتی

 

این موارد رو از w3schools ببینید:

 

a = "\u0030" #unicode for 0
b = "\u00B2" #unicode for ²

 

در واقع این موارد و منطق حاکم بر آن در isdigit برایم گنگ است.

با تشکر

 

H R ۲۹ آذر ۱۳۹۹، ۱۶:۲۲

جالبه این مطلب رو ندیده بودم:

Python String isdigit() Method

رفتم سایت w3schools و دیدم چی گفته بود.

اگر کل توضیحاتش رو دقیق بخونی و مبانی کامپیوتر مثل unicode رو بدونی میفهمی چی گفته.

تو این صفحه w3schools که لینکش رو گذاشتم. اول یه مثال ساده از این متد زده. بعد تعریف و موارد استفاده اش رو گفته:

Definition and Usage
The isdigit() method returns True if all the characters are digits, otherwise False.

Exponents, like ², are also considered to be a digit.

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

تو این خط

Exponents, like ², are also considered to be a digit.

گفته که توان‌ها مثل توان ۲ (²) هم بعنوان رقم در نظر گرفته میشن.

بعد از اینکه دستور نوشتاری (syntax) و پارامترهاش رو گفته. دوباره یه مثال آورده که این قسمتش برای شما گنگ بوده.

مثالی که زده اینه:

a = "\u0030" #unicode for 0
b = "\u00B2" #unicode for ²
print(a.isdigit())
print(b.isdigit())

خب برای فهم بهتر این مثال باید یه تعریف کلی از unicode بدونی. اولا بگم که unicode یه استاندارده و برای فهم بهتر میتونی تو گوگل سرچ کنی:

what is unicode

یا بری به سایت unicode تا تعریفش رو بدونی. من از سایت home.unicode.org این تعریف رو آوردم:

Unicode provides a unique number for every character, no matter what the platform, program, or language is.

ترجمه: unicode برای هر کاراکتر یه عدد منحصر به فرد در نظر میگیره. بدون در نظر گرفتن اینکه کدوم پلتفرم، برنامه یا زبان باشه.

و طبق این تعریف‌ها اگر دستور زیر رو تو پایتون یا IDLE پایتون بزنی میبینی که نتیجه اش True عه!

"\u0030" == '0'

و حواست باشه که دو طرف کاراکتر صفر، کوتیشن ( ' ) گذاشتیم. و اگر این کوتیشن‌ها رو نذاری نتیجه False میشه.

مطمئنا طبق توضیحاتی که دادم مثال سایت w3schools رو فهمیدی و نکته دیگه ای نداره.

 

باز اگر سوالی در این مورد داشتی تو همین تاپیک بگو

 

منابع:

https://www.w3schools.com/python/ref_string_isdigit.asp

https://home.unicode.org/basic-info/overview/

بهترین پاسخ
محمدعلی رضا ۲۹ آذر ۱۳۹۹، ۲۰:۱۳