uz
Feedback
ערוץ - python tip israel

ערוץ - python tip israel

Kanalga Telegram’da o‘tish

ערוץ מדריכים לפייתון וקוד פתוח

Ko'proq ko'rsatish
1 792
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kun
Ma'lumot yo'q30 kun
Postlar arxiv
עודכן דוגמאות איך משתמשים בall תודה לdank3y על ההערה

ההבדלים בין הפונקציות all ו-any הפונקציה all(): מחזירה True אם כל הערכים באיטרציה הם True, אחרת תקבל False, היא מקבלת אובייקט שניתן לעשות עליו איטרציה כארגומנט וחוזר על האלמנטים שלו, מעריכה אותם באמצעות הפונקציה bool() . אם כל האלמנטים מוערכים ל-True, נקבל True אחרת, הוא נקבל False. דוגמא 1: בדיקה אם כל האלמנטים הם מספרים שלמים וחיוביים: numbers = [10, 20, 30, 40, 50] result = all(num > 0 for num in numbers) print(result) # Output: True דוגמא 2: בדיקה אם כל הערכים אינם ריקים: strings = ['Hello', 'World', '', 'Israel'] result = all(len(string) > 0 for string in strings) print(result) # Output: False הפונקציה any(): הפונקציה any(), בדומה ל-all(), מעריכה את האלמנטים של איטרציה. עם זאת, היא מחזיר True אפילו אם אלמנט אחד שווה לTrue, וFalse אם כל האלמנטים שווים לFalse. דוגמא 3: בדיקה אם ערך כלשהו ניתן לחלוקה ב- 7: numbers = [15, 21, 32, 45, 58] result = any(num % 7 == 0 for num in numbers) print(result) # Output: True דוגמא 4: בדיקה אם מחרוזת כלשהי מהרשימה מכילה את האותיות "abcd" strings = ['Test', 'Israel', 'Python', 'Script'] result = any(char in 'abcd' for string in strings for char in string.lower()) print(result) # Output: True סיכום: - הפונקציה 'any' מחזירה 'True' אם לפחות אלמנט אחד בבדיקה מוערך כנכון, אחרת "False". - טיפ - הבדיקה רצה ומפסיק לאתר את האלמנטים ברגע שתמצא את הערך True הראשון. - הפונקציה 'all' מחזירה 'True' רק אם כל האלמנטים החזירו True, אחרת False. - טיפ - הבדיקה רצה ומפסיק לאתר את האלמנטים ברגע שתמצא את הערך False הראשון. —————————————————————————————————————————————— דוגמא לשימוש בall כדי לבדוק אם כל הקישורים מתחילים ב"https://"
links = [
    'https://google.com',
    'https://example.com',
]

if all(link.startswith('https://') for link in links):
    print('valid link')

גירסא ללא all: links = [ 'https://google.com', 'https://example.com', ] all_valid: bool = False for link in links: if link.startswith('https://'): all_valid = True else: all_valid = False break if all_valid: print('valid url')

בהמשך העלה מדריך מסודר איך לגשת למידע ללא שימוש בדפדפן אלא בעזרת ספריית requests

זה מה שאנחנו אמורים לראות בדפדפן
זה מה שאנחנו אמורים לראות בדפדפן

