Python Palindromes One-Liner – Finxter

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp
Share on email
פרסומת
MAGNEZIX מגנזיקס


"bob" == "bob"[::-1]

חוט אחד זה מציג עוד מונח בסיסי במדעי המחשב: פלינדרומים. דומה ל אנגרמות, פלינדרומים הם פופולרי ראיון קידוד שְׁאֵלָה.

קודם כל:

מה זה פלינדרום?

"פלינדרום הוא מילה, מספר, ביטוי או רצף אחר של תווים שקוראים אותו אחורה כמו קדימה, כמו גברת או מכונית מרוצים או המספר 10201." [source]

הנה כמה דוגמאות מהנות:

  • "מר ינשוף אכל את תולעת המתכת שלי"
  • "האם ראיתי מכונית או חתול?"
  • "לך לתלות סלמי, אני חזיר לזניה"
  • "עכברושים חיים על שום כוכב רע"
  • "חנה"
  • "אנה"
  • "בוב"

האם יש ב-Python פתרון One Liner קצר ותמציתי? (יש!)

אבל לפני שאתה ואני ממשיכים הלאה, אני נרגש להציג בפניכם את ספר הפייתון החדש שלי Python One-Liner.

אם אתה אוהב וואן-ליין, אתה תאהב את הספר. זה ילמד אותך כל מה שצריך לדעת על א שורה אחת של קוד Python. אבל זה גם א מבוא למדעי המחשב, מדעי נתונים, למידת מכונה ואלגוריתמים. היקום בשורה אחת של פייתון!

הספר שוחרר בשנת 2020 עם הוצאת ספרי התכנות ברמה עולמית NoStarch Press (סן פרנסיסקו).

ניסוח בעיה

הבעיה היא הבאה: בהינתן רצף של תווים (מחרוזת) – האם הרצף ההפוך של התווים זהה לרצף המקורי (כלומר – האם המחרוזת היא פלינדרום)?

  • הרווח הלבן משנה, כלומר, 'ann a' לא נחשב פלינדרום, אבל 'anna' הוא.
  • האותיות חשובות, כלומר, 'Anna' לא נחשב פלינדרום, אבל 'anna' הוא.

Python Palindrome Checker בקו אחד

## One-Line Palindrome Checker
is_palindrome = lambda phrase: phrase == phrase[::-1]

רישום: פתרון חד-ליינר כדי לבדוק אם ביטוי הוא פלינדרום.

אם אינך אוהב פונקציות one-liners ולמבדה, אתה יכול גם להגדיר פונקציה מפורשת:

def is_palindrome(phrase):
    return phrase == phrase[::-1]

בוא נבדוק איך זה עובד בשלב הבא.

כיצד פועל בודק פייתון פלינדרום

פתרון ה-one liner אינו זקוק לשום ספרייה חיצונית, הוא פשוט וישיר. אנו מגדירים א פונקציית למבדה זה דורש טיעון בודד phrase – המחרוזת שתיבדק – ומחזירה בוליאנית אם רצף התווים נשאר ללא שינוי כשהיפוך. כדי להפוך את המחרוזת, אנו משתמשים פִּלוּחַ.

בואו נסכם במהירות את החיתוך:

💡 חיתוך הוא קונספט ספציפי לפייתון ליצירת מגוון ערכים סדר פעולות סוגים כגון רשימות אוֹ מחרוזות. החיתוך מבוסס על הסימון התמציתי [start:stop:step] לגזור רצף שמתחיל באינדקס "start" (כולל) ומסתיים באינדקס "end" (בלעדי). הפרמטר השלישי "step" מאפשר לך להגדיר את גודל הצעד, כלומר, כמה תווים מהרצף המקורי ידלג הפרוסה שלך לפני שתיקח את התו הבא (למשל step=2 פירושו שהנתח שלך יהיה מורכב רק מכל תו אחר). בעת שימוש בגודל צעד שלילי, המחרוזת עוברת בסדר הפוך.

לפיכך, התוצאה של קטע הקוד החד-שורה היא הבאה:

