Форум сайта python.su
Привет! Я новичок и только учусь, делал недавно задачу по построению треугольника, НО!Проблема в том, что я не могу сделать проверку на тип данных, то есть, мне нужно чтобы при вводе не числа выдавало
'you only need to use numbers', у меня не достаточно знаний, чтобы решить это( Я пытался сделать через проверку на инт или флоат, но i в for i in range даже букву превращает в int.Пытался сделать проверку через бесконечное множество чисел, но так как там float, а i нам выдает int, это не сработало
Помогите пожалуйста с этим заданием и если не сложно добавьте объяснений
class TringalСhecker: def __init__(self,sides): self.sides=sides def is_trangle(self): sides_1=sides[0] sides_2=sides[1] sides_3=sides[2] if sides_1<=0 or sides_2<=0 or sides_3<=0: print('It wont work with negative numbers!') elif sides_1+sides_2<sides_3 or sides_1+sides_3<sides_2 or sides_2+sides_3<sides_1: print('Its a pity, but theres nothing to be done out of this triangle!') else: print('Yay, you can build a triangle!!') sides_0=input('enter the sides of the triangle with a space:') sides_0=sides_0.split(' ') sides=[] for i in range(3): sai=int(sides_0[i]) sides.append(sai) #for i in range(3): # ass=sides_0[i] # for j in ass: # if j in all_num: # sai=int(sides_0[i]) # sides.append(sai) # print(j) #else: # print('you only need to use numbers') # print(ValueError) print(sides[0]) print(sides[1]) print(sides[2]) Tringal_1= TringalСhecker(sides) Tringal_1.is_trangle()
Отредактировано E_off (Фев. 24, 2023 14:27:36)
Прикреплённый файлы:
решать (1).py (1,2 KБ)
Офлайн
try: a=int("aaa") except ValueError as e: print("qq")
Офлайн
В Python 3.10 появилась конструкция match которая реализует switch case.
В *выражение match использовать type(object) который вернёт тип объекта и сделать выборку case с полученным типом.
Или при использовании условного оператора If для получения проверки на тип, можно использовать функцию isinstance(object, classinfo) которая вернёт True при соответствии класса(типа) аргумента объекта.
Офлайн