Как выполнить проверку что переменная приняла значение str или int и выполнилась в цикле на python?
my_list1 = ["Vasya", 23, "China", 98, "Иван"]
a = len(my_list1)
def fun1():
b = input("Выберите число из списка от 0 до {} или любые числа в этом диапазоне через пробел, "
"либо введите число больше чем {}:\n".format(a - 1, a - 1))
if(type(b)==str):
print("Вы ввели некорректное значение!")
fun1()
else:
b = list(map(int, b.split()))
for i in b:
if i < a:
print(my_list1[i])
elif i >= a:
print("Весь список: ", my_list1)
fun1()
while True:
answer = str(input("Хотите повторить? (Да\Нет):\n"))
if answer.lower() == "да":
fun1()
elif answer.lower() == "нет":
exit()
else:
print("Некорректный ввод, повторите!")
Ответы (2 шт):
Автор решения: REPAIR SERVICE
→ Ссылка
Это помогло, кому может пригодится.
if b.isalpha():
print("Вы ввели некорректное значение!")
fun1()
Автор решения: Ilya
→ Ссылка
Что-бы проверить является ли объект экземпляром указанного класса (в вашем случай: str или int) можно использовать функцию isinstance()
if isinstance(b, str):
print("Вы ввели некорректное значение!")
fun1()
Метод b.isalpha() проверяет состоит ли строка только только из символов. Например строка 'China1' - не пройдет проверку