הבסיס לapi במדריך זה, נלמד איך ליצור אפליקציית FastAPI ויצירת קישור פשוט שמחזיר את התאריך והשעה הנוכחיים בפורמט JSON. התקנות נדרשות ודא שיש לך פייתון מותקן. נצתרך גם להתקין FastAPI ו-uvicorn, שהוא שרת ASGI. אפשר להתקין אותם דרך pip: pip install fastapi uvicorn הגדרת הפרויקט צור ,תקייה חדשה עבור הפרויקט שלך ונווט אליה בטרמינל. בתוך תקיית הפרויקט, צור קובץ חדש בשם main.py כתיבת הסקריפט FastAPI פתח את הקובץ main.py בעורך טקסט (ide) והעתק אליו את הקוד הבא: פה אנחנו מייבים את הספריות הנצרכות בשביל הקוד שלנו from fastapi import FastAPI from fastapi.responses import JSONResponse from datetime import datetime # זהו אובייקט FastAPI שישמש כדקרטור בסקריפט app = FastAPI() # זהו המיקום (url) של האפליקציה שמשתמשת ב-דקרטור של האפליקציה שהגדרנו מקודם @app.get('/') # זוהי הפונקציה שתיקרא כאשר המשתמש יבקר בעמוד הראשי def index(): current_datetime = datetime.now().strftime('%Y-%m-%d %H:%M:%S') # הנתונים שיישלחו למשתמש data = { "time_now": current_datetime } return JSONResponse(content=data, headers={'Content-Type': 'application/json'}) עד כאן הקוד שמור את הקובץ. איך להריץ אפליקציית FastAPI כדי להריץ את יישום FastAPI, פתח את הטרמינל שלך, נווט אל ספריית הפרויקט והרץ את הפקודה הבאה: uvicorn main:app --reload פקודה זו מפעילה את שרת uvicorn ואומרת לו להשתמש במודול הראשי (שהוא קובץ main.py שלך) ובמופע שיצרנו (הדקרטור) האפליקציה FastAPI. צינתי --reload מאפשר טעינה אוטומטית, כך שהשרת יופעל מחדש בכל פעם שנבצע שינויים בקוד. ניווט לאפליקציית FastAPI לאחר שהשרת פועל, פתח את הדפדפן ועבור לכתובת http://localhost:8000 אתה אמור לראות את התאריך והשעה הנוכחיים בפורמט JSON: { "time_now": "2023-07-02 13:30:45" } זהו, יצרנו יישום FastAPI עם לינק שמחזיר את התאריך והשעה הנוכחיים בפורמט JSON. הסבר על הקוד 1. מייבאים את המודולים הדרושים: FastAPI, JSONResponse ו-datetime. 2. יוצרים מופע FastAPI על ידי אתחול משתנה בשם app. 3. מגדירים מסלול באמצעות הדקורטור @app.get('/'). ה- / מציין את כתובת ה-URL של האפליקציה שלנו אפשר לבחור כמובן בקישור אחר לדוגמא /time_now. 4. מגדירים את הפונקציה index() שתיקרא כאשר משתמש מבקר בכתובת שהגדרנו (/). 5. בתוך הפונקציה index() אנו משתמשים בספריית זמן datetime.now().strftime('%Y-%m-%d %H:%M:%S') כדי לקבל את התאריך והשעה הנוכחיים בפורמט שציינו. 6. יוצרים מילון בשם data המכיל את התאריך והשעה הנוכחיים. 7. מחזירים (return) את המידע בעזרת JSONResponse עם התוכן שהגדרנו ב-data נשתמש בפרמטר headers כדי לציין את סוג התוכן כ-json. וזה הכל! יצרנו יישום FastAPI בסיסי שמחזיר את התאריך והשעה הנוכחיים בפורמט json.

טקסט לשמע: אחת הספריות המוכרות לטקסט לשמע היא pyttsx3 השימוש די פשוט מתקינים pip install PyAudio pip install pyttsx3 ומריצים את הסקריפט import pyttsx3 pyttsx3.speak("hello wrold") אם אתם רוצים אחד קצת יותר טוב שבניתי https://gist.github.com/nhman-python/2e11d0e4dbd1160e5eb866b8e8e3d5db תהנו!

התשובה לתרגיל: def custom_join(seperator: str, items: str): if not items: return '' join_string = items[0] for item in items[1:]: join_string += seperator + item return join_string num = '1234567' print(custom_join('*', num))

תרגיל: יצירת פונקציית join מותאמת אישית הוראות: אסור להשתמש בjoin צור פונקציה בשם custom_join. הפונקציה צריכה לקחת מפריד ורשימת פריטים כפרמטרים ולהחזיר מחרוזת שמחברת את הפריטים יחד באמצעות המפריד. הנה דוגמא לאופן שבו הפונקציה צריכה לעבוד: >>> custom_join("*", [1, 2, 3, 4]) '1*2*3*4'

הסבר: הבדלים בין המתודות rstrip, strip וsplit ב-פייתון. 1. rstrip(): המתודה משמשת להסרת תווים רווח מהצד הימני של המחרוזת. תווים רווח יכולים לכלול רווחים, טאבים וקווים מהקצה הימני של המחרוזת. התוצאה היא מחרוזת חדשה ללא התווים המיותרים מהצד הימני. דוגמא:
text = "   Hello World   "
stripped_text = text.rstrip()
print(stripped_text)  # output: "   Hello World"


2. strip(): המתודה strip() משמשת להסרת תווים רווח מתחילתה ועד סופה של המחרוזת. התוצאה היא מחרוזת חדשה ללא רווחים משני צידי המחרוזת. דוגמא:
text = "\n\t   Hello, World!   \t\n"
stripped_text = text.strip()
print(stripped_text)  # Output: "Hello, World!"

3. split(): מתודה זו משמשת לפיצול מחרוזת לרשימה של תתי מחרוזות, בהתבסס על מפריד מוגדר. ברירת המחדל היא תו הרווח. המתודה מחזירה רשימה המכילה את המחרוזות המשנה. דוגמא:
text = "Hello,World,How,Are,You"
words = text.split(',')
print(words)  # פלט: ['Hello', 'World', 'How', 'Are', 'You']


