Доброго дня всім, вітаю на другий день 🙂
Ми вже дізналися, що за допомогою функції len() можна обчислити довжину рядків. Однак, коли ми намагаємося обчислити, скільки цифр містить число, виникає помилка:
TypeError: object of type ‘int’ has no len()
Це відбувається тому, що функція len не підходить для цілих чисел. Давайте ближче розглянемо типи даних.
#Типи Даних
- Рядок (String)
- Ціле число (Integer): Ціле число
- Число з плаваючою комою (Float)
- Логічний тип (Boolean): True або False
Важливо пам’ятати, що програмісти завжди починають рахувати з 0! Оскільки наша основна робота полягає саме з 0 та 1.
#Індексування (Subscripting)
print(“Hello”[2])
l
Також ми можемо використовувати від’ємні індекси! Вони починають рахувати з кінця.
print(“Hello”[-1])
o
Якщо ми намагаємося звернутися до індексу, який перевищує кількість символів:
IndexError: string index out of range
print(“123”+”456")
123456
Причина того, що не всі функції працюють з усіма типами даних, схожа на спробу покласти картоплю фрі в фритюрницю, призначену для іншої їжі. Кожен пристрій має різні входи і працює по-своєму.
Офіційна документація Python доступна на python.org.
print(type(“Hello”))
Str
#Перетворення типів (Type Casting)
print(int(“123”+”456"))
123456
print(int(“abc”+”456"))
Value Error. Як тут пов’язаний abc з цілим числом?
int()
float()
bool()
str()
Цими чотирма функціями ми можемо змінювати типи даних.
Q: print(“Number of letters in your name:” + len(input(“What is your name?”)))
Цей код не працюватиме, оскільки ми не можемо додавати str() та int().
Що ми можемо зробити?
print(“Number of letters in your name:” + str(len(input(“What is your name?”))))
len() приймає рядок (str) як вхід, але повертає ціле число (int).
print(6/3)
2.0
ділення дає результат типу float => це називається неявне перетворення типів (implicit typecasting).
print(6//3)
2 => дві косі риски для ділення цілочисловий результат.
print(2**2)
4 => для операцій з піднесенням до степеня.
round(number, ndigits) — функція для округлення.
#f-strings
дозволяє виводити різні типи даних в одному рядку
print(f”Your score is: {score}”)
Наприкінці дня я створив калькулятор чайових!
print("Welcome to the tip calculator!\n")
total_bill = float(input("What was the total bill? $"))
percentage = int(input("How much tip would you like to give? 10, 12 or 15\n"))
number_of_people = int(input("How manyn"))
final_bill = round(total_bill * (1 + percentage / 100) / number_of_people, 2)
print(f"Each person should pay: ${final_bill}")
Перекладено з: [#100DaysOfCodeChallenge: Day — 2](https://medium.com/@bettuncay/100daysofcodechallenge-day-2-650c904e9dfc)