Я пытаюсь заставить функцию проверить, что все элементы в списке имеют одинаковый тип. Смотрите раздел "проверка целочисленного типа". Тем не менее, этот раздел моей функции возвращает значение False независимо от того, какие данные введены в данный момент.
Каков наилучший способ проверки этого раздела на предмет типа ввода (float, string, integer), возврат False, если они не все одинаковые и возвращают True иначе? И пусть функция запрашивает другой ввод, если они не одного и того же типа.
def max_of_three():
# Ask users to input values
value1 = input('Enter the first value here: \n')
value2 = input('Enter the second value here: \n')
value3 = input('Enter the third value here: \n')
# Store values in a list
maxlist = [value1, value2, value3]
maxlist.sort()
# Check for integer type across the list:
value = all(isinstance(item, int) for item in maxlist)
print(value)
# except:
# print('Please ensure all inputs are of the same type!')
#print the values
print('\n')
print('The maximum of these values is: \n', maxlist[-1])
max_of_three()
Редактировать:
Теперь я попытался объединить пару ответов в раздел код:
def max_of_three():
# Ask users to input values
value1 = input('Enter the first value here: \n')
value2 = input('Enter the second value here: \n')
value3 = input('Enter the third value here: \n')
# Store values in a list
maxlist = [value1, value2, value3]
maxlist.sort()
# Check for type across the list:
try:
typecheck = all(isinstance(item, type(maxlist[0])) for item in maxlist[1:])
except typecheckerror:
print('Please ensure all inputs are of the same type!')
#print the values
print('\n')
print('The maximum of these values is: \n', maxlist[-1])
max_of_three()
Есть какие-нибудь указатели на то, как я могу изменить это, чтобы сделать то, к чему я пытаюсь добраться? Он должен вернуть 'c', если я введу (a, b, c), и выдаст мне сообщение об ошибке, если я введу (1,2, a). Когда я печатаю значение для проверки типов, оно возвращает значение «True», даже если я ввожу что-то вроде 1,2, a.