סיכום: - rstrip() מסיר תווים מהצד הימני של המחרוזת. - strip() מסיר תווי רווח משני צידי המחרוזת. - split() מפצל מחרוזת לרשימה של מחרוזות משנה, בהתבסס על מפריד.

ממיר אימוגי ASCII לאימוגי רגיל דוגמא מ: :) ל: 🙂 https://gist.github.com/nhman-python/f3d0f88d8fbcf3593107f0669225e6bf האתר: https://smail-ascii.vercel.app/

תרגיל: הוראות מותר להשתמש רק בלולאות ו append אסור להשתמש בset רמה: בינוני כתוב פונקציה בשם remove_duplicate() שמקבלת רשימה ומסירה כפילויות מרשימה דוגמא:
lst = [1, 1, 3, 4, 55, 55]

# output [1, 3, 4, 55]
תשובות לבוט @Python_tipbot

תרגיל: רמה: קלה האם יש הבדל מהותי בין שני קטעי הקוד הבאים? קוד 1:
lst = [1, 2, 3, 4, 5, 6, 7]
lst1 = lst


קוד 2:
lst = [1, 2, 3, 4, 5, 6, 7]
lst1 = lst.copy()


אם יש הבדל הסבר מהו תשובות לבוט @Python_tipbot

מהו raise? ב-פייתון, raise משמשת להעלאת חריגים או שגיאות בכוונה במהלך ביצוע תוכנית. זה מאפשר לך ליצור חריגים מותאמים אישית או להעלות חריגים מובנים כדי לטפל בתנאים חריגים בקוד שלך. התחביר הכללי להצהרת raise הוא:
raise ExceptionType("הודעת השגיאה")

ה- ExceptionType יכול להיות חריג מובנה כמו ValueError, TypeError, או חריג מותאם אישית שאתה מגדיר על ידי סיווג משנה של המחלקה Exception. "הודעת השגיאה" היא מחרוזת אופציונלית המספקת מידע נוסף על החריג שהועלה. כאשר אתה מעלה חריגה, זה מפריע לזרימה הרגילה של התוכנית שלך ומעביר את השליטה למטפל חריג שיכול לטפל בחריג שהועלה. אם לא נמצא מטפל חריג מתאים, התוכנית תסתיים עם שגיאה (Traceback), תציג את סוג החריגה, הודעת השגיאה ושורת הקוד שבה הועלה החריג. דוגמא להעלאת חריג מובנה:
def divide(a, b):
    if 0 in [a, b]:
        raise ZeroDivisionError("Cannot divide by zero")
    return a / b


try:
    result = divide(9, 9)
    print(result)
except ZeroDivisionError as e:
    print("Error:", e)
# Output: Error: Cannot divide by zero

בדוגמה זו, הפונקציה divide() מעלה חריג ZeroDivisionError אם אחד המספרים הוא אפס. לאחר מכן החריג נתפס על ידי בלוק ה-except, והודעת השגיאה מודפסת. אתה יכול גם ליצור חריגים מותאמים אישית משלך על ידי הגדרת מחלקה חדשה שיורשת ממחלקת החריגים המובנית. חריגים מותאמים אישית מאפשרים לך לטפל בתנאי שגיאה ספציפיים בקוד שלך.
class MyCustomError(Exception):
    pass

def process_data(data):
    if not data:
        raise MyCustomError("Empty data")
    # Process the data

try:
    process_data([])
except MyCustomError as e:
    print("Error:", e)

# Output: Error: Empty data

בדוגמה זו, הפונקציה process_data() מעלה חריג MyCustomError אם ארגומנט הנתונים ריק. לאחר מכן החריג שהועלה נתפס על ידי בלוק הפרט והודעת השגיאה מודפסת. על ידי העלאת חריגים, אתה יכול לטפל ביעילות ולתקשר במצבי שגיאה בתוכניות Python שלך, מה שמאפשר שליטה טובה יותר בקוד שלך.

אתגר כתבו פונקציה בשם len_list הפונקציה צריכה לקבל רשימה ולהחזיר את האיבר הגדול ביותר ברשימה אסור להשתמש בפונקציות מובנות כמו max או min דוגמא def len_list(list): ... # your code list_a = ['aaa', 'aa', 'a'] print(len_list(list_a)) #output 'aaa'

אתגר שנו את הקוד ככה שבמקום להשתמש ב"*" תשתמשו בלולאה פנימית, אסור להשתמש ב " * " כדי להדפיס כל פעם את השורה num_letter = [1, 1, 1, 1, 6] for letter in num_letter: print(letter * 'x') תשובות לפה https://t.me/Python_tipbot

