5 תשובות
שואל השאלה:
איך אני עושה שלכל 30 דקות היא תצטרך לשלם 2 שקלים אבל לא minutes=2 כי אם אני ארשום שהיא גלשה באינטרנט 15 דקות זה יתן לי שהיא צריכה לשלם 30 שקלים במקום שקל אחד (כי זה 2 שקלים ל30 דקות)
אנונימית
time = int(input()) t
price = 0 t

while time >= 30: t
price += 2 t
time -= 30 t
if time != 0: t
price += 2*(time * 100 / 30)/100 t
print(price) t

תורידי את הt בסוף מכל שורה
ואני אסביר מה עשיתי:

בהתחלה התוכנה מקבלת מהמשתמש כמה זמן הוא גלש, והמחיר שהוא אמור לשלם מתחיל מ0 כמובן

נניח והמשתמש הכניס 105 דקות
אז יש לולאת while שעובדת כל עוד זמן גדול מ30

ומה שהיא עושה זה:

מורידה 30 דקות מהזמן
ומוסיפה 2 שקל למחיר

ואז אנחנו נשארים עם זמן שהוא פחות משלושים,
ושם מה שאנחנו עושים זה - מוצאים כמה אחוזים משלושים שקל הוא השתמש, נגיד 15 דקות מתוך שלושים זה חמישים אחוז,
ואז אנחנו מוסיפים למחיר עוד חמישים אחוז מ2 שקל, שזה עוד שקל
אם הבנתי נכון את השאלה, הנה דרך אחת לפתור זאת - ללא לולאה וע"י חישוב פשוט:

נחשב ונשמור במשתנה כמה עולה דקה אחת בשקלים ולאחר קבלת מספר הדקות מהמשתמש נכפיל את הקלט שהתקבל במחיר לדקה.

לדוגמה:

price_per_minute = 2 / 30

נניח וקיבלת בקלט את המספר ושמרת אותו במשתנה בשם minutes, תוכלי לדעת מה המחיר הסופי ע"י:

total_price = price_per_minute * minutes

הסכום שעל הלקוח לשלם ישמר במשתנה total_price
הנה פיתרון בשורה אחת:

print(int(input()) * 200 / 30 / 100) t

להוריד את הt בסוף השורה