## Result
print(is_palindrome("anna")) 
# True

print(is_palindrome("kdljfasjf")) 
# False

print(is_palindrome("rats live on no evil star")) 
# True

Python Palindrome Checker מתעלם מרווח לבן ואותיות רישיות

כדי לבדוק אם שתי מחרוזות הן פלינדרום כאשר מתעלמים משימוש באותיות רישיות ורווחים לבנים שרירותיים, תחילה הבא את המחרוזת לצורה קנונית באמצעות ''.join(phrase.split()) ו string.lower() כדי להמיר אותו למחרוזת קטנה ללא רווחים לבנים.

לאחר מכן השתמש באותו ביטוי string == string[::-1] כדי להשוות את המחרוזת לייצוג ההפוך שלה באמצעות חיתוך עם גודל צעד שלילי.

הנה דוגמה לקוד:

def is_palindrome(phrase):

    # remove all whitespaces and lowercase string
    cleaned = ''.join(phrase.split()).lower()
    return cleaned == cleaned[::-1]


print(is_palindrome("Anna"))
# True

print(is_palindrome("Annn     n nta"))
# True

Python One-Liner ספר: השלוט בשורה הבודדת תחילה!

מתכנתי Python ישפרו את כישורי מדעי המחשב שלהם עם ה-one-liners השימושיים הללו.

Python One-Liner

Python One-Liner ילמד אותך איך לקרוא ולכתוב "one-liners": הצהרות תמציתית של פונקציונליות שימושית ארוזות בשורה אחת של קוד. תלמד כיצד לפרוק ולהבין באופן שיטתי כל שורה של קוד Python, ולכתוב Python רהוט, דחוס בעוצמה כמו מומחה.

חמשת הפרקים של הספר מכסים (1) טיפים וטריקים, (2) ביטויים רגולריים, (3) למידת מכונה, (4) נושאי ליבה במדעי הנתונים ו- (5) אלגוריתמים שימושיים.

הסברים מפורטים של one-liners מציגים מושגי מפתח במדעי המחשב ו להגביר את כישורי הקידוד והניתוח שלך. תלמד על תכונות מתקדמות של Python כגון הבנת רשימה, פִּלוּחַ, פונקציות למבדה, ביטויים רגולריים, מַפָּה ו לְהַפחִית פונקציות, ו מטלות פרוסה.

תלמד גם כיצד:

  • למנף מבני נתונים כדי לפתור בעיות בעולם האמיתי, כמו שימוש באינדקס בוליאני כדי למצוא ערים עם זיהום גבוה מהממוצע
  • להשתמש יסודות NumPy כמו מַעֲרָך, צוּרָה, צִיר, סוּג, שידור, אינדקס מתקדם, פִּלוּחַ, מִיוּן, מחפש, מצטבר, ו סטָטִיסטִיקָה
  • חשב בסיסי סטָטִיסטִיקָה של מערכי נתונים רב מימדיים ואלגוריתמי K-Means ללמידה ללא פיקוח
  • צור עוד ביטויים רגולריים מתקדמים באמצעות הַקבָּצָה ו קבוצות בשם, מבטים שליליים, דמויות שנמלטו, רווחים לבנים, ערכות תוויםקבוצות תווים שליליות), ו מפעילים חמדנים/לא חמדנים
  • להבין מגוון רחב של נושאים במדעי המחשב, כולל אנגרמות, פלינדרומים, ערכות על, תמורות, מפעלים, מספרים ראשוניים, פיבונאצ'י מספרים, ערפול, מחפש, ו מיון אלגוריתמי

בסוף הספר תדע איך לעשות זאת לכתוב Python בצורה המעודנת ביותר, וליצור יצירות תמציתית ויפות של "אמנות פייתון" בשורה אחת בלבד.

קבל את Python One-Liner שלך באמזון!!



קישור לכתבת המקור – 2021-11-18 22:56:00

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on telegram
Telegram
Share on whatsapp
WhatsApp
Share on email
Email
פרסומת
X-ray_Promo1

עוד מתחומי האתר