הסבר על mutability וimmutability ב-פייתון, mutability מתייחסת ליכולת של אובייקט להשתנות לאחר יצירתו, בעוד immutability מתייחס לאובייקטים שלא ניתן לשנות לאחר יצירתם. הבנת המושגים הללו חשובה מכיוון שיכולות להיות להם השלכות על ביצועים, שימוש בזיכרון והתנהגות התוכניות שלך. נתחיל עם דוגמאות לאובייקטים בלתי ניתנים לשינוי: 1. Strings:
python
   name = "Alice"
   new_name = name + " Smith"
   print(new_name)  # Output: Alice Smith
   

בדוגמה זו, המחרוזת המקורית "Alice" נשארת ללא שינוי. במקום זאת, אובייקט מחרוזת חדש נוצר על ידי שרשור המחרוזת המקורית עם "Smith". התנהגות זו נובעת מחוסר השינוי של סטרינג. 2. Tuples:
python
   point = (3, 4)
   new_point = point + (2,)
   print(new_point)  # Output: (3, 4, 2)
   

בדומה למחרוזות, tuples הם בלתי ניתנים לשינוי. כאשר אנו מבצעים פעולות כמו שרשור, ניצור tuples חדש במקום לשנות את המקורי. ——————————————————- כעת נעבור לדוגמאות של אובייקטים הניתנים לשינוי: 1. Lists:
python
   numbers = [1, 2, 3]
   numbers.append(4)
   print(numbers)  # פלט: [1, 2, 3, 4]
   

רשימות ניתנות לשינוי, מה שמאפשר לנו לשנות את האלמנטים שלהן ישירות באמצעות מטודות כמו append(), pop(), וכו' או על ידי הקצאה מחדש של ערכים ספציפיים. 2. Dictionaries:
python
   person = {"name": "Alice", "age": 30}
   person["age"] = 31
   print(person)  # Output: {'name': 'Alice', 'age': 31}
   

גם מילונים ניתנים לשינוי, מה שמאפשר לנו להוסיף, לשנות או להסיר צמדי מפתח-ערך באמצעות שיטות שונות ופעולות הקצאה. מתי נשתמש ומה היתרונות של כל אחד מהם: —- לא ניתן לשינוי מועיל כאשר: (immutable) - עליך לוודא שהערך של אובייקט יישאר ללא שינוי, מה שיכול להיות שימושי עבור שלמות הנתונים. - אתה רוצה לייעל את השימוש בזיכרון, מכיוון שניתן לאחסן אובייקטים בלתי ניתנים לשינוי ולעשות בהם שימוש חוזר, ולצמצם את טביעת הרגל של הזיכרון. סיכום: יתרון מהיר יותר צורך פחות משאבים זיכרון חסרון לא ניתן לשינוי —- ניתן לשינוי מועיל כאשר: (mutability) - עליך לשנות או לעדכן אלמנטים לעתים קרובות, כגון בעת עבודה עם נתונים המשתנים דינמי או ביצוע פעולות במקום. - אתה רוצה להימנע מיצירת אובייקטים חדשים כדי לחסוך שורות קוד ולשפר את הביצועים. - אתה דורש אובייקטים שניתן לשנות על ידי חלקים מרובים של התוכנית שלך, מה שמאפשר מניפולציה קלה יותר של הנתונים. לסיכום: יתרון חסוך בשורות קוד חיסרון דורש יותר מיקום בזיכרון (מאט את מהירות הריצה run-time) זכור, גם immutable וגם לmutability יש יתרונות וחסרונות, והבחירה ביניהם תלויה בדרישות הספציפיות של התוכנית שלך ובבעיה שאתה מנסה לפתור. דוגמא תוכלו לראות בקוד מהפוסט הקודם שהתשמשתי בtuples כדי שהתוכנית תרוץ מהר יותר ותחסוך לי מקום בזיכרון כי ידעתי מראש את כל הסוגי קבצים שאני רוצה לטפל בהם

מסדר הקבצים כרגע בגרסת הcli בהמשך יהיה גם gui תהנו https://github.com/nhman-python/file_organizer

כללים: לדון בכבוד על נושא התיכנות, פייתון וכו' מצאתם טעות או מידע שגוי בפוסטים אפשר לעדכן בקבוצת הדיון ואתקן אסור לשלוח הודעות או כל פוסט שלא קשור לתיכנות משתמש שישלח יושתק אסור לשאול אם אפשר לשאול🤓 פשוט תשאלו🥸 (נשתדל לעזור) רוצים להתחיל ללמוד פייתון יש את קמפוס יש גם ערוץ יוטיוב חמוד לפייתון בעברית בהצלחה לכל המתחילים

אתר שמציג את השעה והתאריך עכשיו https://gist.github.com/nhman-python/183ca96b4bcee8048d9c684df5451ca9

למי שמכיר את John Hammond הוא הוציא סרטון על כלי כמו שאני בניתי רק ששם הקוד שימש למטרות פישינג ממש דומה למה שאני בניתי https://www.youtube.com/watch?v=KZoeP7YGnHo