├── WEEK-1 ├── __pycache__ │ └── some_functions.cpython-39.pyc ├── builtin-functions.py └── introduction.py ├── WEEK-2 ├── functions.py ├── list-comprehension.py ├── loops.py ├── modules.py └── some_functions.py ├── WEEK-3 ├── HOF.py ├── __pycache__ │ └── fetch_api.cpython-39.pyc ├── cats.json ├── cats_weight.png ├── download_image.py ├── example.json ├── fetch_api.py ├── fetching-data.py ├── functional-programming.py └── images │ ├── Abyssinian.jpg │ ├── Aegean.jpg │ ├── American Bobtail.jpg │ ├── American Curl.jpg │ ├── American Shorthair.jpg │ ├── American Wirehair.jpg │ ├── Arabian Mau.jpg │ ├── Australian Mist.jpg │ ├── Balinese.jpg │ ├── Bambino.jpg │ ├── Bengal.jpg │ ├── Birman.jpg │ ├── Bombay.jpg │ ├── British Longhair.jpg │ ├── British Shorthair.jpg │ ├── Burmese.jpg │ ├── Burmilla.jpg │ ├── California Spangled.jpg │ ├── Chantilly-Tiffany.jpg │ ├── Chartreux.jpg │ ├── Chausie.jpg │ ├── Cheetoh.jpg │ ├── Colorpoint Shorthair.jpg │ ├── Cornish Rex.jpg │ ├── Cymric.jpg │ ├── Cyprus.jpg │ ├── Devon Rex.jpg │ ├── Donskoy.jpg │ ├── Dragon Li.jpg │ ├── Egyptian Mau.jpg │ ├── Exotic Shorthair.jpg │ ├── Havana Brown.jpg │ ├── Himalayan.jpg │ ├── Japanese Bobtail.jpg │ ├── Javanese.jpg │ ├── Khao Manee.jpg │ ├── Korat.jpg │ ├── Kurilian.jpg │ ├── LaPerm.jpg │ ├── Maine Coon.jpg │ ├── Manx.jpg │ ├── Munchkin.jpg │ ├── Nebelung.jpg │ ├── Norwegian Forest Cat.jpg │ ├── Ocicat.jpg │ └── Oriental.jpg ├── WEEK-4 └── exercises │ ├── exercises.py │ ├── palindrome.py │ ├── quadratic-equation.py │ └── res.py ├── WEEK-5 ├── OOP │ ├── OOP.py │ └── declaring-class.py ├── function-revison.py ├── practice.py ├── regex │ └── regex.py └── test.py └── WEEK-6 ├── HOF.py ├── __pycache__ ├── fetch_data.cpython-39.pyc └── modules.cpython-39.pyc ├── basics-python-revision.py ├── cats.json ├── fetch_data.py ├── fetching-data.py ├── functional-programming.py ├── import-modules.py ├── import_custom_module.py ├── list-comprehension.py ├── loops.py └── modules.py /WEEK-1/__pycache__/some_functions.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-1/__pycache__/some_functions.cpython-39.pyc -------------------------------------------------------------------------------- /WEEK-1/builtin-functions.py: -------------------------------------------------------------------------------- 1 | # What is a function? 2 | # Function is a block of code that perform a certain task 3 | 4 | import random 5 | print(1, 2, 3) 6 | print('Hi','Hello','whatever you in your mind') 7 | 8 | ''' 9 | print(), type(), round(), int(), float(), str(), input(), 10 | len(), sum(), min(), max(), list(), tuple(), dict(), eval(), abs(), bool(), enumerate(), map(), filter(), id(), sort(), sorted(), set(), zip 11 | ''' 12 | print('Print allows to print something out') 13 | 14 | # Type allow us to know the data type of a data 15 | # Data types: Number(int, float, complex), string, bolean, list, dictionary, tuple, set 16 | # 17 | """ print(type(10)) 18 | print(type(3.14)) 19 | print(type(1 + 2j)) 20 | 21 | print(type('2')) 22 | print(type('Everyone loves Python')) 23 | # Any data under single/double quote is a string 24 | 25 | print(type(int('2'))) 26 | 27 | first_name = 'Asabeneh' 28 | last_name = 'Yetayeh' 29 | country = 'Finland' 30 | city = 'Helsinki' 31 | age = 250 32 | full_name = first_name + ' ' + last_name 33 | print(full_name) """ 34 | 35 | ''' 36 | My name is Asabeneh Yetayeh. I am 250 years old. I live in Helsinki, Finland. 37 | ''' 38 | 39 | """ 40 | print('My name is ' + full_name + '. ' + 'I am ' + str(age) + ' years old. ' + ' I live in ' + city + ', ' + country + '.') 41 | 42 | print(f'My name is {full_name}. I am {age} years old. I live in {city}, {country}.') 43 | print(round(9.81, 1)) 44 | print(round(3.14, 1)) 45 | print(round(1.414)) 46 | print(round(2.51)) 47 | print(round(3.14141414141, 1)) 48 | print(round(4.56, 1)) 49 | 50 | print(float(2)) 51 | print(float('9.81')) 52 | print(int(float('9.81'))) 53 | """ 54 | # area of a circle area = pi * r * r 55 | 56 | # radius = float(input('Enter a radius: ')) 57 | 58 | # area = 3.14 * radius * radius 59 | 60 | # print(f'The area of the circle with {radius} m radius is {area} square meter.') 61 | 62 | """ print(len(first_name)) 63 | print(len(last_name)) 64 | print(len([1, 2, 3, 4, 5, 'something', True, (1, 2, 3), {2, 3, 4}, {'lang':'Python'}])) 65 | lst = [1, 2, 3, 4, 5, 'something', True, (1, 2, 3), {2, 3, 4}, { 66 | 'lang': 'Python'}] 67 | 68 | for item in lst: 69 | print(item, type(item)) """ 70 | 71 | """ print(min(1, 2, 3, 4)) 72 | print(max(1, 2, 3, 4)) 73 | print(max([1, 2, 3, 4])) 74 | print(sum([1, 2, 3, 4])) 75 | print(list({1, 2, 3, 4, 5})) 76 | print(list((1, 2, 3, 4, 5))) 77 | print(list({'name':'Asab','age':250})) 78 | 79 | empty_list = list() 80 | print(empty_list) 81 | print(list('Python')) 82 | print(abs(-5)) 83 | print(abs(5)) 84 | 85 | # bool() # True or / False 86 | print(type(True)) 87 | print(type(False)) """ 88 | 89 | # all strings, numbers both positive and negative are True 90 | # 0, empty list, empty set, empty dictionary, empty tuple, None, '' 91 | 92 | """ print((bool(True))) 93 | print((bool(False))) 94 | print((bool('somestrings'))) 95 | print((bool(1))) 96 | print((bool(-1))) 97 | print('what is falsy value') 98 | print((bool(False))) 99 | print((bool(0))) 100 | print((bool([]))) 101 | print((bool(()))) 102 | print((bool(set()))) 103 | print((bool({}))) 104 | print((bool(''))) 105 | print((bool(None))) """ 106 | 107 | countries = ['Finland', 'Sweden','Denmark','Norway','Iceland'] 108 | cities = ['Helsink', 'Stockholm', 'Copenhagen', 'Oslo', 'Reykjavík'] 109 | # cities = ['Helsink', 'Stockholm', 'Copenhagen', 'Oslo', 'Reykjavík'] 110 | # = ['FIN', 'SWE','DEN','NOR','ICE'] 111 | print(list(enumerate(countries))) 112 | # for country in countries: 113 | # print(country) 114 | 115 | for i,country in enumerate(countries): 116 | print(i + 1, country) 117 | 118 | print(list(map(lambda x: [x, x.upper(), x.upper()[:3]], countries))) 119 | 120 | print(list(filter(lambda x: 'land' in x, countries))) 121 | print(list(filter(lambda x: 'land' not in x, countries))) 122 | 123 | print(id(1)) 124 | print(id(2)) 125 | for i in range(10): 126 | print(id(i)) 127 | 128 | # sort and sorted 129 | 130 | nums = [4, 2, 5, 3, 2, 6, -3, 5] 131 | 132 | """ nums2 = nums.copy() 133 | nums2.sort() 134 | # mutation -> 135 | print(nums) 136 | print(nums2) """ 137 | 138 | sorted_nums = sorted(nums) 139 | print(nums) 140 | print(sorted_nums) 141 | print(countries + cities) 142 | print(zip(countries, cities)) 143 | print(list(zip(countries, cities))) 144 | for index, item in enumerate(zip(countries, cities)): 145 | print(index + 1, item[0], item[1]) 146 | 147 | # what ever u want to say 148 | """ 149 | multiline 150 | can be written 151 | like this 152 | 153 | """ 154 | 155 | ''' 156 | this way is 157 | also posible 158 | ''' 159 | # Data type: number(int, float, complex), boolean, String, List, Set, Tuple, Dictionary 160 | 161 | print(type(10)) 162 | print(type(9.81)) 163 | print(type(1 + 4j)) 164 | print(type(True)) 165 | print(type(False)) 166 | 167 | 168 | def gen_user_id(length = 6): 169 | alphabet = 'abacedefghijklmnopqrstuvwxyzACBCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' 170 | user_id = '' 171 | for l in range(length): 172 | index = random.randint(0, len(alphabet)-1) 173 | user_id = user_id + alphabet[index] 174 | return user_id 175 | 176 | print(gen_user_id()) 177 | print(gen_user_id(3)) 178 | print(gen_user_id(32)) 179 | 180 | 181 | 182 | is_light_on = True 183 | is_raining = False 184 | is_married = True 185 | value = 4 > 2 186 | lst = [1, 2, 3, 4] 187 | names = ['Donald','Barack','Joe','Bill'] 188 | set_nums = {1, 2, 3, 4} 189 | tpl = (1, 2, 3, 4) 190 | 191 | user = { 192 | 'firstname':'asab', 193 | 'lastname':'yeta', 194 | 'age':250, 195 | 'country':'Finland', 196 | 'city':'Helsinki', 197 | 'is_married':True, 198 | 'skills':['HTML','CSS','JS','Python'], 199 | 'address':{ 200 | 'streetname':'spacestreet', 201 | 'zipcode':'02270' 202 | } 203 | 204 | } 205 | 206 | a = 3 207 | b = 4 208 | c = 1 + 2j 209 | d = 9.81 210 | 211 | # +, - * / // % ** 212 | 213 | """ print(f'{a} + {b} = {a + b}') 214 | print(f'{a} - {b} = {a - b}') 215 | 216 | print(f'{a} * {b} = {a * b}') 217 | print(f'{a} / {b} = {a / b}') 218 | print(f'{a} // {b} = {a // b}') 219 | print(f'{b} // {a} = {b // a}') 220 | print(f'{b} % {a} = {b % a}') 221 | print(f'{b} ** {a} = {b ** a}') 222 | name = input('Entr you name') 223 | print(name) """ 224 | 225 | country = 'Finland is beautiful' 226 | print(country.upper()) 227 | print(country.lower()) 228 | print(country.title()) 229 | print(country.swapcase()) 230 | print(country.startswith('Fin')) 231 | print(country.endswith('ful')) 232 | 233 | a = -5 234 | if a > 0: 235 | print('Positive') 236 | elif a == 0: 237 | print('Zero') 238 | elif a < 0: 239 | print('Negative') 240 | else: 241 | print('Not a number') 242 | 243 | value = 'positive value' if a > 0 else 'negative value' 244 | print(value) 245 | 246 | # while loop and for loop 247 | 248 | lst = range(3) # (0, 3) 249 | print(list(lst)) 250 | 251 | for i in range(0, 101, 2): 252 | print(i) 253 | 254 | for i in range(1, 101, 2): 255 | print(i) 256 | 257 | def sum_of_all(n): 258 | total = 0 259 | for i in range(1,n+1, 2): 260 | total = total + i 261 | return total 262 | 263 | print(sum_of_all(100)) 264 | 265 | """ k = 0 266 | 267 | while k < 101: 268 | k = k + 1 269 | if k % 5 == 0 and k % 11 == 0: 270 | continue 271 | print(k) """ 272 | 273 | for i in range(11): 274 | if i == 5: 275 | continue 276 | print(i) 277 | 278 | # Variables 279 | # Operators 280 | # Data types 281 | # Builtin and custom 282 | # List, set, tuple, dictionary 283 | # Loops 284 | # conditionals 285 | # Functions 286 | 287 | -------------------------------------------------------------------------------- /WEEK-1/introduction.py: -------------------------------------------------------------------------------- 1 | print('Hello') 2 | print('Hello','World', 2021, 'I love Pyton') 3 | 4 | # comment 5 | # what is the pupose of a comment ? 6 | # it allows us to leave some remark about the code ? 7 | # it makes code more readable, clean, reusable 8 | 9 | ''' 10 | the function below is print 11 | it is a builtin function it takes unlimited number of arguments 12 | ''' 13 | """ 14 | this is 15 | a mulitiline 16 | comment 17 | """ 18 | 19 | print(1, 2, 3, 4, 'WAHT EVER', True, [1, 2, 3], None, ('year', 2021)) 20 | 21 | 22 | # List comprehension can replace map and filter 23 | 24 | countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland'] 25 | uppercase = [c.uppercase() for c in countries] 26 | countries_with_land = [c.uppercase() for c in countries if 'land' in c] 27 | country_codes = [[c, c.uppercase()[:3]] for c in countries] 28 | -------------------------------------------------------------------------------- /WEEK-2/functions.py: -------------------------------------------------------------------------------- 1 | # Function: Function is a block of code that perform a certain task. 2 | # It can be reuse 3 | # builtin functions 4 | # custom functions 5 | from pprint import pprint 6 | 7 | """ print('hi','i love py', 2021) 8 | print(max(1, 2, 10, -10)) 9 | print(min(1, 2, 10, -10)) 10 | print(sum([1, 2, 10, -10])) """ 11 | 12 | 13 | """ def print_fullname(first_name, last_name): 14 | full_name = f'{first_name} {last_name}' 15 | return full_name 16 | 17 | print(print_fullname('Asabeneh','Yetayeh')) 18 | print(print_fullname('Donald','Trump')) 19 | print(print_fullname('Bill','Gates')) 20 | print(print_fullname('Steve', 'Jobs')) """ 21 | 22 | """ def add_two_nums(a, b): 23 | total = a + b 24 | return total 25 | 26 | print(add_two_nums(1, 2)) 27 | print(add_two_nums(1, 9)) 28 | 29 | # a function that adds from 0 to n 30 | 31 | def sum_all_nums(n): 32 | total = 0 33 | for i in range(n + 1): 34 | total = total + i 35 | return total 36 | print(sum_all_nums(3)) # 0, 1, 2, 3 37 | print(sum_all_nums(10)) 38 | print(sum_all_nums(100)) 39 | 40 | 41 | def sum_evens(n): 42 | total = 0 43 | for i in range(0, n + 1, 2): 44 | total = total + i 45 | return total 46 | 47 | 48 | print(sum_evens(3)) # 0, 1, 2, 3 49 | print(sum_evens(10)) # 0, 2, 4, 6, 8, 10 50 | print(sum_evens(100)) 51 | 52 | countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland'] 53 | names = ['Asabeneh','Donald','Bill','Steve'] 54 | 55 | def change_list_touppercase(lst): 56 | new_lst = [] 57 | for item in lst: 58 | new_lst.append(item.upper()) 59 | return new_lst 60 | 61 | print(change_list_touppercase(countries)) 62 | print(change_list_touppercase(names)) 63 | 64 | def make_square (n): 65 | return n ** 2 66 | 67 | print(make_square(2)) 68 | print(make_square(3)) 69 | print(make_square(11)) 70 | 71 | for i in range(11): 72 | print(make_square(i)) 73 | 74 | # weight of abody on a planet 75 | def calculate_weight(mass, gravity = 9.81): 76 | weight = mass * gravity 77 | return weight 78 | 79 | print(calculate_weight(75)) 80 | print(round(calculate_weight(75, 1.62), 1)) """ 81 | 82 | # def generate_random_id(): 83 | letters = 'abcedefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' 84 | 85 | def generate_random_user_id(n = 6): 86 | import random 87 | random_id = '' 88 | for i in range(n): 89 | index = random.randint(0, len(letters) - 1) 90 | random_id = random_id + letters[index] 91 | 92 | return random_id 93 | print(generate_random_user_id(32)) 94 | print(generate_random_user_id(24)) 95 | print(generate_random_user_id()) 96 | 97 | # Functions that take arbitrary number of arguments 98 | # * allows as to pack the arguments to a tuple 99 | def sum_numbers(*args): 100 | total = 0 101 | for i in args: 102 | total += i 103 | return total 104 | print(sum_numbers(-100, 250, 300, -50, 1, 2, 3, 4)) 105 | 106 | def get_person_info(**params): 107 | pprint(params) 108 | 109 | 110 | ## ** allows to pack the arguments to dictionary 111 | get_person_info(first_name='Asabeneh', 112 | last_name='Yetayeh', 113 | age = 250, 114 | skills=['JavaScript', 'React', 'Node', 'MongoDB', 'Python'], 115 | is_married = True, 116 | address = { 117 | 'street': 'Space street', 118 | 'zipcode': '02210' 119 | } 120 | ) 121 | # Lets talk about lambda function 122 | # Annonymous function 123 | 124 | lambda_func = lambda x, y : x ** 2 + x * y + 10 125 | print(lambda_func(3, 2)) 126 | 127 | -------------------------------------------------------------------------------- /WEEK-2/list-comprehension.py: -------------------------------------------------------------------------------- 1 | # allows to write a clean and short code 2 | # it faster than regular loop 3 | from pprint import pprint 4 | nums = [1, 2, 3, 4, 5] # [1, 4, 9, 16, 25] 5 | 6 | """ List comprehension """ 7 | 8 | new_lst = [ num ** 2 for num in nums] 9 | evens = [num for num in nums if num % 2 == 0] 10 | 11 | print(new_lst) 12 | print(evens) 13 | 14 | """ new_nums = [] 15 | for num in nums: 16 | new_nums.append(num ** 2) 17 | 18 | print(new_nums) """ 19 | 20 | """ def make_square(n): 21 | return n ** 2 22 | def map_list(lst): 23 | new_lst = [] 24 | for item in lst: 25 | new_lst.append(make_square(item)) 26 | return new_lst 27 | print(map_list(nums)) """ 28 | 29 | countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland'] 30 | 31 | 32 | uppercase = [c.upper() for c in countries] 33 | print(uppercase) 34 | lst_lst = [[c, c.upper(), c.upper()[:3], len(c)] for c in countries] 35 | pprint(lst_lst) 36 | 37 | countries_with_land = [c for c in countries if 'land' in c] 38 | print(countries_with_land) 39 | countries_with_way = [c for c in countries if 'way' not in c] 40 | print(countries_with_way) 41 | 42 | nums = list(range(101)) 43 | print(nums) 44 | evens = list(range(0, 101, 2)) 45 | print(evens) 46 | 47 | odds = list(range(1, 101, 2)) 48 | print(odds) 49 | -------------------------------------------------------------------------------- /WEEK-2/loops.py: -------------------------------------------------------------------------------- 1 | # Loops: while and for loop 2 | 3 | # for loop 4 | from pprint import pprint 5 | evens = range(0,101,2) 6 | odds = range(1, 101, 2) 7 | print(list(evens), list(odds)) 8 | 9 | # add all numbers from 0 to 100 10 | total = 0 11 | for num in range(101): 12 | total = total + num 13 | print(total) 14 | 15 | a = 0 16 | while a < 11: 17 | print(a) 18 | a = a + 1 19 | 20 | for i in range(11): 21 | print(f'{i} x {i} = {i * i}') 22 | 23 | 24 | countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland'] 25 | 26 | lst_lst = [] 27 | for c in countries: 28 | lst_lst.append([c, c.upper(), len(c), c.upper()[:3]]) 29 | pprint(lst_lst) 30 | 31 | first_name = 'Asabeneh' 32 | last_name = 'Yetayeh' 33 | age = 250 34 | full_name = first_name + ' ' + last_name 35 | # I am Asabeneh Yetayeh. I am 250 years old. 36 | print('I am ' + full_name + '. ' + 'I am ' + str(age) + ' years old.') 37 | 38 | a = 1000 39 | b = 200 40 | 41 | print(f'{a} x {b} = {a * b}') 42 | 43 | for c in countries: 44 | print(f'I live in {c}. {c} is a very beautiful country.') 45 | 46 | 47 | -------------------------------------------------------------------------------- /WEEK-2/modules.py: -------------------------------------------------------------------------------- 1 | # modules that can found globally 2 | 3 | # import math 4 | # from math import sqrt, floor, ceil 5 | """ from math import * 6 | 7 | # print(dir(math)) 8 | print(sqrt(4)) 9 | print(sqrt(9)) 10 | print(sqrt(2)) 11 | print(2 ** 0.5) 12 | print(100 ** 0.5) 13 | print(pi) 14 | print(e) 15 | print(tau) 16 | print(floor(9.81)) 17 | print(round(9.86, 1)) 18 | print(ceil(3.14)) """ 19 | 20 | from some_functions import add_two_nums, make_square, print_fullname as full_name 21 | 22 | # print(dir(some_functions)) 23 | print(add_two_nums(1, 2)) 24 | print(make_square(10)) 25 | print(full_name('Asabeneh','Yetayeh')) 26 | -------------------------------------------------------------------------------- /WEEK-2/some_functions.py: -------------------------------------------------------------------------------- 1 | def make_square(n): 2 | return n ** 2 3 | 4 | def add_two_nums(a, b): 5 | return a + b 6 | 7 | def print_fullname(first_name, last_name): 8 | return first_name + ' ' + last_name -------------------------------------------------------------------------------- /WEEK-3/HOF.py: -------------------------------------------------------------------------------- 1 | # If a function takes another function as a parameter we call it a Higher Order Function(HOF) 2 | # If a function return another function as a value we call a Higher Order Function(HOF) 3 | 4 | def make_square(n): 5 | return n * n 6 | 7 | print(make_square(2)) 8 | print(make_square(3)) 9 | print(make_square(10)) 10 | 11 | def make_cube(func, n): 12 | return func(n) * n 13 | 14 | print(make_cube(make_square, 2)) 15 | print(make_cube(make_square, 3)) 16 | print(make_cube(make_square, 10)) 17 | 18 | def print_fullname (firstname, lastname): 19 | return firstname + ' ' + lastname 20 | 21 | def get_person_info(func, firstname, lastname, age, country, skills): 22 | fullname = func(firstname, lastname) 23 | return f'I am {fullname}. I am {age} years old. I live in {country}. I have these skills such as {", ".join(skills)}' 24 | 25 | print(get_person_info(print_fullname, 'Asabeneh','Yetayeh', 250, 'Finland',['HTML','CSS' ,'JS','Python'] )) 26 | 27 | 28 | print(', '.join(['Finland','Sweden','Denmark','Norway'])) 29 | 30 | def some_hof(): 31 | def do_something(): 32 | return 'do somehting' 33 | return do_something 34 | 35 | print(some_hof()()) 36 | 37 | def do_some_math(n): 38 | def add_ten(): 39 | return n + 10 40 | return add_ten 41 | 42 | print(do_some_math(10)) 43 | print(do_some_math(5)) 44 | 45 | def do_math(a, b): 46 | def add_nums(): 47 | return a + b 48 | def difference(): 49 | return a - b 50 | def multiply(): 51 | return a * b 52 | return { 53 | 'add_nums':add_nums(), 54 | 'difference':difference(), 55 | 'multiply':multiply() 56 | } 57 | print(do_math(1,4)['add_nums']) 58 | # print(do_math()['difference'](100, 1)) 59 | # print(do_math()['multiply'](10, 4)) 60 | 61 | 62 | # map, filter, reduce 63 | # Pure and Impure Function 64 | make_square(2) -------------------------------------------------------------------------------- /WEEK-3/__pycache__/fetch_api.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/__pycache__/fetch_api.cpython-39.pyc -------------------------------------------------------------------------------- /WEEK-3/cats.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "weight": { 4 | "imperial": "7 - 10", 5 | "metric": "3 - 5" 6 | }, 7 | "id": "abys", 8 | "name": "Abyssinian", 9 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/Abyssinian.aspx", 10 | "vetstreet_url": "http://www.vetstreet.com/cats/abyssinian", 11 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/abyssinian", 12 | "temperament": "Active, Energetic, Independent, Intelligent, Gentle", 13 | "origin": "Egypt", 14 | "country_codes": "EG", 15 | "country_code": "EG", 16 | "description": "The Abyssinian is easy to care for, and a joy to have in your home. They’re affectionate cats and love both people and other animals.", 17 | "life_span": "14 - 15", 18 | "indoor": 0, 19 | "lap": 1, 20 | "alt_names": "", 21 | "adaptability": 5, 22 | "affection_level": 5, 23 | "child_friendly": 3, 24 | "dog_friendly": 4, 25 | "energy_level": 5, 26 | "grooming": 1, 27 | "health_issues": 2, 28 | "intelligence": 5, 29 | "shedding_level": 2, 30 | "social_needs": 5, 31 | "stranger_friendly": 5, 32 | "vocalisation": 1, 33 | "experimental": 0, 34 | "hairless": 0, 35 | "natural": 1, 36 | "rare": 0, 37 | "rex": 0, 38 | "suppressed_tail": 0, 39 | "short_legs": 0, 40 | "wikipedia_url": "https://en.wikipedia.org/wiki/Abyssinian_(cat)", 41 | "hypoallergenic": 0, 42 | "reference_image_id": "0XYvRd7oD", 43 | "image": { 44 | "id": "0XYvRd7oD", 45 | "width": 1204, 46 | "height": 1445, 47 | "url": "https://cdn2.thecatapi.com/images/0XYvRd7oD.jpg" 48 | } 49 | }, 50 | { 51 | "weight": { 52 | "imperial": "7 - 10", 53 | "metric": "3 - 5" 54 | }, 55 | "id": "aege", 56 | "name": "Aegean", 57 | "vetstreet_url": "http://www.vetstreet.com/cats/aegean-cat", 58 | "temperament": "Affectionate, Social, Intelligent, Playful, Active", 59 | "origin": "Greece", 60 | "country_codes": "GR", 61 | "country_code": "GR", 62 | "description": "Native to the Greek islands known as the Cyclades in the Aegean Sea, these are natural cats, meaning they developed without humans getting involved in their breeding. As a breed, Aegean Cats are rare, although they are numerous on their home islands. They are generally friendly toward people and can be excellent cats for families with children.", 63 | "life_span": "9 - 12", 64 | "indoor": 0, 65 | "alt_names": "", 66 | "adaptability": 5, 67 | "affection_level": 4, 68 | "child_friendly": 4, 69 | "dog_friendly": 4, 70 | "energy_level": 3, 71 | "grooming": 3, 72 | "health_issues": 1, 73 | "intelligence": 3, 74 | "shedding_level": 3, 75 | "social_needs": 4, 76 | "stranger_friendly": 4, 77 | "vocalisation": 3, 78 | "experimental": 0, 79 | "hairless": 0, 80 | "natural": 0, 81 | "rare": 0, 82 | "rex": 0, 83 | "suppressed_tail": 0, 84 | "short_legs": 0, 85 | "wikipedia_url": "https://en.wikipedia.org/wiki/Aegean_cat", 86 | "hypoallergenic": 0, 87 | "reference_image_id": "ozEvzdVM-", 88 | "image": { 89 | "id": "ozEvzdVM-", 90 | "width": 1200, 91 | "height": 800, 92 | "url": "https://cdn2.thecatapi.com/images/ozEvzdVM-.jpg" 93 | } 94 | }, 95 | { 96 | "weight": { 97 | "imperial": "7 - 16", 98 | "metric": "3 - 7" 99 | }, 100 | "id": "abob", 101 | "name": "American Bobtail", 102 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/AmericanBobtail.aspx", 103 | "vetstreet_url": "http://www.vetstreet.com/cats/american-bobtail", 104 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/american-bobtail", 105 | "temperament": "Intelligent, Interactive, Lively, Playful, Sensitive", 106 | "origin": "United States", 107 | "country_codes": "US", 108 | "country_code": "US", 109 | "description": "American Bobtails are loving and incredibly intelligent cats possessing a distinctive wild appearance. They are extremely interactive cats that bond with their human family with great devotion.", 110 | "life_span": "11 - 15", 111 | "indoor": 0, 112 | "lap": 1, 113 | "alt_names": "", 114 | "adaptability": 5, 115 | "affection_level": 5, 116 | "child_friendly": 4, 117 | "dog_friendly": 5, 118 | "energy_level": 3, 119 | "grooming": 1, 120 | "health_issues": 1, 121 | "intelligence": 5, 122 | "shedding_level": 3, 123 | "social_needs": 3, 124 | "stranger_friendly": 3, 125 | "vocalisation": 3, 126 | "experimental": 0, 127 | "hairless": 0, 128 | "natural": 0, 129 | "rare": 0, 130 | "rex": 0, 131 | "suppressed_tail": 1, 132 | "short_legs": 0, 133 | "wikipedia_url": "https://en.wikipedia.org/wiki/American_Bobtail", 134 | "hypoallergenic": 0, 135 | "reference_image_id": "hBXicehMA", 136 | "image": { 137 | "id": "hBXicehMA", 138 | "width": 1600, 139 | "height": 951, 140 | "url": "https://cdn2.thecatapi.com/images/hBXicehMA.jpg" 141 | } 142 | }, 143 | { 144 | "weight": { 145 | "imperial": "5 - 10", 146 | "metric": "2 - 5" 147 | }, 148 | "id": "acur", 149 | "name": "American Curl", 150 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/AmericanCurl.aspx", 151 | "vetstreet_url": "http://www.vetstreet.com/cats/american-curl", 152 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/american-curl", 153 | "temperament": "Affectionate, Curious, Intelligent, Interactive, Lively, Playful, Social", 154 | "origin": "United States", 155 | "country_codes": "US", 156 | "country_code": "US", 157 | "description": "Distinguished by truly unique ears that curl back in a graceful arc, offering an alert, perky, happily surprised expression, they cause people to break out into a big smile when viewing their first Curl. Curls are very people-oriented, faithful, affectionate soulmates, adjusting remarkably fast to other pets, children, and new situations.", 158 | "life_span": "12 - 16", 159 | "indoor": 0, 160 | "lap": 1, 161 | "alt_names": "", 162 | "adaptability": 5, 163 | "affection_level": 5, 164 | "child_friendly": 4, 165 | "dog_friendly": 5, 166 | "energy_level": 3, 167 | "grooming": 2, 168 | "health_issues": 1, 169 | "intelligence": 3, 170 | "shedding_level": 3, 171 | "social_needs": 3, 172 | "stranger_friendly": 3, 173 | "vocalisation": 3, 174 | "experimental": 0, 175 | "hairless": 0, 176 | "natural": 0, 177 | "rare": 0, 178 | "rex": 0, 179 | "suppressed_tail": 0, 180 | "short_legs": 0, 181 | "wikipedia_url": "https://en.wikipedia.org/wiki/American_Curl", 182 | "hypoallergenic": 0, 183 | "reference_image_id": "xnsqonbjW", 184 | "image": { 185 | "id": "xnsqonbjW", 186 | "width": 1000, 187 | "height": 964, 188 | "url": "https://cdn2.thecatapi.com/images/xnsqonbjW.jpg" 189 | } 190 | }, 191 | { 192 | "weight": { 193 | "imperial": "8 - 15", 194 | "metric": "4 - 7" 195 | }, 196 | "id": "asho", 197 | "name": "American Shorthair", 198 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/AmericanShorthair.aspx", 199 | "vetstreet_url": "http://www.vetstreet.com/cats/american-shorthair", 200 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/american-shorthair", 201 | "temperament": "Active, Curious, Easy Going, Playful, Calm", 202 | "origin": "United States", 203 | "country_codes": "US", 204 | "country_code": "US", 205 | "description": "The American Shorthair is known for its longevity, robust health, good looks, sweet personality, and amiability with children, dogs, and other pets.", 206 | "life_span": "15 - 17", 207 | "indoor": 0, 208 | "lap": 1, 209 | "alt_names": "Domestic Shorthair", 210 | "adaptability": 5, 211 | "affection_level": 5, 212 | "child_friendly": 4, 213 | "dog_friendly": 5, 214 | "energy_level": 3, 215 | "grooming": 1, 216 | "health_issues": 3, 217 | "intelligence": 3, 218 | "shedding_level": 3, 219 | "social_needs": 4, 220 | "stranger_friendly": 3, 221 | "vocalisation": 3, 222 | "experimental": 0, 223 | "hairless": 0, 224 | "natural": 1, 225 | "rare": 0, 226 | "rex": 0, 227 | "suppressed_tail": 0, 228 | "short_legs": 0, 229 | "wikipedia_url": "https://en.wikipedia.org/wiki/American_Shorthair", 230 | "hypoallergenic": 0, 231 | "reference_image_id": "JFPROfGtQ", 232 | "image": { 233 | "id": "JFPROfGtQ", 234 | "width": 1600, 235 | "height": 1200, 236 | "url": "https://cdn2.thecatapi.com/images/JFPROfGtQ.jpg" 237 | } 238 | }, 239 | { 240 | "weight": { 241 | "imperial": "8 - 15", 242 | "metric": "4 - 7" 243 | }, 244 | "id": "awir", 245 | "name": "American Wirehair", 246 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/AmericanWirehair.aspx", 247 | "vetstreet_url": "http://www.vetstreet.com/cats/american-wirehair", 248 | "temperament": "Affectionate, Curious, Gentle, Intelligent, Interactive, Lively, Loyal, Playful, Sensible, Social", 249 | "origin": "United States", 250 | "country_codes": "US", 251 | "country_code": "US", 252 | "description": "The American Wirehair tends to be a calm and tolerant cat who takes life as it comes. His favorite hobby is bird-watching from a sunny windowsill, and his hunting ability will stand you in good stead if insects enter the house.", 253 | "life_span": "14 - 18", 254 | "indoor": 0, 255 | "lap": 1, 256 | "alt_names": "", 257 | "adaptability": 5, 258 | "affection_level": 5, 259 | "child_friendly": 4, 260 | "dog_friendly": 5, 261 | "energy_level": 3, 262 | "grooming": 1, 263 | "health_issues": 3, 264 | "intelligence": 3, 265 | "shedding_level": 1, 266 | "social_needs": 3, 267 | "stranger_friendly": 3, 268 | "vocalisation": 3, 269 | "experimental": 0, 270 | "hairless": 0, 271 | "natural": 0, 272 | "rare": 0, 273 | "rex": 0, 274 | "suppressed_tail": 0, 275 | "short_legs": 0, 276 | "wikipedia_url": "https://en.wikipedia.org/wiki/American_Wirehair", 277 | "hypoallergenic": 0, 278 | "reference_image_id": "8D--jCd21", 279 | "image": { 280 | "id": "8D--jCd21", 281 | "width": 1280, 282 | "height": 936, 283 | "url": "https://cdn2.thecatapi.com/images/8D--jCd21.jpg" 284 | } 285 | }, 286 | { 287 | "weight": { 288 | "imperial": "8 - 16", 289 | "metric": "4 - 7" 290 | }, 291 | "id": "amau", 292 | "name": "Arabian Mau", 293 | "vcahospitals_url": "", 294 | "temperament": "Affectionate, Agile, Curious, Independent, Playful, Loyal", 295 | "origin": "United Arab Emirates", 296 | "country_codes": "AE", 297 | "country_code": "AE", 298 | "description": "Arabian Mau cats are social and energetic. Due to their energy levels, these cats do best in homes where their owners will be able to provide them with plenty of playtime, attention and interaction from their owners. These kitties are friendly, intelligent, and adaptable, and will even get along well with other pets and children.", 299 | "life_span": "12 - 14", 300 | "indoor": 0, 301 | "alt_names": "Alley cat", 302 | "adaptability": 5, 303 | "affection_level": 5, 304 | "child_friendly": 4, 305 | "dog_friendly": 5, 306 | "energy_level": 4, 307 | "grooming": 1, 308 | "health_issues": 1, 309 | "intelligence": 3, 310 | "shedding_level": 1, 311 | "social_needs": 3, 312 | "stranger_friendly": 3, 313 | "vocalisation": 1, 314 | "experimental": 0, 315 | "hairless": 0, 316 | "natural": 1, 317 | "rare": 0, 318 | "rex": 0, 319 | "suppressed_tail": 0, 320 | "short_legs": 0, 321 | "wikipedia_url": "https://en.wikipedia.org/wiki/Arabian_Mau", 322 | "hypoallergenic": 0, 323 | "reference_image_id": "k71ULYfRr", 324 | "image": { 325 | "id": "k71ULYfRr", 326 | "width": 2048, 327 | "height": 1554, 328 | "url": "https://cdn2.thecatapi.com/images/k71ULYfRr.jpg" 329 | } 330 | }, 331 | { 332 | "weight": { 333 | "imperial": "7 - 15", 334 | "metric": "3 - 7" 335 | }, 336 | "id": "amis", 337 | "name": "Australian Mist", 338 | "temperament": "Lively, Social, Fun-loving, Relaxed, Affectionate", 339 | "origin": "Australia", 340 | "country_codes": "AU", 341 | "country_code": "AU", 342 | "description": "The Australian Mist thrives on human companionship. Tolerant of even the youngest of children, these friendly felines enjoy playing games and being part of the hustle and bustle of a busy household. They make entertaining companions for people of all ages, and are happy to remain indoors between dusk and dawn or to be wholly indoor pets.", 343 | "life_span": "12 - 16", 344 | "indoor": 0, 345 | "lap": 1, 346 | "alt_names": "Spotted Mist", 347 | "adaptability": 5, 348 | "affection_level": 5, 349 | "child_friendly": 4, 350 | "dog_friendly": 5, 351 | "energy_level": 4, 352 | "grooming": 3, 353 | "health_issues": 1, 354 | "intelligence": 4, 355 | "shedding_level": 3, 356 | "social_needs": 4, 357 | "stranger_friendly": 4, 358 | "vocalisation": 3, 359 | "experimental": 0, 360 | "hairless": 0, 361 | "natural": 0, 362 | "rare": 0, 363 | "rex": 0, 364 | "suppressed_tail": 0, 365 | "short_legs": 0, 366 | "wikipedia_url": "https://en.wikipedia.org/wiki/Australian_Mist", 367 | "hypoallergenic": 0, 368 | "reference_image_id": "_6x-3TiCA", 369 | "image": { 370 | "id": "_6x-3TiCA", 371 | "width": 1231, 372 | "height": 1165, 373 | "url": "https://cdn2.thecatapi.com/images/_6x-3TiCA.jpg" 374 | } 375 | }, 376 | { 377 | "weight": { 378 | "imperial": "4 - 10", 379 | "metric": "2 - 5" 380 | }, 381 | "id": "bali", 382 | "name": "Balinese", 383 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/Balinese.aspx", 384 | "vetstreet_url": "http://www.vetstreet.com/cats/balinese", 385 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/balinese", 386 | "temperament": "Affectionate, Intelligent, Playful", 387 | "origin": "United States", 388 | "country_codes": "US", 389 | "country_code": "US", 390 | "description": "Balinese are curious, outgoing, intelligent cats with excellent communication skills. They are known for their chatty personalities and are always eager to tell you their views on life, love, and what you’ve served them for dinner. ", 391 | "life_span": "10 - 15", 392 | "indoor": 0, 393 | "alt_names": "Long-haired Siamese", 394 | "adaptability": 5, 395 | "affection_level": 5, 396 | "child_friendly": 4, 397 | "dog_friendly": 5, 398 | "energy_level": 5, 399 | "grooming": 3, 400 | "health_issues": 3, 401 | "intelligence": 5, 402 | "shedding_level": 3, 403 | "social_needs": 5, 404 | "stranger_friendly": 5, 405 | "vocalisation": 5, 406 | "experimental": 0, 407 | "hairless": 0, 408 | "natural": 0, 409 | "rare": 0, 410 | "rex": 0, 411 | "suppressed_tail": 0, 412 | "short_legs": 0, 413 | "wikipedia_url": "https://en.wikipedia.org/wiki/Balinese_(cat)", 414 | "hypoallergenic": 1, 415 | "reference_image_id": "13MkvUreZ", 416 | "image": { 417 | "id": "13MkvUreZ", 418 | "width": 1600, 419 | "height": 1000, 420 | "url": "https://cdn2.thecatapi.com/images/13MkvUreZ.jpg" 421 | } 422 | }, 423 | { 424 | "weight": { 425 | "imperial": "4 - 9", 426 | "metric": "2 - 4" 427 | }, 428 | "id": "bamb", 429 | "name": "Bambino", 430 | "temperament": "Affectionate, Lively, Friendly, Intelligent", 431 | "origin": "United States", 432 | "country_codes": "US", 433 | "country_code": "US", 434 | "description": "The Bambino is a breed of cat that was created as a cross between the Sphynx and the Munchkin breeds. The Bambino cat has short legs, large upright ears, and is usually hairless. They love to be handled and cuddled up on the laps of their family members.", 435 | "life_span": "12 - 14", 436 | "indoor": 0, 437 | "lap": 1, 438 | "alt_names": "", 439 | "adaptability": 5, 440 | "affection_level": 5, 441 | "child_friendly": 4, 442 | "dog_friendly": 5, 443 | "energy_level": 5, 444 | "grooming": 1, 445 | "health_issues": 1, 446 | "intelligence": 5, 447 | "shedding_level": 1, 448 | "social_needs": 3, 449 | "stranger_friendly": 3, 450 | "vocalisation": 3, 451 | "experimental": 1, 452 | "hairless": 1, 453 | "natural": 0, 454 | "rare": 0, 455 | "rex": 0, 456 | "suppressed_tail": 0, 457 | "short_legs": 1, 458 | "wikipedia_url": "https://en.wikipedia.org/wiki/Bambino_cat", 459 | "hypoallergenic": 0, 460 | "reference_image_id": "5AdhMjeEu", 461 | "image": { 462 | "id": "5AdhMjeEu", 463 | "width": 1296, 464 | "height": 1030, 465 | "url": "https://cdn2.thecatapi.com/images/5AdhMjeEu.jpg" 466 | } 467 | }, 468 | { 469 | "weight": { 470 | "imperial": "6 - 12", 471 | "metric": "3 - 7" 472 | }, 473 | "id": "beng", 474 | "name": "Bengal", 475 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/Bengal.aspx", 476 | "vetstreet_url": "http://www.vetstreet.com/cats/bengal", 477 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/bengal", 478 | "temperament": "Alert, Agile, Energetic, Demanding, Intelligent", 479 | "origin": "United States", 480 | "country_codes": "US", 481 | "country_code": "US", 482 | "description": "Bengals are a lot of fun to live with, but they're definitely not the cat for everyone, or for first-time cat owners. Extremely intelligent, curious and active, they demand a lot of interaction and woe betide the owner who doesn't provide it.", 483 | "life_span": "12 - 15", 484 | "indoor": 0, 485 | "lap": 0, 486 | "adaptability": 5, 487 | "affection_level": 5, 488 | "child_friendly": 4, 489 | "cat_friendly": 4, 490 | "dog_friendly": 5, 491 | "energy_level": 5, 492 | "grooming": 1, 493 | "health_issues": 3, 494 | "intelligence": 5, 495 | "shedding_level": 3, 496 | "social_needs": 5, 497 | "stranger_friendly": 3, 498 | "vocalisation": 5, 499 | "bidability": 3, 500 | "experimental": 0, 501 | "hairless": 0, 502 | "natural": 0, 503 | "rare": 0, 504 | "rex": 0, 505 | "suppressed_tail": 0, 506 | "short_legs": 0, 507 | "wikipedia_url": "https://en.wikipedia.org/wiki/Bengal_(cat)", 508 | "hypoallergenic": 1, 509 | "reference_image_id": "O3btzLlsO", 510 | "image": { 511 | "id": "O3btzLlsO", 512 | "width": 1100, 513 | "height": 739, 514 | "url": "https://cdn2.thecatapi.com/images/O3btzLlsO.png" 515 | } 516 | }, 517 | { 518 | "weight": { 519 | "imperial": "6 - 15", 520 | "metric": "3 - 7" 521 | }, 522 | "id": "birm", 523 | "name": "Birman", 524 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/Birman.aspx", 525 | "vetstreet_url": "http://www.vetstreet.com/cats/birman", 526 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/birman", 527 | "temperament": "Affectionate, Active, Gentle, Social", 528 | "origin": "France", 529 | "country_codes": "FR", 530 | "country_code": "FR", 531 | "description": "The Birman is a docile, quiet cat who loves people and will follow them from room to room. Expect the Birman to want to be involved in what you’re doing. He communicates in a soft voice, mainly to remind you that perhaps it’s time for dinner or maybe for a nice cuddle on the sofa. He enjoys being held and will relax in your arms like a furry baby.", 532 | "life_span": "14 - 15", 533 | "indoor": 0, 534 | "lap": 1, 535 | "alt_names": "Sacred Birman, Sacred Cat Of Burma", 536 | "adaptability": 5, 537 | "affection_level": 5, 538 | "child_friendly": 4, 539 | "dog_friendly": 5, 540 | "energy_level": 3, 541 | "grooming": 2, 542 | "health_issues": 1, 543 | "intelligence": 3, 544 | "shedding_level": 3, 545 | "social_needs": 4, 546 | "stranger_friendly": 3, 547 | "vocalisation": 1, 548 | "experimental": 0, 549 | "hairless": 0, 550 | "natural": 0, 551 | "rare": 0, 552 | "rex": 0, 553 | "suppressed_tail": 0, 554 | "short_legs": 0, 555 | "wikipedia_url": "https://en.wikipedia.org/wiki/Birman", 556 | "hypoallergenic": 0, 557 | "reference_image_id": "HOrX5gwLS", 558 | "image": { 559 | "id": "HOrX5gwLS", 560 | "width": 1376, 561 | "height": 814, 562 | "url": "https://cdn2.thecatapi.com/images/HOrX5gwLS.jpg" 563 | } 564 | }, 565 | { 566 | "weight": { 567 | "imperial": "6 - 11", 568 | "metric": "3 - 5" 569 | }, 570 | "id": "bomb", 571 | "name": "Bombay", 572 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/Bombay.aspx", 573 | "vetstreet_url": "http://www.vetstreet.com/cats/bombay", 574 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/bombay", 575 | "temperament": "Affectionate, Dependent, Gentle, Intelligent, Playful", 576 | "origin": "United States", 577 | "country_codes": "US", 578 | "country_code": "US", 579 | "description": "The the golden eyes and the shiny black coa of the Bopmbay is absolutely striking. Likely to bond most with one family member, the Bombay will follow you from room to room and will almost always have something to say about what you are doing, loving attention and to be carried around, often on his caregiver's shoulder.", 580 | "life_span": "12 - 16", 581 | "indoor": 0, 582 | "lap": 1, 583 | "alt_names": "Small black Panther", 584 | "adaptability": 5, 585 | "affection_level": 5, 586 | "child_friendly": 4, 587 | "dog_friendly": 5, 588 | "energy_level": 3, 589 | "grooming": 1, 590 | "health_issues": 3, 591 | "intelligence": 5, 592 | "shedding_level": 3, 593 | "social_needs": 4, 594 | "stranger_friendly": 4, 595 | "vocalisation": 5, 596 | "experimental": 0, 597 | "hairless": 0, 598 | "natural": 0, 599 | "rare": 0, 600 | "rex": 0, 601 | "suppressed_tail": 0, 602 | "short_legs": 0, 603 | "wikipedia_url": "https://en.wikipedia.org/wiki/Bombay_(cat)", 604 | "hypoallergenic": 0, 605 | "reference_image_id": "5iYq9NmT1", 606 | "image": { 607 | "id": "5iYq9NmT1", 608 | "width": 1250, 609 | "height": 650, 610 | "url": "https://cdn2.thecatapi.com/images/5iYq9NmT1.jpg" 611 | } 612 | }, 613 | { 614 | "weight": { 615 | "imperial": "8 - 18", 616 | "metric": "4 - 8" 617 | }, 618 | "id": "bslo", 619 | "name": "British Longhair", 620 | "temperament": "Affectionate, Easy Going, Independent, Intelligent, Loyal, Social", 621 | "origin": "United Kingdom", 622 | "country_codes": "GB", 623 | "country_code": "GB", 624 | "description": "The British Longhair is a very laid-back relaxed cat, often perceived to be very independent although they will enjoy the company of an equally relaxed and likeminded cat. They are an affectionate breed, but very much on their own terms and tend to prefer to choose to come and sit with their owners rather than being picked up.", 625 | "life_span": "12 - 14", 626 | "indoor": 0, 627 | "alt_names": "", 628 | "adaptability": 5, 629 | "affection_level": 5, 630 | "child_friendly": 4, 631 | "dog_friendly": 5, 632 | "energy_level": 4, 633 | "grooming": 5, 634 | "health_issues": 1, 635 | "intelligence": 5, 636 | "shedding_level": 1, 637 | "social_needs": 3, 638 | "stranger_friendly": 4, 639 | "vocalisation": 1, 640 | "experimental": 0, 641 | "hairless": 0, 642 | "natural": 0, 643 | "rare": 0, 644 | "rex": 0, 645 | "suppressed_tail": 0, 646 | "short_legs": 0, 647 | "wikipedia_url": "https://en.wikipedia.org/wiki/British_Longhair", 648 | "hypoallergenic": 0, 649 | "reference_image_id": "7isAO4Cav", 650 | "image": { 651 | "id": "7isAO4Cav", 652 | "width": 960, 653 | "height": 960, 654 | "url": "https://cdn2.thecatapi.com/images/7isAO4Cav.jpg" 655 | } 656 | }, 657 | { 658 | "weight": { 659 | "imperial": "12 - 20", 660 | "metric": "5 - 9" 661 | }, 662 | "id": "bsho", 663 | "name": "British Shorthair", 664 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/BritishShorthair.aspx", 665 | "vetstreet_url": "http://www.vetstreet.com/cats/british-shorthair", 666 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/british-shorthair", 667 | "temperament": "Affectionate, Easy Going, Gentle, Loyal, Patient, calm", 668 | "origin": "United Kingdom", 669 | "country_codes": "GB", 670 | "country_code": "GB", 671 | "description": "The British Shorthair is a very pleasant cat to have as a companion, ans is easy going and placid. The British is a fiercely loyal, loving cat and will attach herself to every one of her family members. While loving to play, she doesn't need hourly attention. If she is in the mood to play, she will find someone and bring a toy to that person. The British also plays well by herself, and thus is a good companion for single people.", 672 | "life_span": "12 - 17", 673 | "indoor": 0, 674 | "lap": 1, 675 | "alt_names": "Highlander, Highland Straight, Britannica", 676 | "adaptability": 5, 677 | "affection_level": 4, 678 | "child_friendly": 4, 679 | "dog_friendly": 5, 680 | "energy_level": 2, 681 | "grooming": 2, 682 | "health_issues": 2, 683 | "intelligence": 3, 684 | "shedding_level": 4, 685 | "social_needs": 3, 686 | "stranger_friendly": 2, 687 | "vocalisation": 1, 688 | "experimental": 0, 689 | "hairless": 0, 690 | "natural": 1, 691 | "rare": 0, 692 | "rex": 0, 693 | "suppressed_tail": 0, 694 | "short_legs": 0, 695 | "wikipedia_url": "https://en.wikipedia.org/wiki/British_Shorthair", 696 | "hypoallergenic": 0, 697 | "reference_image_id": "s4wQfYoEk", 698 | "image": { 699 | "id": "s4wQfYoEk", 700 | "width": 1600, 701 | "height": 1457, 702 | "url": "https://cdn2.thecatapi.com/images/s4wQfYoEk.jpg" 703 | } 704 | }, 705 | { 706 | "weight": { 707 | "imperial": "6 - 12", 708 | "metric": "3 - 5" 709 | }, 710 | "id": "bure", 711 | "name": "Burmese", 712 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/Burmese.aspx", 713 | "vetstreet_url": "http://www.vetstreet.com/cats/burmese", 714 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/burmese", 715 | "temperament": "Curious, Intelligent, Gentle, Social, Interactive, Playful, Lively", 716 | "origin": "Burma", 717 | "country_codes": "MM", 718 | "country_code": "MM", 719 | "description": "Burmese love being with people, playing with them, and keeping them entertained. They crave close physical contact and abhor an empty lap. They will follow their humans from room to room, and sleep in bed with them, preferably under the covers, cuddled as close as possible. At play, they will turn around to see if their human is watching and being entertained by their crazy antics.", 720 | "life_span": "15 - 16", 721 | "indoor": 0, 722 | "lap": 1, 723 | "alt_names": "", 724 | "adaptability": 5, 725 | "affection_level": 5, 726 | "child_friendly": 4, 727 | "dog_friendly": 5, 728 | "energy_level": 4, 729 | "grooming": 1, 730 | "health_issues": 3, 731 | "intelligence": 5, 732 | "shedding_level": 3, 733 | "social_needs": 5, 734 | "stranger_friendly": 5, 735 | "vocalisation": 5, 736 | "experimental": 0, 737 | "hairless": 0, 738 | "natural": 0, 739 | "rare": 0, 740 | "rex": 0, 741 | "suppressed_tail": 0, 742 | "short_legs": 0, 743 | "wikipedia_url": "https://en.wikipedia.org/wiki/Burmese_(cat)", 744 | "hypoallergenic": 1, 745 | "reference_image_id": "4lXnnfxac", 746 | "image": { 747 | "id": "4lXnnfxac", 748 | "width": 1250, 749 | "height": 650, 750 | "url": "https://cdn2.thecatapi.com/images/4lXnnfxac.jpg" 751 | } 752 | }, 753 | { 754 | "weight": { 755 | "imperial": "6 - 13", 756 | "metric": "3 - 6" 757 | }, 758 | "id": "buri", 759 | "name": "Burmilla", 760 | "cfa_url": "http://cfa.org/Breeds/BreedsAB/Burmilla.aspx", 761 | "vetstreet_url": "http://www.vetstreet.com/cats/burmilla", 762 | "temperament": "Easy Going, Friendly, Intelligent, Lively, Playful, Social", 763 | "origin": "United Kingdom", 764 | "country_codes": "GB", 765 | "country_code": "GB", 766 | "description": "The Burmilla is a fairly placid cat. She tends to be an easy cat to get along with, requiring minimal care. The Burmilla is affectionate and sweet and makes a good companion, the Burmilla is an ideal companion to while away a lonely evening. Loyal, devoted, and affectionate, this cat will stay by its owner, always keeping them company.", 767 | "life_span": "10 - 15", 768 | "indoor": 0, 769 | "lap": 1, 770 | "alt_names": "", 771 | "adaptability": 5, 772 | "affection_level": 5, 773 | "child_friendly": 4, 774 | "dog_friendly": 4, 775 | "energy_level": 3, 776 | "grooming": 3, 777 | "health_issues": 3, 778 | "intelligence": 3, 779 | "shedding_level": 3, 780 | "social_needs": 4, 781 | "stranger_friendly": 3, 782 | "vocalisation": 5, 783 | "experimental": 0, 784 | "hairless": 0, 785 | "natural": 0, 786 | "rare": 0, 787 | "rex": 0, 788 | "suppressed_tail": 0, 789 | "short_legs": 0, 790 | "wikipedia_url": "https://en.wikipedia.org/wiki/Burmilla", 791 | "hypoallergenic": 0, 792 | "reference_image_id": "jvg3XfEdC", 793 | "image": { 794 | "id": "jvg3XfEdC", 795 | "width": 960, 796 | "height": 960, 797 | "url": "https://cdn2.thecatapi.com/images/jvg3XfEdC.jpg" 798 | } 799 | }, 800 | { 801 | "weight": { 802 | "imperial": "10 - 15", 803 | "metric": "5 - 7" 804 | }, 805 | "id": "cspa", 806 | "name": "California Spangled", 807 | "temperament": "Affectionate, Curious, Intelligent, Loyal, Social", 808 | "origin": "United States", 809 | "country_codes": "US", 810 | "country_code": "US", 811 | "description": "Perhaps the only thing about the California spangled cat that isn’t wild-like is its personality. Known to be affectionate, gentle and sociable, this breed enjoys spending a great deal of time with its owners. They are very playful, often choosing to perch in high locations and show off their acrobatic skills.", 812 | "life_span": "10 - 14", 813 | "indoor": 0, 814 | "alt_names": "Spangle", 815 | "adaptability": 5, 816 | "affection_level": 5, 817 | "child_friendly": 4, 818 | "dog_friendly": 5, 819 | "energy_level": 5, 820 | "grooming": 1, 821 | "health_issues": 1, 822 | "intelligence": 5, 823 | "shedding_level": 1, 824 | "social_needs": 3, 825 | "stranger_friendly": 4, 826 | "vocalisation": 1, 827 | "experimental": 0, 828 | "hairless": 0, 829 | "natural": 0, 830 | "rare": 0, 831 | "rex": 0, 832 | "suppressed_tail": 0, 833 | "short_legs": 0, 834 | "wikipedia_url": "https://en.wikipedia.org/wiki/California_Spangled", 835 | "hypoallergenic": 0, 836 | "reference_image_id": "B1ERTmgph", 837 | "image": { 838 | "id": "B1ERTmgph", 839 | "width": 1200, 840 | "height": 688, 841 | "url": "https://cdn2.thecatapi.com/images/B1ERTmgph.jpg" 842 | } 843 | }, 844 | { 845 | "weight": { 846 | "imperial": "7 - 12", 847 | "metric": "3 - 5" 848 | }, 849 | "id": "ctif", 850 | "name": "Chantilly-Tiffany", 851 | "temperament": "Affectionate, Demanding, Interactive, Loyal", 852 | "origin": "United States", 853 | "country_codes": "US", 854 | "country_code": "US", 855 | "description": "The Chantilly is a devoted companion and prefers company to being left alone. While the Chantilly is not demanding, she will \"chirp\" and \"talk\" as if having a conversation. This breed is affectionate, with a sweet temperament. It can stay still for extended periods, happily lounging in the lap of its loved one. This quality makes the Tiffany an ideal traveling companion, and an ideal house companion for senior citizens and the physically handicapped.", 856 | "life_span": "14 - 16", 857 | "indoor": 0, 858 | "lap": 1, 859 | "alt_names": "Chantilly, Foreign Longhair", 860 | "adaptability": 5, 861 | "affection_level": 5, 862 | "child_friendly": 4, 863 | "dog_friendly": 5, 864 | "energy_level": 4, 865 | "grooming": 5, 866 | "health_issues": 1, 867 | "intelligence": 5, 868 | "shedding_level": 5, 869 | "social_needs": 3, 870 | "stranger_friendly": 4, 871 | "vocalisation": 5, 872 | "experimental": 0, 873 | "hairless": 0, 874 | "natural": 0, 875 | "rare": 0, 876 | "rex": 0, 877 | "suppressed_tail": 0, 878 | "short_legs": 0, 879 | "wikipedia_url": "https://en.wikipedia.org/wiki/Chantilly-Tiffany", 880 | "hypoallergenic": 0, 881 | "reference_image_id": "TR-5nAd_S", 882 | "image": { 883 | "id": "TR-5nAd_S", 884 | "width": 2901, 885 | "height": 2938, 886 | "url": "https://cdn2.thecatapi.com/images/TR-5nAd_S.jpg" 887 | } 888 | }, 889 | { 890 | "weight": { 891 | "imperial": "6 - 15", 892 | "metric": "3 - 7" 893 | }, 894 | "id": "char", 895 | "name": "Chartreux", 896 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/Chartreux.aspx", 897 | "vetstreet_url": "http://www.vetstreet.com/cats/chartreux", 898 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/chartreux", 899 | "temperament": "Affectionate, Loyal, Intelligent, Social, Lively, Playful", 900 | "origin": "France", 901 | "country_codes": "FR", 902 | "country_code": "FR", 903 | "description": "The Chartreux is generally silent but communicative. Short play sessions, mixed with naps and meals are their perfect day. Whilst appreciating any attention you give them, they are not demanding, content instead to follow you around devotedly, sleep on your bed and snuggle with you if you’re not feeling well.", 904 | "life_span": "12 - 15", 905 | "indoor": 0, 906 | "lap": 1, 907 | "alt_names": "", 908 | "adaptability": 5, 909 | "affection_level": 5, 910 | "child_friendly": 4, 911 | "dog_friendly": 5, 912 | "energy_level": 2, 913 | "grooming": 1, 914 | "health_issues": 2, 915 | "intelligence": 4, 916 | "shedding_level": 3, 917 | "social_needs": 5, 918 | "stranger_friendly": 5, 919 | "vocalisation": 1, 920 | "experimental": 0, 921 | "hairless": 0, 922 | "natural": 0, 923 | "rare": 0, 924 | "rex": 1, 925 | "suppressed_tail": 0, 926 | "short_legs": 0, 927 | "wikipedia_url": "https://en.wikipedia.org/wiki/Chartreux", 928 | "hypoallergenic": 1, 929 | "reference_image_id": "j6oFGLpRG", 930 | "image": { 931 | "id": "j6oFGLpRG", 932 | "width": 768, 933 | "height": 1024, 934 | "url": "https://cdn2.thecatapi.com/images/j6oFGLpRG.jpg" 935 | } 936 | }, 937 | { 938 | "weight": { 939 | "imperial": "7 - 15", 940 | "metric": "3 - 7" 941 | }, 942 | "id": "chau", 943 | "name": "Chausie", 944 | "temperament": "Affectionate, Intelligent, Playful, Social", 945 | "origin": "Egypt", 946 | "country_codes": "EG", 947 | "country_code": "EG", 948 | "description": "For those owners who desire a feline capable of evoking the great outdoors, the strikingly beautiful Chausie retains a bit of the wild in its appearance but has the house manners of our friendly, familiar moggies. Very playful, this cat needs a large amount of space to be able to fully embrace its hunting instincts.", 949 | "life_span": "12 - 14", 950 | "indoor": 0, 951 | "alt_names": "Nile Cat", 952 | "adaptability": 5, 953 | "affection_level": 5, 954 | "child_friendly": 4, 955 | "dog_friendly": 5, 956 | "energy_level": 4, 957 | "grooming": 3, 958 | "health_issues": 1, 959 | "intelligence": 5, 960 | "shedding_level": 3, 961 | "social_needs": 3, 962 | "stranger_friendly": 4, 963 | "vocalisation": 1, 964 | "experimental": 1, 965 | "hairless": 0, 966 | "natural": 0, 967 | "rare": 0, 968 | "rex": 0, 969 | "suppressed_tail": 0, 970 | "short_legs": 0, 971 | "wikipedia_url": "https://en.wikipedia.org/wiki/Chausie", 972 | "hypoallergenic": 0, 973 | "reference_image_id": "vJ3lEYgXr", 974 | "image": { 975 | "id": "vJ3lEYgXr", 976 | "width": 1100, 977 | "height": 786, 978 | "url": "https://cdn2.thecatapi.com/images/vJ3lEYgXr.jpg" 979 | } 980 | }, 981 | { 982 | "weight": { 983 | "imperial": "8 - 15", 984 | "metric": "4 - 7" 985 | }, 986 | "id": "chee", 987 | "name": "Cheetoh", 988 | "temperament": "Affectionate, Gentle, Intelligent, Social", 989 | "origin": "United States", 990 | "country_codes": "US", 991 | "country_code": "US", 992 | "description": "The Cheetoh has a super affectionate nature and real love for their human companions; they are intelligent with the ability to learn quickly. You can expect that a Cheetoh will be a fun-loving kitty who enjoys playing, running, and jumping through every room in your house.", 993 | "life_span": "12 - 14", 994 | "indoor": 0, 995 | "alt_names": " ", 996 | "adaptability": 5, 997 | "affection_level": 5, 998 | "child_friendly": 4, 999 | "dog_friendly": 5, 1000 | "energy_level": 4, 1001 | "grooming": 1, 1002 | "health_issues": 1, 1003 | "intelligence": 5, 1004 | "shedding_level": 1, 1005 | "social_needs": 3, 1006 | "stranger_friendly": 4, 1007 | "vocalisation": 5, 1008 | "experimental": 0, 1009 | "hairless": 0, 1010 | "natural": 0, 1011 | "rare": 0, 1012 | "rex": 0, 1013 | "suppressed_tail": 0, 1014 | "short_legs": 0, 1015 | "wikipedia_url": "https://en.wikipedia.org/wiki/Bengal_cat#Cheetoh", 1016 | "hypoallergenic": 0, 1017 | "reference_image_id": "IFXsxmXLm", 1018 | "image": { 1019 | "id": "IFXsxmXLm", 1020 | "width": 973, 1021 | "height": 973, 1022 | "url": "https://cdn2.thecatapi.com/images/IFXsxmXLm.jpg" 1023 | } 1024 | }, 1025 | { 1026 | "weight": { 1027 | "imperial": "4 - 10", 1028 | "metric": "2 - 5" 1029 | }, 1030 | "id": "csho", 1031 | "name": "Colorpoint Shorthair", 1032 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/ColorpointShorthair.aspx", 1033 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/colorpoint-shorthair", 1034 | "temperament": "Affectionate, Intelligent, Playful, Social", 1035 | "origin": "United States", 1036 | "country_codes": "US", 1037 | "country_code": "US", 1038 | "description": "Colorpoint Shorthairs are an affectionate breed, devoted and loyal to their people. Sensitive to their owner’s moods, Colorpoints are more than happy to sit at your side or on your lap and purr words of encouragement on a bad day. They will constantly seek out your lap whenever it is open and in the moments when your lap is preoccupied they will stretch out in sunny spots on the ground.", 1039 | "life_span": "12 - 16", 1040 | "indoor": 0, 1041 | "lap": 1, 1042 | "alt_names": "", 1043 | "adaptability": 3, 1044 | "affection_level": 4, 1045 | "child_friendly": 4, 1046 | "cat_friendly": 3, 1047 | "dog_friendly": 4, 1048 | "energy_level": 4, 1049 | "grooming": 2, 1050 | "health_issues": 2, 1051 | "intelligence": 5, 1052 | "shedding_level": 3, 1053 | "social_needs": 4, 1054 | "stranger_friendly": 2, 1055 | "vocalisation": 5, 1056 | "bidability": 4, 1057 | "experimental": 0, 1058 | "hairless": 0, 1059 | "natural": 0, 1060 | "rare": 0, 1061 | "rex": 0, 1062 | "suppressed_tail": 0, 1063 | "short_legs": 0, 1064 | "wikipedia_url": "https://en.wikipedia.org/wiki/Colorpoint_Shorthair", 1065 | "hypoallergenic": 0, 1066 | "reference_image_id": "oSpqGyUDS", 1067 | "image": { 1068 | "id": "oSpqGyUDS", 1069 | "width": 1363, 1070 | "height": 1600, 1071 | "url": "https://cdn2.thecatapi.com/images/oSpqGyUDS.jpg" 1072 | } 1073 | }, 1074 | { 1075 | "weight": { 1076 | "imperial": "5 - 9", 1077 | "metric": "2 - 4" 1078 | }, 1079 | "id": "crex", 1080 | "name": "Cornish Rex", 1081 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/CornishRex.aspx", 1082 | "vetstreet_url": "http://www.vetstreet.com/cats/cornish-rex", 1083 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/cornish-rex", 1084 | "temperament": "Affectionate, Intelligent, Active, Curious, Playful", 1085 | "origin": "United Kingdom", 1086 | "country_codes": "GB", 1087 | "country_code": "GB", 1088 | "description": "This is a confident cat who loves people and will follow them around, waiting for any opportunity to sit in a lap or give a kiss. He enjoys being handled, making it easy to take him to the veterinarian or train him for therapy work. The Cornish Rex stay in kitten mode most of their lives and well into their senior years. ", 1089 | "life_span": "11 - 14", 1090 | "indoor": 0, 1091 | "lap": 1, 1092 | "alt_names": "", 1093 | "adaptability": 5, 1094 | "affection_level": 5, 1095 | "child_friendly": 4, 1096 | "cat_friendly": 2, 1097 | "dog_friendly": 5, 1098 | "energy_level": 5, 1099 | "grooming": 1, 1100 | "health_issues": 2, 1101 | "intelligence": 5, 1102 | "shedding_level": 1, 1103 | "social_needs": 5, 1104 | "stranger_friendly": 3, 1105 | "vocalisation": 1, 1106 | "experimental": 0, 1107 | "hairless": 0, 1108 | "natural": 0, 1109 | "rare": 0, 1110 | "rex": 1, 1111 | "suppressed_tail": 0, 1112 | "short_legs": 0, 1113 | "wikipedia_url": "https://en.wikipedia.org/wiki/Cornish_Rex", 1114 | "hypoallergenic": 1, 1115 | "reference_image_id": "unX21IBVB", 1116 | "image": { 1117 | "id": "unX21IBVB", 1118 | "width": 2976, 1119 | "height": 1784, 1120 | "url": "https://cdn2.thecatapi.com/images/unX21IBVB.jpg" 1121 | } 1122 | }, 1123 | { 1124 | "weight": { 1125 | "imperial": "8 - 13", 1126 | "metric": "4 - 6" 1127 | }, 1128 | "id": "cymr", 1129 | "name": "Cymric", 1130 | "vetstreet_url": "http://www.vetstreet.com/cats/cymric", 1131 | "temperament": "Gentle, Loyal, Intelligent, Playful", 1132 | "origin": "Canada", 1133 | "country_codes": "CA", 1134 | "country_code": "CA", 1135 | "description": "The Cymric is a placid, sweet cat. They do not get too upset about anything that happens in their world. They are loving companions and adore people. They are smart and dexterous, capable of using his paws to get into cabinets or to open doors.", 1136 | "life_span": "8 - 14", 1137 | "indoor": 0, 1138 | "lap": 1, 1139 | "alt_names": "Spangle", 1140 | "adaptability": 5, 1141 | "affection_level": 5, 1142 | "child_friendly": 4, 1143 | "dog_friendly": 5, 1144 | "energy_level": 5, 1145 | "grooming": 3, 1146 | "health_issues": 3, 1147 | "intelligence": 5, 1148 | "shedding_level": 5, 1149 | "social_needs": 5, 1150 | "stranger_friendly": 3, 1151 | "vocalisation": 3, 1152 | "experimental": 0, 1153 | "hairless": 0, 1154 | "natural": 0, 1155 | "rare": 0, 1156 | "rex": 0, 1157 | "suppressed_tail": 1, 1158 | "short_legs": 0, 1159 | "wikipedia_url": "https://en.wikipedia.org/wiki/Cymric_(cat)", 1160 | "hypoallergenic": 0, 1161 | "reference_image_id": "3dbtapCWM", 1162 | "image": { 1163 | "id": "3dbtapCWM", 1164 | "width": 1440, 1165 | "height": 900, 1166 | "url": "https://cdn2.thecatapi.com/images/3dbtapCWM.jpg" 1167 | } 1168 | }, 1169 | { 1170 | "weight": { 1171 | "imperial": "8 - 16", 1172 | "metric": "4 - 7" 1173 | }, 1174 | "id": "cypr", 1175 | "name": "Cyprus", 1176 | "temperament": "Affectionate, Social", 1177 | "origin": "Cyprus", 1178 | "country_codes": "CY", 1179 | "country_code": "CY", 1180 | "description": "Loving, loyal, social and inquisitive, the Cyprus cat forms strong ties with their families and love nothing more than to be involved in everything that goes on in their surroundings. They are not overly active by nature which makes them the perfect companion for people who would like to share their homes with a laid-back relaxed feline companion. ", 1181 | "life_span": "12 - 15", 1182 | "indoor": 0, 1183 | "lap": 1, 1184 | "alt_names": "Cypriot cat", 1185 | "adaptability": 5, 1186 | "affection_level": 5, 1187 | "child_friendly": 4, 1188 | "dog_friendly": 5, 1189 | "energy_level": 4, 1190 | "grooming": 3, 1191 | "health_issues": 1, 1192 | "intelligence": 3, 1193 | "shedding_level": 3, 1194 | "social_needs": 3, 1195 | "stranger_friendly": 4, 1196 | "vocalisation": 3, 1197 | "experimental": 0, 1198 | "hairless": 0, 1199 | "natural": 1, 1200 | "rare": 0, 1201 | "rex": 0, 1202 | "suppressed_tail": 0, 1203 | "short_legs": 0, 1204 | "wikipedia_url": "https://en.wikipedia.org/wiki/Cyprus_cat", 1205 | "hypoallergenic": 0, 1206 | "reference_image_id": "tJbzb7FKo", 1207 | "image": { 1208 | "id": "tJbzb7FKo", 1209 | "width": 1024, 1210 | "height": 768, 1211 | "url": "https://cdn2.thecatapi.com/images/tJbzb7FKo.jpg" 1212 | } 1213 | }, 1214 | { 1215 | "weight": { 1216 | "imperial": "5 - 10", 1217 | "metric": "2 - 5" 1218 | }, 1219 | "id": "drex", 1220 | "name": "Devon Rex", 1221 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/DevonRex.aspx", 1222 | "vetstreet_url": "http://www.vetstreet.com/cats/devon-rex", 1223 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/devon-rex", 1224 | "temperament": "Highly interactive, Mischievous, Loyal, Social, Playful", 1225 | "origin": "United Kingdom", 1226 | "country_codes": "GB", 1227 | "country_code": "GB", 1228 | "description": "The favourite perch of the Devon Rex is right at head level, on the shoulder of her favorite person. She takes a lively interest in everything that is going on and refuses to be left out of any activity. Count on her to stay as close to you as possible, occasionally communicating his opinions in a quiet voice. She loves people and welcomes the attentions of friends and family alike.", 1229 | "life_span": "10 - 15", 1230 | "indoor": 0, 1231 | "lap": 1, 1232 | "alt_names": "Pixie cat, Alien cat, Poodle cat", 1233 | "adaptability": 5, 1234 | "affection_level": 5, 1235 | "child_friendly": 4, 1236 | "dog_friendly": 5, 1237 | "energy_level": 5, 1238 | "grooming": 1, 1239 | "health_issues": 3, 1240 | "intelligence": 5, 1241 | "shedding_level": 1, 1242 | "social_needs": 5, 1243 | "stranger_friendly": 5, 1244 | "vocalisation": 1, 1245 | "experimental": 0, 1246 | "hairless": 0, 1247 | "natural": 0, 1248 | "rare": 0, 1249 | "rex": 1, 1250 | "suppressed_tail": 0, 1251 | "short_legs": 0, 1252 | "wikipedia_url": "https://en.wikipedia.org/wiki/Devon_Rex", 1253 | "hypoallergenic": 1, 1254 | "reference_image_id": "4RzEwvyzz", 1255 | "image": { 1256 | "id": "4RzEwvyzz", 1257 | "width": 1729, 1258 | "height": 1160, 1259 | "url": "https://cdn2.thecatapi.com/images/4RzEwvyzz.png" 1260 | } 1261 | }, 1262 | { 1263 | "weight": { 1264 | "imperial": "10 - 12", 1265 | "metric": "5 - 6" 1266 | }, 1267 | "id": "dons", 1268 | "name": "Donskoy", 1269 | "temperament": "Playful, affectionate, loyal, social", 1270 | "origin": "Russia", 1271 | "country_codes": "RU", 1272 | "country_code": "RU", 1273 | "description": "Donskoy are affectionate, intelligent, and easy-going. They demand lots of attention and interaction. The Donskoy also gets along well with other pets. It is now thought the same gene that causes degrees of hairlessness in the Donskoy also causes alterations in cat personality, making them calmer the less hair they have.", 1274 | "life_span": "12 - 15", 1275 | "indoor": 0, 1276 | "adaptability": 4, 1277 | "affection_level": 4, 1278 | "child_friendly": 3, 1279 | "cat_friendly": 3, 1280 | "dog_friendly": 3, 1281 | "energy_level": 4, 1282 | "grooming": 2, 1283 | "health_issues": 3, 1284 | "intelligence": 3, 1285 | "shedding_level": 1, 1286 | "social_needs": 5, 1287 | "stranger_friendly": 5, 1288 | "vocalisation": 2, 1289 | "experimental": 0, 1290 | "hairless": 1, 1291 | "natural": 0, 1292 | "rare": 1, 1293 | "rex": 0, 1294 | "suppressed_tail": 0, 1295 | "short_legs": 0, 1296 | "wikipedia_url": "https://en.wikipedia.org/wiki/Donskoy_(cat)", 1297 | "hypoallergenic": 0, 1298 | "reference_image_id": "3KG57GfMW", 1299 | "image": { 1300 | "id": "3KG57GfMW", 1301 | "width": 750, 1302 | "height": 750, 1303 | "url": "https://cdn2.thecatapi.com/images/3KG57GfMW.jpg" 1304 | } 1305 | }, 1306 | { 1307 | "weight": { 1308 | "imperial": "9 - 12", 1309 | "metric": "4 - 6" 1310 | }, 1311 | "id": "lihu", 1312 | "name": "Dragon Li", 1313 | "vetstreet_url": "http://www.vetstreet.com/cats/li-hua", 1314 | "temperament": "Intelligent, Friendly, Gentle, Loving, Loyal", 1315 | "origin": "China", 1316 | "country_codes": "CN", 1317 | "country_code": "CN", 1318 | "description": "The Dragon Li is loyal, but not particularly affectionate. They are known to be very intelligent, and their natural breed status means that they're very active. She is is gentle with people, and has a reputation as a talented hunter of rats and other vermin.", 1319 | "life_span": "12 - 15", 1320 | "indoor": 1, 1321 | "alt_names": "Chinese Lia Hua, Lí hua māo (貍花貓), Li Hua", 1322 | "adaptability": 3, 1323 | "affection_level": 3, 1324 | "child_friendly": 3, 1325 | "cat_friendly": 3, 1326 | "dog_friendly": 3, 1327 | "energy_level": 3, 1328 | "grooming": 1, 1329 | "health_issues": 1, 1330 | "intelligence": 3, 1331 | "shedding_level": 3, 1332 | "social_needs": 4, 1333 | "stranger_friendly": 3, 1334 | "vocalisation": 3, 1335 | "experimental": 0, 1336 | "hairless": 0, 1337 | "natural": 1, 1338 | "rare": 0, 1339 | "rex": 0, 1340 | "suppressed_tail": 0, 1341 | "short_legs": 0, 1342 | "wikipedia_url": "https://en.wikipedia.org/wiki/Dragon_Li", 1343 | "hypoallergenic": 0, 1344 | "reference_image_id": "BQMSld0A0", 1345 | "image": { 1346 | "id": "BQMSld0A0", 1347 | "width": 1080, 1348 | "height": 1080, 1349 | "url": "https://cdn2.thecatapi.com/images/BQMSld0A0.jpg" 1350 | } 1351 | }, 1352 | { 1353 | "weight": { 1354 | "imperial": "6 - 14", 1355 | "metric": "3 - 6" 1356 | }, 1357 | "id": "emau", 1358 | "name": "Egyptian Mau", 1359 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/EgyptianMau.aspx", 1360 | "vetstreet_url": "http://www.vetstreet.com/cats/egyptian-mau", 1361 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/egyptian-mau", 1362 | "temperament": "Agile, Dependent, Gentle, Intelligent, Lively, Loyal, Playful", 1363 | "origin": "Egypt", 1364 | "country_codes": "EG", 1365 | "country_code": "EG", 1366 | "description": "The Egyptian Mau is gentle and reserved. She loves her people and desires attention and affection from them but is wary of others. Early, continuing socialization is essential with this sensitive and sometimes shy cat, especially if you plan to show or travel with her. Otherwise, she can be easily startled by unexpected noises or events.", 1367 | "life_span": "18 - 20", 1368 | "indoor": 0, 1369 | "lap": 1, 1370 | "alt_names": "Pharaoh Cat", 1371 | "adaptability": 2, 1372 | "affection_level": 5, 1373 | "child_friendly": 3, 1374 | "dog_friendly": 3, 1375 | "energy_level": 5, 1376 | "grooming": 1, 1377 | "health_issues": 3, 1378 | "intelligence": 4, 1379 | "shedding_level": 3, 1380 | "social_needs": 4, 1381 | "stranger_friendly": 2, 1382 | "vocalisation": 3, 1383 | "experimental": 0, 1384 | "hairless": 0, 1385 | "natural": 1, 1386 | "rare": 0, 1387 | "rex": 0, 1388 | "suppressed_tail": 0, 1389 | "short_legs": 0, 1390 | "wikipedia_url": "https://en.wikipedia.org/wiki/Egyptian_Mau", 1391 | "hypoallergenic": 0, 1392 | "reference_image_id": "TuSyTkt2n", 1393 | "image": { 1394 | "id": "TuSyTkt2n", 1395 | "width": 2475, 1396 | "height": 2147, 1397 | "url": "https://cdn2.thecatapi.com/images/TuSyTkt2n.jpg" 1398 | } 1399 | }, 1400 | { 1401 | "weight": { 1402 | "imperial": "7 - 14", 1403 | "metric": "3 - 6" 1404 | }, 1405 | "id": "ebur", 1406 | "name": "European Burmese", 1407 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/EuropeanBurmese.aspx", 1408 | "temperament": "Sweet, Affectionate, Loyal", 1409 | "origin": "Burma", 1410 | "country_codes": "MM", 1411 | "country_code": "MM", 1412 | "description": "The European Burmese is a very affectionate, intelligent, and loyal cat. They thrive on companionship and will want to be with you, participating in everything you do. While they might pick a favorite family member, chances are that they will interact with everyone in the home, as well as any visitors that come to call. They are inquisitive and playful, even as adults. ", 1413 | "life_span": "10 - 15", 1414 | "indoor": 0, 1415 | "lap": 1, 1416 | "alt_names": "", 1417 | "adaptability": 5, 1418 | "affection_level": 5, 1419 | "child_friendly": 4, 1420 | "cat_friendly": 4, 1421 | "dog_friendly": 4, 1422 | "energy_level": 4, 1423 | "grooming": 1, 1424 | "health_issues": 4, 1425 | "intelligence": 5, 1426 | "shedding_level": 3, 1427 | "social_needs": 5, 1428 | "stranger_friendly": 5, 1429 | "vocalisation": 4, 1430 | "experimental": 0, 1431 | "hairless": 0, 1432 | "natural": 0, 1433 | "rare": 0, 1434 | "rex": 0, 1435 | "suppressed_tail": 0, 1436 | "short_legs": 0, 1437 | "hypoallergenic": 0 1438 | }, 1439 | { 1440 | "weight": { 1441 | "imperial": "7 - 14", 1442 | "metric": "3 - 6" 1443 | }, 1444 | "id": "esho", 1445 | "name": "Exotic Shorthair", 1446 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/Exotic.aspx", 1447 | "vetstreet_url": "http://www.vetstreet.com/cats/exotic-shorthair", 1448 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/exotic-shorthair", 1449 | "temperament": "Affectionate, Sweet, Loyal, Quiet, Peaceful", 1450 | "origin": "United States", 1451 | "country_codes": "US", 1452 | "country_code": "US", 1453 | "description": "The Exotic Shorthair is a gentle friendly cat that has the same personality as the Persian. They love having fun, don’t mind the company of other cats and dogs, also love to curl up for a sleep in a safe place. Exotics love their own people, but around strangers they are cautious at first. Given time, they usually warm up to visitors.", 1454 | "life_span": "12 - 15", 1455 | "indoor": 0, 1456 | "lap": 1, 1457 | "alt_names": "Exotic", 1458 | "adaptability": 5, 1459 | "affection_level": 5, 1460 | "child_friendly": 3, 1461 | "dog_friendly": 3, 1462 | "energy_level": 3, 1463 | "grooming": 2, 1464 | "health_issues": 3, 1465 | "intelligence": 3, 1466 | "shedding_level": 2, 1467 | "social_needs": 4, 1468 | "stranger_friendly": 2, 1469 | "vocalisation": 1, 1470 | "experimental": 0, 1471 | "hairless": 0, 1472 | "natural": 0, 1473 | "rare": 0, 1474 | "rex": 0, 1475 | "suppressed_tail": 0, 1476 | "short_legs": 0, 1477 | "wikipedia_url": "https://en.wikipedia.org/wiki/Exotic_Shorthair", 1478 | "hypoallergenic": 0, 1479 | "reference_image_id": "YnPrYEmfe", 1480 | "image": { 1481 | "id": "YnPrYEmfe", 1482 | "width": 1024, 1483 | "height": 768, 1484 | "url": "https://cdn2.thecatapi.com/images/YnPrYEmfe.jpg" 1485 | } 1486 | }, 1487 | { 1488 | "weight": { 1489 | "imperial": "6 - 10", 1490 | "metric": "3 - 5" 1491 | }, 1492 | "id": "hbro", 1493 | "name": "Havana Brown", 1494 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/HavanaBrown.aspx", 1495 | "vetstreet_url": "http://www.vetstreet.com/cats/havana-brown", 1496 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/havana-brown", 1497 | "temperament": "Affectionate, Curious, Demanding, Friendly, Intelligent, Playful", 1498 | "origin": "United Kingdom", 1499 | "country_codes": "GB", 1500 | "country_code": "GB", 1501 | "description": "The Havana Brown is human oriented, playful, and curious. She has a strong desire to spend time with her people and involve herself in everything they do. Being naturally inquisitive, the Havana Brown reaches out with a paw to touch and feel when investigating curiosities in its environment. They are truly sensitive by nature and frequently gently touch their human companions as if they are extending a paw of friendship.", 1502 | "life_span": "10 - 15", 1503 | "indoor": 0, 1504 | "lap": 1, 1505 | "alt_names": "Havana, HB", 1506 | "adaptability": 5, 1507 | "affection_level": 5, 1508 | "child_friendly": 4, 1509 | "dog_friendly": 5, 1510 | "energy_level": 3, 1511 | "grooming": 1, 1512 | "health_issues": 1, 1513 | "intelligence": 5, 1514 | "shedding_level": 3, 1515 | "social_needs": 5, 1516 | "stranger_friendly": 3, 1517 | "vocalisation": 1, 1518 | "experimental": 0, 1519 | "hairless": 0, 1520 | "natural": 0, 1521 | "rare": 0, 1522 | "rex": 0, 1523 | "suppressed_tail": 0, 1524 | "short_legs": 0, 1525 | "wikipedia_url": "https://en.wikipedia.org/wiki/Havana_Brown", 1526 | "hypoallergenic": 0, 1527 | "reference_image_id": "njK25knLH", 1528 | "image": { 1529 | "id": "njK25knLH", 1530 | "width": 1024, 1531 | "height": 823, 1532 | "url": "https://cdn2.thecatapi.com/images/njK25knLH.jpg" 1533 | } 1534 | }, 1535 | { 1536 | "weight": { 1537 | "imperial": "7 - 14", 1538 | "metric": "3 - 6" 1539 | }, 1540 | "id": "hima", 1541 | "name": "Himalayan", 1542 | "vetstreet_url": "http://www.vetstreet.com/cats/himalayan", 1543 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/himalayan", 1544 | "temperament": "Dependent, Gentle, Intelligent, Quiet, Social", 1545 | "origin": "United States", 1546 | "country_codes": "US", 1547 | "country_code": "US", 1548 | "description": "Calm and devoted, Himalayans make excellent companions, though they prefer a quieter home. They are playful in a sedate kind of way and enjoy having an assortment of toys. The Himalayan will stretch out next to you, sleep in your bed and even sit on your lap when she is in the mood.", 1549 | "life_span": "9 - 15", 1550 | "indoor": 0, 1551 | "lap": 1, 1552 | "alt_names": "Himalayan Persian, Colourpoint Persian, Longhaired Colourpoint, Himmy", 1553 | "adaptability": 5, 1554 | "affection_level": 5, 1555 | "child_friendly": 2, 1556 | "dog_friendly": 2, 1557 | "energy_level": 1, 1558 | "grooming": 5, 1559 | "health_issues": 3, 1560 | "intelligence": 3, 1561 | "shedding_level": 4, 1562 | "social_needs": 4, 1563 | "stranger_friendly": 2, 1564 | "vocalisation": 1, 1565 | "experimental": 0, 1566 | "hairless": 0, 1567 | "natural": 0, 1568 | "rare": 0, 1569 | "rex": 0, 1570 | "suppressed_tail": 0, 1571 | "short_legs": 0, 1572 | "wikipedia_url": "https://en.wikipedia.org/wiki/Himalayan_(cat)", 1573 | "hypoallergenic": 0, 1574 | "reference_image_id": "CDhOtM-Ig", 1575 | "image": { 1576 | "id": "CDhOtM-Ig", 1577 | "width": 1200, 1578 | "height": 961, 1579 | "url": "https://cdn2.thecatapi.com/images/CDhOtM-Ig.jpg" 1580 | } 1581 | }, 1582 | { 1583 | "weight": { 1584 | "imperial": "5 - 10", 1585 | "metric": "2 - 5" 1586 | }, 1587 | "id": "jbob", 1588 | "name": "Japanese Bobtail", 1589 | "cfa_url": "http://cfa.org/Breeds/BreedsCJ/JapaneseBobtail.aspx", 1590 | "vetstreet_url": "http://www.vetstreet.com/cats/japanese-bobtail", 1591 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/japanese-bobtail", 1592 | "temperament": "Active, Agile, Clever, Easy Going, Intelligent, Lively, Loyal, Playful, Social", 1593 | "origin": "Japan", 1594 | "country_codes": "JP", 1595 | "country_code": "JP", 1596 | "description": "The Japanese Bobtail is an active, sweet, loving and highly intelligent breed. They love to be with people and play seemingly endlessly. They learn their name and respond to it. They bring toys to people and play fetch with a favorite toy for hours. Bobtails are social and are at their best when in the company of people. They take over the house and are not intimidated. If a dog is in the house, Bobtails assume Bobtails are in charge.", 1597 | "life_span": "14 - 16", 1598 | "indoor": 0, 1599 | "lap": 1, 1600 | "alt_names": "Japanese Truncated Cat", 1601 | "adaptability": 5, 1602 | "affection_level": 5, 1603 | "child_friendly": 4, 1604 | "dog_friendly": 5, 1605 | "energy_level": 5, 1606 | "grooming": 1, 1607 | "health_issues": 1, 1608 | "intelligence": 5, 1609 | "shedding_level": 3, 1610 | "social_needs": 5, 1611 | "stranger_friendly": 5, 1612 | "vocalisation": 5, 1613 | "experimental": 0, 1614 | "hairless": 0, 1615 | "natural": 1, 1616 | "rare": 0, 1617 | "rex": 0, 1618 | "suppressed_tail": 1, 1619 | "short_legs": 0, 1620 | "wikipedia_url": "https://en.wikipedia.org/wiki/Japanese_Bobtail", 1621 | "hypoallergenic": 0, 1622 | "reference_image_id": "-tm9-znzl", 1623 | "image": { 1624 | "id": "-tm9-znzl", 1625 | "width": 1125, 1626 | "height": 750, 1627 | "url": "https://cdn2.thecatapi.com/images/-tm9-znzl.jpg" 1628 | } 1629 | }, 1630 | { 1631 | "weight": { 1632 | "imperial": "5 - 10", 1633 | "metric": "2 - 5" 1634 | }, 1635 | "id": "java", 1636 | "name": "Javanese", 1637 | "vetstreet_url": "http://www.vetstreet.com/cats/javanese", 1638 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/javanese", 1639 | "temperament": "Active, Devoted, Intelligent, Playful", 1640 | "origin": "United States", 1641 | "country_codes": "US", 1642 | "country_code": "US", 1643 | "description": "Javanese are endlessly interested, intelligent and active. They tend to enjoy jumping to great heights, playing with fishing pole-type or other interactive toys and just generally investigating their surroundings. He will attempt to copy things you do, such as opening doors or drawers.", 1644 | "life_span": "10 - 12", 1645 | "indoor": 0, 1646 | "alt_names": " ", 1647 | "adaptability": 4, 1648 | "affection_level": 5, 1649 | "child_friendly": 4, 1650 | "dog_friendly": 4, 1651 | "energy_level": 5, 1652 | "grooming": 1, 1653 | "health_issues": 3, 1654 | "intelligence": 5, 1655 | "shedding_level": 2, 1656 | "social_needs": 5, 1657 | "stranger_friendly": 3, 1658 | "vocalisation": 5, 1659 | "experimental": 0, 1660 | "hairless": 0, 1661 | "natural": 0, 1662 | "rare": 0, 1663 | "rex": 0, 1664 | "suppressed_tail": 0, 1665 | "short_legs": 0, 1666 | "wikipedia_url": "https://en.wikipedia.org/wiki/Javanese_cat", 1667 | "hypoallergenic": 1, 1668 | "reference_image_id": "xoI_EpOKe", 1669 | "image": { 1670 | "id": "xoI_EpOKe", 1671 | "width": 1232, 1672 | "height": 1287, 1673 | "url": "https://cdn2.thecatapi.com/images/xoI_EpOKe.jpg" 1674 | } 1675 | }, 1676 | { 1677 | "weight": { 1678 | "imperial": "8 - 12", 1679 | "metric": "4 - 6" 1680 | }, 1681 | "id": "khao", 1682 | "name": "Khao Manee", 1683 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/KhaoManee.aspx", 1684 | "temperament": "Calm, Relaxed, Talkative, Playful, Warm", 1685 | "origin": "Thailand", 1686 | "country_codes": "TH", 1687 | "country_code": "TH", 1688 | "description": "The Khao Manee is highly intelligent, with an extrovert and inquisitive nature, however they are also very calm and relaxed, making them an idea lap cat.", 1689 | "life_span": "10 - 12", 1690 | "indoor": 0, 1691 | "lap": 1, 1692 | "alt_names": "Diamond Eye cat", 1693 | "adaptability": 4, 1694 | "affection_level": 4, 1695 | "child_friendly": 3, 1696 | "cat_friendly": 3, 1697 | "dog_friendly": 3, 1698 | "energy_level": 3, 1699 | "grooming": 3, 1700 | "health_issues": 1, 1701 | "intelligence": 4, 1702 | "shedding_level": 3, 1703 | "social_needs": 3, 1704 | "stranger_friendly": 3, 1705 | "vocalisation": 5, 1706 | "experimental": 0, 1707 | "hairless": 0, 1708 | "natural": 0, 1709 | "rare": 0, 1710 | "rex": 0, 1711 | "suppressed_tail": 0, 1712 | "short_legs": 0, 1713 | "wikipedia_url": "https://en.wikipedia.org/wiki/Khao_Manee", 1714 | "hypoallergenic": 0, 1715 | "reference_image_id": "165ok6ESN", 1716 | "image": { 1717 | "id": "165ok6ESN", 1718 | "width": 1555, 1719 | "height": 1037, 1720 | "url": "https://cdn2.thecatapi.com/images/165ok6ESN.jpg" 1721 | } 1722 | }, 1723 | { 1724 | "weight": { 1725 | "imperial": "7 - 11", 1726 | "metric": "3 - 5" 1727 | }, 1728 | "id": "kora", 1729 | "name": "Korat", 1730 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/Korat.aspx", 1731 | "vetstreet_url": "http://www.vetstreet.com/cats/korat", 1732 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/korat", 1733 | "temperament": "Active, Loyal, highly intelligent, Expressive, Trainable", 1734 | "origin": "Thailand", 1735 | "country_codes": "TH", 1736 | "country_code": "TH", 1737 | "description": "The Korat is a natural breed, and one of the oldest stable cat breeds. They are highly intelligent and confident cats that can be fearless, although they are startled by loud sounds and sudden movements. Korats form strong bonds with their people and like to cuddle and stay nearby.", 1738 | "life_span": "10 - 15", 1739 | "indoor": 0, 1740 | "adaptability": 5, 1741 | "affection_level": 5, 1742 | "child_friendly": 4, 1743 | "dog_friendly": 5, 1744 | "energy_level": 3, 1745 | "grooming": 1, 1746 | "health_issues": 1, 1747 | "intelligence": 5, 1748 | "shedding_level": 3, 1749 | "social_needs": 5, 1750 | "stranger_friendly": 2, 1751 | "vocalisation": 3, 1752 | "experimental": 0, 1753 | "hairless": 0, 1754 | "natural": 0, 1755 | "rare": 1, 1756 | "rex": 0, 1757 | "suppressed_tail": 0, 1758 | "short_legs": 0, 1759 | "wikipedia_url": "https://en.wikipedia.org/wiki/Korat", 1760 | "hypoallergenic": 0, 1761 | "reference_image_id": "DbwiefiaY", 1762 | "image": { 1763 | "id": "DbwiefiaY", 1764 | "width": 1200, 1765 | "height": 627, 1766 | "url": "https://cdn2.thecatapi.com/images/DbwiefiaY.png" 1767 | } 1768 | }, 1769 | { 1770 | "weight": { 1771 | "imperial": "8 - 15", 1772 | "metric": "4 - 7" 1773 | }, 1774 | "id": "kuri", 1775 | "name": "Kurilian", 1776 | "vetstreet_url": "http://www.vetstreet.com/cats/kurilian-bobtail", 1777 | "temperament": "Independent, highly intelligent, clever, inquisitive, sociable, playful, trainable", 1778 | "origin": "Russia", 1779 | "country_codes": "RU", 1780 | "country_code": "RU", 1781 | "description": "The character of the Kurilian Bobtail is independent, highly intelligent, clever, inquisitive, sociable, playful, trainable, absent of aggression and very gentle. They are devoted to their humans and when allowed are either on the lap of or sleeping in bed with their owners.", 1782 | "life_span": "15 - 20", 1783 | "indoor": 0, 1784 | "adaptability": 5, 1785 | "affection_level": 5, 1786 | "child_friendly": 5, 1787 | "dog_friendly": 5, 1788 | "energy_level": 5, 1789 | "grooming": 1, 1790 | "health_issues": 1, 1791 | "intelligence": 5, 1792 | "shedding_level": 2, 1793 | "social_needs": 5, 1794 | "stranger_friendly": 5, 1795 | "vocalisation": 3, 1796 | "experimental": 0, 1797 | "hairless": 0, 1798 | "natural": 1, 1799 | "rare": 0, 1800 | "rex": 0, 1801 | "suppressed_tail": 1, 1802 | "short_legs": 0, 1803 | "wikipedia_url": "https://en.wikipedia.org/wiki/Kurilian_Bobtail", 1804 | "hypoallergenic": 0, 1805 | "reference_image_id": "NZpO4pU56M", 1806 | "image": { 1807 | "id": "NZpO4pU56M", 1808 | "width": 750, 1809 | "height": 750, 1810 | "url": "https://cdn2.thecatapi.com/images/NZpO4pU56M.jpg" 1811 | } 1812 | }, 1813 | { 1814 | "weight": { 1815 | "imperial": "6 - 10", 1816 | "metric": "3 - 5" 1817 | }, 1818 | "id": "lape", 1819 | "name": "LaPerm", 1820 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/LaPerm.aspx", 1821 | "vetstreet_url": "http://www.vetstreet.com/cats/laperm", 1822 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/laperm", 1823 | "temperament": "Affectionate, Friendly, Gentle, Intelligent, Playful, Quiet", 1824 | "origin": "Thailand", 1825 | "country_codes": "TH", 1826 | "country_code": "TH", 1827 | "description": "LaPerms are gentle and affectionate but also very active. Unlike many active breeds, the LaPerm is also quite content to be a lap cat. The LaPerm will often follow your lead; that is, if they are busy playing and you decide to sit and relax, simply pick up your LaPerm and sit down with it, and it will stay in your lap, devouring the attention you give it.", 1828 | "life_span": "10 - 15", 1829 | "indoor": 0, 1830 | "lap": 1, 1831 | "alt_names": "Si-Sawat", 1832 | "adaptability": 5, 1833 | "affection_level": 5, 1834 | "child_friendly": 4, 1835 | "dog_friendly": 5, 1836 | "energy_level": 4, 1837 | "grooming": 1, 1838 | "health_issues": 1, 1839 | "intelligence": 5, 1840 | "shedding_level": 3, 1841 | "social_needs": 4, 1842 | "stranger_friendly": 4, 1843 | "vocalisation": 3, 1844 | "experimental": 0, 1845 | "hairless": 0, 1846 | "natural": 0, 1847 | "rare": 0, 1848 | "rex": 1, 1849 | "suppressed_tail": 0, 1850 | "short_legs": 0, 1851 | "wikipedia_url": "https://en.wikipedia.org/wiki/LaPerm", 1852 | "hypoallergenic": 1, 1853 | "reference_image_id": "aKbsEYjSl", 1854 | "image": { 1855 | "id": "aKbsEYjSl", 1856 | "width": 1074, 1857 | "height": 890, 1858 | "url": "https://cdn2.thecatapi.com/images/aKbsEYjSl.jpg" 1859 | } 1860 | }, 1861 | { 1862 | "weight": { 1863 | "imperial": "12 - 18", 1864 | "metric": "5 - 8" 1865 | }, 1866 | "id": "mcoo", 1867 | "name": "Maine Coon", 1868 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/MaineCoon.aspx", 1869 | "vetstreet_url": "http://www.vetstreet.com/cats/maine-coon", 1870 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/maine-coon", 1871 | "temperament": "Adaptable, Intelligent, Loving, Gentle, Independent", 1872 | "origin": "United States", 1873 | "country_codes": "US", 1874 | "country_code": "US", 1875 | "description": "They are known for their size and luxurious long coat Maine Coons are considered a gentle giant. The good-natured and affable Maine Coon adapts well to many lifestyles and personalities. She likes being with people and has the habit of following them around, but isn’t needy. Most Maine Coons love water and they can be quite good swimmers.", 1876 | "life_span": "12 - 15", 1877 | "indoor": 0, 1878 | "lap": 1, 1879 | "alt_names": "Coon Cat, Maine Cat, Maine Shag, Snowshoe Cat, American Longhair, The Gentle Giants", 1880 | "adaptability": 5, 1881 | "affection_level": 5, 1882 | "child_friendly": 4, 1883 | "dog_friendly": 5, 1884 | "energy_level": 3, 1885 | "grooming": 3, 1886 | "health_issues": 3, 1887 | "intelligence": 5, 1888 | "shedding_level": 3, 1889 | "social_needs": 3, 1890 | "stranger_friendly": 5, 1891 | "vocalisation": 1, 1892 | "experimental": 0, 1893 | "hairless": 0, 1894 | "natural": 1, 1895 | "rare": 0, 1896 | "rex": 0, 1897 | "suppressed_tail": 0, 1898 | "short_legs": 0, 1899 | "wikipedia_url": "https://en.wikipedia.org/wiki/Maine_Coon", 1900 | "hypoallergenic": 0, 1901 | "reference_image_id": "OOD3VXAQn", 1902 | "image": { 1903 | "id": "OOD3VXAQn", 1904 | "width": 1080, 1905 | "height": 1080, 1906 | "url": "https://cdn2.thecatapi.com/images/OOD3VXAQn.jpg" 1907 | } 1908 | }, 1909 | { 1910 | "weight": { 1911 | "imperial": "6 - 13", 1912 | "metric": "3 - 6" 1913 | }, 1914 | "id": "mala", 1915 | "name": "Malayan", 1916 | "temperament": "Affectionate, Interactive, Playful, Social", 1917 | "origin": "United Kingdom", 1918 | "country_codes": "GB", 1919 | "country_code": "GB", 1920 | "description": "Malayans love to explore and even enjoy traveling by way of a cat carrier. They are quite a talkative and rather loud cat with an apparent strong will. These cats will make sure that you give it the attention it seeks and always seem to want to be held and hugged. They will constantly interact with people, even strangers. They love to play and cuddle.", 1921 | "life_span": "12 - 18", 1922 | "indoor": 0, 1923 | "alt_names": "Asian", 1924 | "adaptability": 5, 1925 | "affection_level": 5, 1926 | "child_friendly": 4, 1927 | "dog_friendly": 5, 1928 | "energy_level": 5, 1929 | "grooming": 1, 1930 | "health_issues": 1, 1931 | "intelligence": 3, 1932 | "shedding_level": 1, 1933 | "social_needs": 3, 1934 | "stranger_friendly": 3, 1935 | "vocalisation": 5, 1936 | "experimental": 0, 1937 | "hairless": 0, 1938 | "natural": 0, 1939 | "rare": 0, 1940 | "rex": 0, 1941 | "suppressed_tail": 0, 1942 | "short_legs": 0, 1943 | "wikipedia_url": "https://en.wikipedia.org/wiki/Asian_cat", 1944 | "hypoallergenic": 0 1945 | }, 1946 | { 1947 | "weight": { 1948 | "imperial": "7 - 13", 1949 | "metric": "3 - 6" 1950 | }, 1951 | "id": "manx", 1952 | "name": "Manx", 1953 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/Manx.aspx", 1954 | "vetstreet_url": "http://www.vetstreet.com/cats/manx", 1955 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/manx", 1956 | "temperament": "Easy Going, Intelligent, Loyal, Playful, Social", 1957 | "origin": "Isle of Man", 1958 | "country_codes": "IM", 1959 | "country_code": "IM", 1960 | "description": "The Manx is a placid, sweet cat that is gentle and playful. She never seems to get too upset about anything. She is a loving companion and adores being with people.", 1961 | "life_span": "12 - 14", 1962 | "indoor": 0, 1963 | "lap": 1, 1964 | "alt_names": "Manks, Stubbin, Rumpy", 1965 | "adaptability": 5, 1966 | "affection_level": 5, 1967 | "child_friendly": 4, 1968 | "dog_friendly": 5, 1969 | "energy_level": 5, 1970 | "grooming": 1, 1971 | "health_issues": 3, 1972 | "intelligence": 5, 1973 | "shedding_level": 5, 1974 | "social_needs": 5, 1975 | "stranger_friendly": 3, 1976 | "vocalisation": 3, 1977 | "experimental": 0, 1978 | "hairless": 0, 1979 | "natural": 1, 1980 | "rare": 0, 1981 | "rex": 0, 1982 | "suppressed_tail": 1, 1983 | "short_legs": 0, 1984 | "wikipedia_url": "https://en.wikipedia.org/wiki/Manx_(cat)", 1985 | "hypoallergenic": 0, 1986 | "reference_image_id": "fhYh2PDcC", 1987 | "image": { 1988 | "id": "fhYh2PDcC", 1989 | "width": 700, 1990 | "height": 466, 1991 | "url": "https://cdn2.thecatapi.com/images/fhYh2PDcC.jpg" 1992 | } 1993 | }, 1994 | { 1995 | "weight": { 1996 | "imperial": "5 - 9", 1997 | "metric": "2 - 4" 1998 | }, 1999 | "id": "munc", 2000 | "name": "Munchkin", 2001 | "vetstreet_url": "http://www.vetstreet.com/cats/munchkin", 2002 | "temperament": "Agile, Easy Going, Intelligent, Playful", 2003 | "origin": "United States", 2004 | "country_codes": "US", 2005 | "country_code": "US", 2006 | "description": "The Munchkin is an outgoing cat who enjoys being handled. She has lots of energy and is faster and more agile than she looks. The shortness of their legs does not seem to interfere with their running and leaping abilities.", 2007 | "life_span": "10 - 15", 2008 | "indoor": 0, 2009 | "lap": 1, 2010 | "alt_names": "", 2011 | "adaptability": 5, 2012 | "affection_level": 5, 2013 | "child_friendly": 4, 2014 | "dog_friendly": 5, 2015 | "energy_level": 4, 2016 | "grooming": 2, 2017 | "health_issues": 3, 2018 | "intelligence": 5, 2019 | "shedding_level": 3, 2020 | "social_needs": 5, 2021 | "stranger_friendly": 5, 2022 | "vocalisation": 3, 2023 | "experimental": 0, 2024 | "hairless": 0, 2025 | "natural": 0, 2026 | "rare": 0, 2027 | "rex": 0, 2028 | "suppressed_tail": 0, 2029 | "short_legs": 1, 2030 | "wikipedia_url": "https://en.wikipedia.org/wiki/Munchkin_(cat)", 2031 | "hypoallergenic": 0, 2032 | "reference_image_id": "j5cVSqLer", 2033 | "image": { 2034 | "id": "j5cVSqLer", 2035 | "width": 1600, 2036 | "height": 1200, 2037 | "url": "https://cdn2.thecatapi.com/images/j5cVSqLer.jpg" 2038 | } 2039 | }, 2040 | { 2041 | "weight": { 2042 | "imperial": "7 - 11", 2043 | "metric": "3 - 5" 2044 | }, 2045 | "id": "nebe", 2046 | "name": "Nebelung", 2047 | "temperament": "Gentle, Quiet, Shy, Playful", 2048 | "origin": "United States", 2049 | "country_codes": "US", 2050 | "country_code": "US", 2051 | "description": "The Nebelung may have a reserved nature, but she loves to play (being especially fond of retrieving) and enjoys jumping or climbing to high places where she can study people and situations at her leisure before making up her mind about whether she wants to get involved.", 2052 | "life_span": "11 - 16", 2053 | "indoor": 0, 2054 | "lap": 1, 2055 | "alt_names": "Longhaired Russian Blue", 2056 | "adaptability": 5, 2057 | "affection_level": 5, 2058 | "child_friendly": 4, 2059 | "dog_friendly": 4, 2060 | "energy_level": 3, 2061 | "grooming": 3, 2062 | "health_issues": 2, 2063 | "intelligence": 5, 2064 | "shedding_level": 3, 2065 | "social_needs": 3, 2066 | "stranger_friendly": 3, 2067 | "vocalisation": 1, 2068 | "experimental": 0, 2069 | "hairless": 0, 2070 | "natural": 0, 2071 | "rare": 1, 2072 | "rex": 0, 2073 | "suppressed_tail": 0, 2074 | "short_legs": 0, 2075 | "wikipedia_url": "https://en.wikipedia.org/wiki/Nebelung", 2076 | "hypoallergenic": 0, 2077 | "reference_image_id": "OGTWqNNOt", 2078 | "image": { 2079 | "id": "OGTWqNNOt", 2080 | "width": 1150, 2081 | "height": 862, 2082 | "url": "https://cdn2.thecatapi.com/images/OGTWqNNOt.jpg" 2083 | } 2084 | }, 2085 | { 2086 | "weight": { 2087 | "imperial": "8 - 16", 2088 | "metric": "4 - 7" 2089 | }, 2090 | "id": "norw", 2091 | "name": "Norwegian Forest Cat", 2092 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/NorwegianForestCat.aspx", 2093 | "vetstreet_url": "http://www.vetstreet.com/cats/norwegian-forest-cat", 2094 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/norwegian-forest-cat", 2095 | "temperament": "Sweet, Active, Intelligent, Social, Playful, Lively, Curious", 2096 | "origin": "Norway", 2097 | "country_codes": "NO", 2098 | "country_code": "NO", 2099 | "description": "The Norwegian Forest Cat is a sweet, loving cat. She appreciates praise and loves to interact with her parent. She makes a loving companion and bonds with her parents once she accepts them for her own. She is still a hunter at heart. She loves to chase toys as if they are real. She is territorial and patrols several times each day to make certain that all is fine.", 2100 | "life_span": "12 - 16", 2101 | "indoor": 0, 2102 | "alt_names": "Skogkatt / Skaukatt, Norsk Skogkatt / Norsk Skaukatt, Weegie", 2103 | "adaptability": 5, 2104 | "affection_level": 5, 2105 | "child_friendly": 4, 2106 | "dog_friendly": 5, 2107 | "energy_level": 3, 2108 | "grooming": 2, 2109 | "health_issues": 3, 2110 | "intelligence": 4, 2111 | "shedding_level": 3, 2112 | "social_needs": 5, 2113 | "stranger_friendly": 5, 2114 | "vocalisation": 1, 2115 | "experimental": 0, 2116 | "hairless": 0, 2117 | "natural": 1, 2118 | "rare": 0, 2119 | "rex": 0, 2120 | "suppressed_tail": 0, 2121 | "short_legs": 0, 2122 | "wikipedia_url": "https://en.wikipedia.org/wiki/Norwegian_Forest_Cat", 2123 | "hypoallergenic": 0, 2124 | "reference_image_id": "06dgGmEOV", 2125 | "image": { 2126 | "id": "06dgGmEOV", 2127 | "width": 1200, 2128 | "height": 1021, 2129 | "url": "https://cdn2.thecatapi.com/images/06dgGmEOV.jpg" 2130 | } 2131 | }, 2132 | { 2133 | "weight": { 2134 | "imperial": "7 - 15", 2135 | "metric": "3 - 7" 2136 | }, 2137 | "id": "ocic", 2138 | "name": "Ocicat", 2139 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/Ocicat.aspx", 2140 | "vetstreet_url": "http://www.vetstreet.com/cats/ocicat", 2141 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/ocicat", 2142 | "temperament": "Active, Agile, Curious, Demanding, Friendly, Gentle, Lively, Playful, Social", 2143 | "origin": "United States", 2144 | "country_codes": "US", 2145 | "country_code": "US", 2146 | "description": "Loyal and devoted to their owners, the Ocicat is intelligent, confident, outgoing, and seems to have many dog traits. They can be trained to fetch toys, walk on a lead, taught to 'speak', come when called, and follow other commands. ", 2147 | "life_span": "12 - 14", 2148 | "indoor": 0, 2149 | "alt_names": "", 2150 | "adaptability": 5, 2151 | "affection_level": 5, 2152 | "child_friendly": 4, 2153 | "dog_friendly": 5, 2154 | "energy_level": 5, 2155 | "grooming": 1, 2156 | "health_issues": 3, 2157 | "intelligence": 5, 2158 | "shedding_level": 3, 2159 | "social_needs": 5, 2160 | "stranger_friendly": 5, 2161 | "vocalisation": 3, 2162 | "experimental": 0, 2163 | "hairless": 0, 2164 | "natural": 0, 2165 | "rare": 0, 2166 | "rex": 0, 2167 | "suppressed_tail": 0, 2168 | "short_legs": 0, 2169 | "wikipedia_url": "https://en.wikipedia.org/wiki/Ocicat", 2170 | "hypoallergenic": 1, 2171 | "reference_image_id": "JAx-08Y0n", 2172 | "image": { 2173 | "id": "JAx-08Y0n", 2174 | "width": 1280, 2175 | "height": 853, 2176 | "url": "https://cdn2.thecatapi.com/images/JAx-08Y0n.jpg" 2177 | } 2178 | }, 2179 | { 2180 | "weight": { 2181 | "imperial": "5 - 10", 2182 | "metric": "2 - 5" 2183 | }, 2184 | "id": "orie", 2185 | "name": "Oriental", 2186 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/Oriental.aspx", 2187 | "vetstreet_url": "http://www.vetstreet.com/cats/oriental", 2188 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/oriental", 2189 | "temperament": "Energetic, Affectionate, Intelligent, Social, Playful, Curious", 2190 | "origin": "United States", 2191 | "country_codes": "US", 2192 | "country_code": "US", 2193 | "description": "Orientals are passionate about the people in their lives. They become extremely attached to their humans, so be prepared for a lifetime commitment. When you are not available to entertain her, an Oriental will divert herself by jumping on top of the refrigerator, opening drawers, seeking out new hideaways.", 2194 | "life_span": "12 - 14", 2195 | "indoor": 0, 2196 | "lap": 1, 2197 | "alt_names": "Foreign Type", 2198 | "adaptability": 5, 2199 | "affection_level": 5, 2200 | "child_friendly": 4, 2201 | "dog_friendly": 5, 2202 | "energy_level": 5, 2203 | "grooming": 1, 2204 | "health_issues": 3, 2205 | "intelligence": 5, 2206 | "shedding_level": 3, 2207 | "social_needs": 5, 2208 | "stranger_friendly": 3, 2209 | "vocalisation": 5, 2210 | "experimental": 0, 2211 | "hairless": 0, 2212 | "natural": 0, 2213 | "rare": 0, 2214 | "rex": 0, 2215 | "suppressed_tail": 0, 2216 | "short_legs": 0, 2217 | "wikipedia_url": "https://en.wikipedia.org/wiki/Oriental_Shorthair", 2218 | "hypoallergenic": 1, 2219 | "reference_image_id": "LutjkZJpH", 2220 | "image": { 2221 | "id": "LutjkZJpH", 2222 | "width": 800, 2223 | "height": 1200, 2224 | "url": "https://cdn2.thecatapi.com/images/LutjkZJpH.jpg" 2225 | } 2226 | }, 2227 | { 2228 | "weight": { 2229 | "imperial": "9 - 14", 2230 | "metric": "4 - 6" 2231 | }, 2232 | "id": "pers", 2233 | "name": "Persian", 2234 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/Persian.aspx", 2235 | "vetstreet_url": "http://www.vetstreet.com/cats/persian", 2236 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/persian", 2237 | "temperament": "Affectionate, loyal, Sedate, Quiet", 2238 | "origin": "Iran (Persia)", 2239 | "country_codes": "IR", 2240 | "country_code": "IR", 2241 | "description": "Persians are sweet, gentle cats that can be playful or quiet and laid-back. Great with families and children, they absolutely love to lounge around the house. While they don’t mind a full house or active kids, they’ll usually hide when they need some alone time.", 2242 | "life_span": "14 - 15", 2243 | "indoor": 0, 2244 | "lap": 1, 2245 | "alt_names": "Longhair, Persian Longhair, Shiraz, Shirazi", 2246 | "adaptability": 5, 2247 | "affection_level": 5, 2248 | "child_friendly": 2, 2249 | "dog_friendly": 2, 2250 | "energy_level": 1, 2251 | "grooming": 5, 2252 | "health_issues": 3, 2253 | "intelligence": 3, 2254 | "shedding_level": 4, 2255 | "social_needs": 4, 2256 | "stranger_friendly": 2, 2257 | "vocalisation": 1, 2258 | "experimental": 0, 2259 | "hairless": 0, 2260 | "natural": 1, 2261 | "rare": 0, 2262 | "rex": 0, 2263 | "suppressed_tail": 0, 2264 | "short_legs": 0, 2265 | "wikipedia_url": "https://en.wikipedia.org/wiki/Persian_(cat)", 2266 | "hypoallergenic": 0, 2267 | "reference_image_id": "-Zfz5z2jK\n", 2268 | "image": {} 2269 | }, 2270 | { 2271 | "weight": { 2272 | "imperial": "8 - 17", 2273 | "metric": "4 - 8" 2274 | }, 2275 | "id": "pixi", 2276 | "name": "Pixie-bob", 2277 | "vetstreet_url": "http://www.vetstreet.com/cats/pixiebob", 2278 | "temperament": "Affectionate, Social, Intelligent, Loyal", 2279 | "origin": "United States", 2280 | "country_codes": "US", 2281 | "country_code": "US", 2282 | "description": "Companionable and affectionate, the Pixie-bob wants to be an integral part of the family. The Pixie-Bob’s ability to bond with their humans along with their patient personas make them excellent companions for children.", 2283 | "life_span": "13 - 16", 2284 | "indoor": 0, 2285 | "lap": 1, 2286 | "alt_names": "", 2287 | "adaptability": 5, 2288 | "affection_level": 5, 2289 | "child_friendly": 4, 2290 | "dog_friendly": 5, 2291 | "energy_level": 4, 2292 | "grooming": 1, 2293 | "health_issues": 2, 2294 | "intelligence": 5, 2295 | "shedding_level": 3, 2296 | "social_needs": 4, 2297 | "stranger_friendly": 4, 2298 | "vocalisation": 1, 2299 | "experimental": 0, 2300 | "hairless": 0, 2301 | "natural": 0, 2302 | "rare": 0, 2303 | "rex": 0, 2304 | "suppressed_tail": 1, 2305 | "short_legs": 0, 2306 | "wikipedia_url": "https://en.wikipedia.org/wiki/Pixiebob", 2307 | "hypoallergenic": 0, 2308 | "reference_image_id": "z7fJRNeN6", 2309 | "image": { 2310 | "id": "z7fJRNeN6", 2311 | "width": 1024, 2312 | "height": 683, 2313 | "url": "https://cdn2.thecatapi.com/images/z7fJRNeN6.jpg" 2314 | } 2315 | }, 2316 | { 2317 | "weight": { 2318 | "imperial": "8 - 20", 2319 | "metric": "4 - 9" 2320 | }, 2321 | "id": "raga", 2322 | "name": "Ragamuffin", 2323 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/Ragamuffin.aspx", 2324 | "vetstreet_url": "http://www.vetstreet.com/cats/ragamuffin", 2325 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/ragamuffin", 2326 | "temperament": "Affectionate, Friendly, Gentle, Calm", 2327 | "origin": "United States", 2328 | "country_codes": "US", 2329 | "country_code": "US", 2330 | "description": "The Ragamuffin is calm, even tempered and gets along well with all family members. Changes in routine generally do not upset her. She is an ideal companion for those in apartments, and with children due to her patient nature.", 2331 | "life_span": "12 - 16", 2332 | "indoor": 0, 2333 | "lap": 1, 2334 | "alt_names": "", 2335 | "adaptability": 5, 2336 | "affection_level": 5, 2337 | "child_friendly": 4, 2338 | "dog_friendly": 5, 2339 | "energy_level": 3, 2340 | "grooming": 3, 2341 | "health_issues": 3, 2342 | "intelligence": 5, 2343 | "shedding_level": 3, 2344 | "social_needs": 3, 2345 | "stranger_friendly": 5, 2346 | "vocalisation": 1, 2347 | "experimental": 0, 2348 | "hairless": 0, 2349 | "natural": 0, 2350 | "rare": 0, 2351 | "rex": 0, 2352 | "suppressed_tail": 0, 2353 | "short_legs": 0, 2354 | "wikipedia_url": "https://en.wikipedia.org/wiki/Ragamuffin_cat", 2355 | "hypoallergenic": 0, 2356 | "reference_image_id": "SMuZx-bFM", 2357 | "image": { 2358 | "id": "SMuZx-bFM", 2359 | "width": 3000, 2360 | "height": 2000, 2361 | "url": "https://cdn2.thecatapi.com/images/SMuZx-bFM.jpg" 2362 | } 2363 | }, 2364 | { 2365 | "weight": { 2366 | "imperial": "12 - 20", 2367 | "metric": "5 - 9" 2368 | }, 2369 | "id": "ragd", 2370 | "name": "Ragdoll", 2371 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/Ragdoll.aspx", 2372 | "vetstreet_url": "http://www.vetstreet.com/cats/ragdoll", 2373 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/ragdoll", 2374 | "temperament": "Affectionate, Friendly, Gentle, Quiet, Easygoing", 2375 | "origin": "United States", 2376 | "country_codes": "US", 2377 | "country_code": "US", 2378 | "description": "Ragdolls love their people, greeting them at the door, following them around the house, and leaping into a lap or snuggling in bed whenever given the chance. They are the epitome of a lap cat, enjoy being carried and collapsing into the arms of anyone who holds them.", 2379 | "life_span": "12 - 17", 2380 | "indoor": 0, 2381 | "lap": 1, 2382 | "alt_names": "Rag doll", 2383 | "adaptability": 5, 2384 | "affection_level": 5, 2385 | "child_friendly": 4, 2386 | "dog_friendly": 5, 2387 | "energy_level": 3, 2388 | "grooming": 2, 2389 | "health_issues": 3, 2390 | "intelligence": 3, 2391 | "shedding_level": 3, 2392 | "social_needs": 5, 2393 | "stranger_friendly": 3, 2394 | "vocalisation": 1, 2395 | "experimental": 0, 2396 | "hairless": 0, 2397 | "natural": 0, 2398 | "rare": 0, 2399 | "rex": 0, 2400 | "suppressed_tail": 0, 2401 | "short_legs": 0, 2402 | "wikipedia_url": "https://en.wikipedia.org/wiki/Ragdoll", 2403 | "hypoallergenic": 0, 2404 | "reference_image_id": "oGefY4YoG", 2405 | "image": { 2406 | "id": "oGefY4YoG", 2407 | "width": 768, 2408 | "height": 1024, 2409 | "url": "https://cdn2.thecatapi.com/images/oGefY4YoG.jpg" 2410 | } 2411 | }, 2412 | { 2413 | "weight": { 2414 | "imperial": "5 - 11", 2415 | "metric": "2 - 5" 2416 | }, 2417 | "id": "rblu", 2418 | "name": "Russian Blue", 2419 | "cfa_url": "http://cfa.org/Breeds/BreedsKthruR/RussianBlue.aspx", 2420 | "vetstreet_url": "http://www.vetstreet.com/cats/russian-blue-nebelung", 2421 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/russian-blue", 2422 | "temperament": "Active, Dependent, Easy Going, Gentle, Intelligent, Loyal, Playful, Quiet", 2423 | "origin": "Russia", 2424 | "country_codes": "RU", 2425 | "country_code": "RU", 2426 | "description": "Russian Blues are very loving and reserved. They do not like noisy households but they do like to play and can be quite active when outdoors. They bond very closely with their owner and are known to be compatible with other pets.", 2427 | "life_span": "10 - 16", 2428 | "indoor": 0, 2429 | "lap": 1, 2430 | "alt_names": "Archangel Blue, Archangel Cat", 2431 | "adaptability": 3, 2432 | "affection_level": 3, 2433 | "child_friendly": 3, 2434 | "dog_friendly": 3, 2435 | "energy_level": 3, 2436 | "grooming": 3, 2437 | "health_issues": 1, 2438 | "intelligence": 3, 2439 | "shedding_level": 3, 2440 | "social_needs": 3, 2441 | "stranger_friendly": 1, 2442 | "vocalisation": 1, 2443 | "experimental": 0, 2444 | "hairless": 0, 2445 | "natural": 1, 2446 | "rare": 0, 2447 | "rex": 0, 2448 | "suppressed_tail": 0, 2449 | "short_legs": 0, 2450 | "wikipedia_url": "https://en.wikipedia.org/wiki/Russian_Blue", 2451 | "hypoallergenic": 1, 2452 | "reference_image_id": "Rhj-JsTLP", 2453 | "image": { 2454 | "id": "Rhj-JsTLP", 2455 | "width": 1280, 2456 | "height": 853, 2457 | "url": "https://cdn2.thecatapi.com/images/Rhj-JsTLP.jpg" 2458 | } 2459 | }, 2460 | { 2461 | "weight": { 2462 | "imperial": "8 - 25", 2463 | "metric": "4 - 11" 2464 | }, 2465 | "id": "sava", 2466 | "name": "Savannah", 2467 | "vetstreet_url": "http://www.vetstreet.com/cats/savannah", 2468 | "temperament": "Curious, Social, Intelligent, Loyal, Outgoing, Adventurous, Affectionate", 2469 | "origin": "United States", 2470 | "country_codes": "US", 2471 | "country_code": "US", 2472 | "description": "Savannah is the feline version of a dog. Actively seeking social interaction, they are given to pouting if left out. Remaining kitten-like through life. Profoundly loyal to immediate family members whilst questioning the presence of strangers. Making excellent companions that are loyal, intelligent and eager to be involved.", 2473 | "life_span": "17 - 20", 2474 | "indoor": 0, 2475 | "alt_names": "", 2476 | "adaptability": 5, 2477 | "affection_level": 5, 2478 | "child_friendly": 4, 2479 | "dog_friendly": 5, 2480 | "energy_level": 5, 2481 | "grooming": 1, 2482 | "health_issues": 1, 2483 | "intelligence": 5, 2484 | "shedding_level": 3, 2485 | "social_needs": 5, 2486 | "stranger_friendly": 5, 2487 | "vocalisation": 1, 2488 | "experimental": 1, 2489 | "hairless": 0, 2490 | "natural": 0, 2491 | "rare": 0, 2492 | "rex": 0, 2493 | "suppressed_tail": 0, 2494 | "short_legs": 0, 2495 | "wikipedia_url": "https://en.wikipedia.org/wiki/Savannah_cat", 2496 | "hypoallergenic": 0, 2497 | "reference_image_id": "a8nIYvs6S", 2498 | "image": { 2499 | "id": "a8nIYvs6S", 2500 | "width": 850, 2501 | "height": 1100, 2502 | "url": "https://cdn2.thecatapi.com/images/a8nIYvs6S.jpg" 2503 | } 2504 | }, 2505 | { 2506 | "weight": { 2507 | "imperial": "5 - 11", 2508 | "metric": "2 - 5" 2509 | }, 2510 | "id": "sfol", 2511 | "name": "Scottish Fold", 2512 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/ScottishFold.aspx", 2513 | "vetstreet_url": "http://www.vetstreet.com/cats/scottish-fold-highland-fold", 2514 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/scottish-fold", 2515 | "temperament": "Affectionate, Intelligent, Loyal, Playful, Social, Sweet, Loving", 2516 | "origin": "United Kingdom", 2517 | "country_codes": "GB", 2518 | "country_code": "GB", 2519 | "description": "The Scottish Fold is a sweet, charming breed. She is an easy cat to live with and to care for. She is affectionate and is comfortable with all members of her family. Her tail should be handled gently. Folds are known for sleeping on their backs, and for sitting with their legs stretched out and their paws on their belly. This is called the \"Buddha Position\".", 2520 | "life_span": "11 - 14", 2521 | "indoor": 0, 2522 | "alt_names": "Scot Fold", 2523 | "adaptability": 5, 2524 | "affection_level": 5, 2525 | "child_friendly": 4, 2526 | "dog_friendly": 5, 2527 | "energy_level": 3, 2528 | "grooming": 1, 2529 | "health_issues": 4, 2530 | "intelligence": 3, 2531 | "shedding_level": 3, 2532 | "social_needs": 3, 2533 | "stranger_friendly": 3, 2534 | "vocalisation": 1, 2535 | "experimental": 0, 2536 | "hairless": 0, 2537 | "natural": 0, 2538 | "rare": 0, 2539 | "rex": 0, 2540 | "suppressed_tail": 0, 2541 | "short_legs": 0, 2542 | "wikipedia_url": "https://en.wikipedia.org/wiki/Scottish_Fold", 2543 | "hypoallergenic": 0, 2544 | "reference_image_id": "o9t0LDcsa", 2545 | "image": { 2546 | "id": "o9t0LDcsa", 2547 | "width": 1920, 2548 | "height": 1440, 2549 | "url": "https://cdn2.thecatapi.com/images/o9t0LDcsa.jpg" 2550 | } 2551 | }, 2552 | { 2553 | "weight": { 2554 | "imperial": "6 - 16", 2555 | "metric": "3 - 7" 2556 | }, 2557 | "id": "srex", 2558 | "name": "Selkirk Rex", 2559 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/SelkirkRex.aspx", 2560 | "vetstreet_url": "http://www.vetstreet.com/cats/selkirk-rex", 2561 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/selkirk-rex", 2562 | "temperament": "Active, Affectionate, Dependent, Gentle, Patient, Playful, Quiet, Social", 2563 | "origin": "United States", 2564 | "country_codes": "US", 2565 | "country_code": "US", 2566 | "description": "The Selkirk Rex is an incredibly patient, loving, and tolerant breed. The Selkirk also has a silly side and is sometimes described as clownish. She loves being a lap cat and will be happy to chat with you in a quiet voice if you talk to her. ", 2567 | "life_span": "14 - 15", 2568 | "indoor": 0, 2569 | "lap": 1, 2570 | "alt_names": "Shepherd Cat", 2571 | "adaptability": 5, 2572 | "affection_level": 5, 2573 | "child_friendly": 4, 2574 | "dog_friendly": 5, 2575 | "energy_level": 3, 2576 | "grooming": 2, 2577 | "health_issues": 4, 2578 | "intelligence": 3, 2579 | "shedding_level": 1, 2580 | "social_needs": 3, 2581 | "stranger_friendly": 3, 2582 | "vocalisation": 3, 2583 | "experimental": 0, 2584 | "hairless": 0, 2585 | "natural": 0, 2586 | "rare": 0, 2587 | "rex": 1, 2588 | "suppressed_tail": 0, 2589 | "short_legs": 0, 2590 | "wikipedia_url": "https://en.wikipedia.org/wiki/Selkirk_Rex", 2591 | "hypoallergenic": 1, 2592 | "reference_image_id": "II9dOZmrw", 2593 | "image": { 2594 | "id": "II9dOZmrw", 2595 | "width": 1920, 2596 | "height": 902, 2597 | "url": "https://cdn2.thecatapi.com/images/II9dOZmrw.jpg" 2598 | } 2599 | }, 2600 | { 2601 | "weight": { 2602 | "imperial": "8 - 15", 2603 | "metric": "4 - 7" 2604 | }, 2605 | "id": "siam", 2606 | "name": "Siamese", 2607 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/Siamese.aspx", 2608 | "vetstreet_url": "http://www.vetstreet.com/cats/siamese", 2609 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/siamese", 2610 | "temperament": "Active, Agile, Clever, Sociable, Loving, Energetic", 2611 | "origin": "Thailand", 2612 | "country_codes": "TH", 2613 | "country_code": "TH", 2614 | "description": "While Siamese cats are extremely fond of their people, they will follow you around and supervise your every move, being talkative and opinionated. They are a demanding and social cat, that do not like being left alone for long periods.", 2615 | "life_span": "12 - 15", 2616 | "indoor": 0, 2617 | "lap": 1, 2618 | "alt_names": "Siam, Thai Cat", 2619 | "adaptability": 5, 2620 | "affection_level": 5, 2621 | "child_friendly": 4, 2622 | "dog_friendly": 5, 2623 | "energy_level": 5, 2624 | "grooming": 1, 2625 | "health_issues": 1, 2626 | "intelligence": 5, 2627 | "shedding_level": 2, 2628 | "social_needs": 5, 2629 | "stranger_friendly": 5, 2630 | "vocalisation": 5, 2631 | "experimental": 0, 2632 | "hairless": 0, 2633 | "natural": 0, 2634 | "rare": 0, 2635 | "rex": 0, 2636 | "suppressed_tail": 0, 2637 | "short_legs": 0, 2638 | "wikipedia_url": "https://en.wikipedia.org/wiki/Siamese_(cat)", 2639 | "hypoallergenic": 1, 2640 | "reference_image_id": "ai6Jps4sx", 2641 | "image": { 2642 | "id": "ai6Jps4sx", 2643 | "width": 1110, 2644 | "height": 811, 2645 | "url": "https://cdn2.thecatapi.com/images/ai6Jps4sx.jpg" 2646 | } 2647 | }, 2648 | { 2649 | "weight": { 2650 | "imperial": "8 - 16", 2651 | "metric": "4 - 7" 2652 | }, 2653 | "id": "sibe", 2654 | "name": "Siberian", 2655 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/Siberian.aspx", 2656 | "vetstreet_url": "http://www.vetstreet.com/cats/siberian", 2657 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/siberian", 2658 | "temperament": "Curious, Intelligent, Loyal, Sweet, Agile, Playful, Affectionate", 2659 | "origin": "Russia", 2660 | "country_codes": "RU", 2661 | "country_code": "RU", 2662 | "description": "The Siberians dog like temperament and affection makes the ideal lap cat and will live quite happily indoors. Very agile and powerful, the Siberian cat can easily leap and reach high places, including the tops of refrigerators and even doors. ", 2663 | "life_span": "12 - 15", 2664 | "indoor": 0, 2665 | "lap": 1, 2666 | "alt_names": "Moscow Semi-longhair, HairSiberian Forest Cat", 2667 | "adaptability": 5, 2668 | "affection_level": 5, 2669 | "child_friendly": 4, 2670 | "dog_friendly": 5, 2671 | "energy_level": 5, 2672 | "grooming": 2, 2673 | "health_issues": 2, 2674 | "intelligence": 5, 2675 | "shedding_level": 3, 2676 | "social_needs": 4, 2677 | "stranger_friendly": 3, 2678 | "vocalisation": 1, 2679 | "experimental": 0, 2680 | "hairless": 0, 2681 | "natural": 1, 2682 | "rare": 0, 2683 | "rex": 0, 2684 | "suppressed_tail": 0, 2685 | "short_legs": 0, 2686 | "wikipedia_url": "https://en.wikipedia.org/wiki/Siberian_(cat)", 2687 | "hypoallergenic": 1, 2688 | "reference_image_id": "3bkZAjRh1", 2689 | "image": { 2690 | "id": "3bkZAjRh1", 2691 | "width": 4232, 2692 | "height": 2560, 2693 | "url": "https://cdn2.thecatapi.com/images/3bkZAjRh1.jpg" 2694 | } 2695 | }, 2696 | { 2697 | "weight": { 2698 | "imperial": "5 - 8", 2699 | "metric": "2 - 4" 2700 | }, 2701 | "id": "sing", 2702 | "name": "Singapura", 2703 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/Singapura.aspx", 2704 | "vetstreet_url": "http://www.vetstreet.com/cats/singapura", 2705 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/singapura", 2706 | "temperament": "Affectionate, Curious, Easy Going, Intelligent, Interactive, Lively, Loyal", 2707 | "origin": "Singapore", 2708 | "country_codes": "SP", 2709 | "country_code": "SP", 2710 | "description": "The Singapura is usually cautious when it comes to meeting new people, but loves attention from his family so much that she sometimes has the reputation of being a pest. This is a highly active, curious and affectionate cat. She may be small, but she knows she’s in charge", 2711 | "life_span": "12 - 15", 2712 | "indoor": 0, 2713 | "lap": 1, 2714 | "alt_names": "Drain Cat, Kucinta, Pura", 2715 | "adaptability": 5, 2716 | "affection_level": 5, 2717 | "child_friendly": 4, 2718 | "dog_friendly": 5, 2719 | "energy_level": 5, 2720 | "grooming": 1, 2721 | "health_issues": 1, 2722 | "intelligence": 5, 2723 | "shedding_level": 3, 2724 | "social_needs": 5, 2725 | "stranger_friendly": 5, 2726 | "vocalisation": 1, 2727 | "experimental": 0, 2728 | "hairless": 0, 2729 | "natural": 0, 2730 | "rare": 0, 2731 | "rex": 0, 2732 | "suppressed_tail": 0, 2733 | "short_legs": 0, 2734 | "wikipedia_url": "https://en.wikipedia.org/wiki/Singapura_(cat)", 2735 | "hypoallergenic": 0, 2736 | "reference_image_id": "Qtncp2nRe", 2737 | "image": { 2738 | "id": "Qtncp2nRe", 2739 | "width": 1080, 2740 | "height": 1350, 2741 | "url": "https://cdn2.thecatapi.com/images/Qtncp2nRe.jpg" 2742 | } 2743 | }, 2744 | { 2745 | "weight": { 2746 | "imperial": "7 - 12", 2747 | "metric": "3 - 5" 2748 | }, 2749 | "id": "snow", 2750 | "name": "Snowshoe", 2751 | "temperament": "Affectionate, Social, Intelligent, Sweet-tempered", 2752 | "origin": "United States", 2753 | "country_codes": "US", 2754 | "country_code": "US", 2755 | "description": "The Snowshoe is a vibrant, energetic, affectionate and intelligent cat. They love being around people which makes them ideal for families, and becomes unhappy when left alone for long periods of time. Usually attaching themselves to one person, they do whatever they can to get your attention.", 2756 | "life_span": "14 - 19", 2757 | "indoor": 0, 2758 | "lap": 1, 2759 | "alt_names": "", 2760 | "adaptability": 5, 2761 | "affection_level": 5, 2762 | "child_friendly": 4, 2763 | "dog_friendly": 5, 2764 | "energy_level": 4, 2765 | "grooming": 3, 2766 | "health_issues": 1, 2767 | "intelligence": 5, 2768 | "shedding_level": 3, 2769 | "social_needs": 4, 2770 | "stranger_friendly": 4, 2771 | "vocalisation": 5, 2772 | "experimental": 0, 2773 | "hairless": 0, 2774 | "natural": 0, 2775 | "rare": 0, 2776 | "rex": 0, 2777 | "suppressed_tail": 0, 2778 | "short_legs": 0, 2779 | "wikipedia_url": "https://en.wikipedia.org/wiki/Snowshoe_(cat)", 2780 | "hypoallergenic": 0, 2781 | "reference_image_id": "MK-sYESvO", 2782 | "image": { 2783 | "id": "MK-sYESvO", 2784 | "width": 1170, 2785 | "height": 750, 2786 | "url": "https://cdn2.thecatapi.com/images/MK-sYESvO.jpg" 2787 | } 2788 | }, 2789 | { 2790 | "weight": { 2791 | "imperial": "6 - 12", 2792 | "metric": "3 - 5" 2793 | }, 2794 | "id": "soma", 2795 | "name": "Somali", 2796 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/Somali.aspx", 2797 | "vetstreet_url": "http://www.vetstreet.com/cats/somali", 2798 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/somali", 2799 | "temperament": "Mischievous, Tenacious, Intelligent, Affectionate, Gentle, Interactive, Loyal", 2800 | "origin": "Somalia", 2801 | "country_codes": "SO", 2802 | "country_code": "SO", 2803 | "description": "The Somali lives life to the fullest. He climbs higher, jumps farther, plays harder. Nothing escapes the notice of this highly intelligent and inquisitive cat. Somalis love the company of humans and other animals.", 2804 | "life_span": "12 - 16", 2805 | "indoor": 0, 2806 | "alt_names": "Fox Cat, Long-Haired Abyssinian", 2807 | "adaptability": 5, 2808 | "affection_level": 5, 2809 | "child_friendly": 3, 2810 | "dog_friendly": 4, 2811 | "energy_level": 5, 2812 | "grooming": 3, 2813 | "health_issues": 2, 2814 | "intelligence": 5, 2815 | "shedding_level": 4, 2816 | "social_needs": 5, 2817 | "stranger_friendly": 5, 2818 | "vocalisation": 1, 2819 | "experimental": 0, 2820 | "hairless": 0, 2821 | "natural": 0, 2822 | "rare": 0, 2823 | "rex": 0, 2824 | "suppressed_tail": 0, 2825 | "short_legs": 0, 2826 | "wikipedia_url": "https://en.wikipedia.org/wiki/Somali_(cat)", 2827 | "hypoallergenic": 0, 2828 | "reference_image_id": "EPF2ejNS0", 2829 | "image": { 2830 | "id": "EPF2ejNS0", 2831 | "width": 850, 2832 | "height": 1008, 2833 | "url": "https://cdn2.thecatapi.com/images/EPF2ejNS0.jpg" 2834 | } 2835 | }, 2836 | { 2837 | "weight": { 2838 | "imperial": "6 - 12", 2839 | "metric": "3 - 5" 2840 | }, 2841 | "id": "sphy", 2842 | "name": "Sphynx", 2843 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/Sphynx.aspx", 2844 | "vetstreet_url": "http://www.vetstreet.com/cats/sphynx", 2845 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/sphynx", 2846 | "temperament": "Loyal, Inquisitive, Friendly, Quiet, Gentle", 2847 | "origin": "Canada", 2848 | "country_codes": "CA", 2849 | "country_code": "CA", 2850 | "description": "The Sphynx is an intelligent, inquisitive, extremely friendly people-oriented breed. Sphynx commonly greet their owners at the front door, with obvious excitement and happiness. She has an unexpected sense of humor that is often at odds with her dour expression.", 2851 | "life_span": "12 - 14", 2852 | "indoor": 0, 2853 | "lap": 1, 2854 | "alt_names": "Canadian Hairless, Canadian Sphynx", 2855 | "adaptability": 5, 2856 | "affection_level": 5, 2857 | "child_friendly": 4, 2858 | "dog_friendly": 5, 2859 | "energy_level": 3, 2860 | "grooming": 2, 2861 | "health_issues": 4, 2862 | "intelligence": 5, 2863 | "shedding_level": 1, 2864 | "social_needs": 5, 2865 | "stranger_friendly": 5, 2866 | "vocalisation": 5, 2867 | "experimental": 0, 2868 | "hairless": 1, 2869 | "natural": 0, 2870 | "rare": 1, 2871 | "rex": 0, 2872 | "suppressed_tail": 0, 2873 | "short_legs": 0, 2874 | "wikipedia_url": "https://en.wikipedia.org/wiki/Sphynx_(cat)", 2875 | "hypoallergenic": 1, 2876 | "reference_image_id": "BDb8ZXb1v", 2877 | "image": { 2878 | "id": "BDb8ZXb1v", 2879 | "width": 1600, 2880 | "height": 1067, 2881 | "url": "https://cdn2.thecatapi.com/images/BDb8ZXb1v.jpg" 2882 | } 2883 | }, 2884 | { 2885 | "weight": { 2886 | "imperial": "6 - 12", 2887 | "metric": "3 - 5" 2888 | }, 2889 | "id": "tonk", 2890 | "name": "Tonkinese", 2891 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/Tonkinese.aspx", 2892 | "vetstreet_url": "http://www.vetstreet.com/cats/tonkinese", 2893 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/tonkinese", 2894 | "temperament": "Curious, Intelligent, Social, Lively, Outgoing, Playful, Affectionate", 2895 | "origin": "Canada", 2896 | "country_codes": "CA", 2897 | "country_code": "CA", 2898 | "description": "Intelligent and generous with their affection, a Tonkinese will supervise all activities with curiosity. Loving, social, active, playful, yet content to be a lap cat", 2899 | "life_span": "14 - 16", 2900 | "indoor": 0, 2901 | "lap": 1, 2902 | "alt_names": "Tonk", 2903 | "adaptability": 5, 2904 | "affection_level": 5, 2905 | "child_friendly": 4, 2906 | "dog_friendly": 5, 2907 | "energy_level": 5, 2908 | "grooming": 1, 2909 | "health_issues": 1, 2910 | "intelligence": 5, 2911 | "shedding_level": 3, 2912 | "social_needs": 5, 2913 | "stranger_friendly": 5, 2914 | "vocalisation": 5, 2915 | "experimental": 0, 2916 | "hairless": 0, 2917 | "natural": 0, 2918 | "rare": 0, 2919 | "rex": 0, 2920 | "suppressed_tail": 0, 2921 | "short_legs": 0, 2922 | "wikipedia_url": "https://en.wikipedia.org/wiki/Tonkinese_(cat)", 2923 | "hypoallergenic": 0, 2924 | "reference_image_id": "KBroiVNCM", 2925 | "image": { 2926 | "id": "KBroiVNCM", 2927 | "width": 1080, 2928 | "height": 1080, 2929 | "url": "https://cdn2.thecatapi.com/images/KBroiVNCM.jpg" 2930 | } 2931 | }, 2932 | { 2933 | "weight": { 2934 | "imperial": "7 - 15", 2935 | "metric": "3 - 7" 2936 | }, 2937 | "id": "toyg", 2938 | "name": "Toyger", 2939 | "vetstreet_url": "http://www.vetstreet.com/cats/toyger", 2940 | "temperament": "Playful, Social, Intelligent", 2941 | "origin": "United States", 2942 | "country_codes": "US", 2943 | "country_code": "US", 2944 | "description": "The Toyger has a sweet, calm personality and is generally friendly. He's outgoing enough to walk on a leash, energetic enough to play fetch and other interactive games, and confident enough to get along with other cats and friendly dogs.", 2945 | "life_span": "12 - 15", 2946 | "indoor": 0, 2947 | "lap": 1, 2948 | "alt_names": "", 2949 | "adaptability": 5, 2950 | "affection_level": 5, 2951 | "child_friendly": 4, 2952 | "dog_friendly": 5, 2953 | "energy_level": 5, 2954 | "grooming": 1, 2955 | "health_issues": 2, 2956 | "intelligence": 5, 2957 | "shedding_level": 3, 2958 | "social_needs": 3, 2959 | "stranger_friendly": 5, 2960 | "vocalisation": 5, 2961 | "experimental": 0, 2962 | "hairless": 0, 2963 | "natural": 0, 2964 | "rare": 0, 2965 | "rex": 0, 2966 | "suppressed_tail": 0, 2967 | "short_legs": 0, 2968 | "wikipedia_url": "https://en.wikipedia.org/wiki/Toyger", 2969 | "hypoallergenic": 0, 2970 | "reference_image_id": "O3F3_S1XN", 2971 | "image": { 2972 | "id": "O3F3_S1XN", 2973 | "width": 1080, 2974 | "height": 1080, 2975 | "url": "https://cdn2.thecatapi.com/images/O3F3_S1XN.jpg" 2976 | } 2977 | }, 2978 | { 2979 | "weight": { 2980 | "imperial": "5 - 10", 2981 | "metric": "2 - 5" 2982 | }, 2983 | "id": "tang", 2984 | "name": "Turkish Angora", 2985 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/TurkishAngora.aspx", 2986 | "vetstreet_url": "http://www.vetstreet.com/cats/turkish-angora", 2987 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/turkish-angora", 2988 | "temperament": "Affectionate, Agile, Clever, Gentle, Intelligent, Playful, Social", 2989 | "origin": "Turkey", 2990 | "country_codes": "TR", 2991 | "country_code": "TR", 2992 | "description": "This is a smart and intelligent cat which bonds well with humans. With its affectionate and playful personality the Angora is a top choice for families. The Angora gets along great with other pets in the home, but it will make clear who is in charge, and who the house belongs to", 2993 | "life_span": "15 - 18", 2994 | "indoor": 0, 2995 | "alt_names": "Ankara", 2996 | "adaptability": 5, 2997 | "affection_level": 5, 2998 | "child_friendly": 4, 2999 | "dog_friendly": 5, 3000 | "energy_level": 5, 3001 | "grooming": 2, 3002 | "health_issues": 2, 3003 | "intelligence": 5, 3004 | "shedding_level": 2, 3005 | "social_needs": 5, 3006 | "stranger_friendly": 5, 3007 | "vocalisation": 3, 3008 | "experimental": 0, 3009 | "hairless": 0, 3010 | "natural": 1, 3011 | "rare": 0, 3012 | "rex": 0, 3013 | "suppressed_tail": 0, 3014 | "short_legs": 0, 3015 | "wikipedia_url": "https://en.wikipedia.org/wiki/Turkish_Angora", 3016 | "hypoallergenic": 0, 3017 | "reference_image_id": "7CGV6WVXq", 3018 | "image": { 3019 | "id": "7CGV6WVXq", 3020 | "width": 736, 3021 | "height": 1104, 3022 | "url": "https://cdn2.thecatapi.com/images/7CGV6WVXq.jpg" 3023 | } 3024 | }, 3025 | { 3026 | "weight": { 3027 | "imperial": "7 - 20", 3028 | "metric": "3 - 9" 3029 | }, 3030 | "id": "tvan", 3031 | "name": "Turkish Van", 3032 | "cfa_url": "http://cfa.org/Breeds/BreedsSthruT/TurkishVan.aspx", 3033 | "vetstreet_url": "http://www.vetstreet.com/cats/turkish-van", 3034 | "vcahospitals_url": "https://vcahospitals.com/know-your-pet/cat-breeds/turkish-van", 3035 | "temperament": "Agile, Intelligent, Loyal, Playful, Energetic", 3036 | "origin": "Turkey", 3037 | "country_codes": "TR", 3038 | "country_code": "TR", 3039 | "description": "While the Turkish Van loves to jump and climb, play with toys, retrieve and play chase, she is is big and ungainly; this is one cat who doesn’t always land on his feet. While not much of a lap cat, the Van will be happy to cuddle next to you and sleep in your bed. ", 3040 | "life_span": "12 - 17", 3041 | "indoor": 0, 3042 | "alt_names": "Turkish Cat, Swimming cat", 3043 | "adaptability": 5, 3044 | "affection_level": 5, 3045 | "child_friendly": 4, 3046 | "dog_friendly": 5, 3047 | "energy_level": 5, 3048 | "grooming": 2, 3049 | "health_issues": 1, 3050 | "intelligence": 5, 3051 | "shedding_level": 3, 3052 | "social_needs": 4, 3053 | "stranger_friendly": 4, 3054 | "vocalisation": 5, 3055 | "experimental": 0, 3056 | "hairless": 0, 3057 | "natural": 1, 3058 | "rare": 0, 3059 | "rex": 0, 3060 | "suppressed_tail": 0, 3061 | "short_legs": 0, 3062 | "wikipedia_url": "https://en.wikipedia.org/wiki/Turkish_Van", 3063 | "hypoallergenic": 0, 3064 | "reference_image_id": "sxIXJax6h", 3065 | "image": { 3066 | "id": "sxIXJax6h", 3067 | "width": 960, 3068 | "height": 1280, 3069 | "url": "https://cdn2.thecatapi.com/images/sxIXJax6h.jpg" 3070 | } 3071 | }, 3072 | { 3073 | "weight": { 3074 | "imperial": "12 - 18", 3075 | "metric": "5 - 8" 3076 | }, 3077 | "id": "ycho", 3078 | "name": "York Chocolate", 3079 | "temperament": "Playful, Social, Intelligent, Curious, Friendly", 3080 | "origin": "United States", 3081 | "country_codes": "US", 3082 | "country_code": "US", 3083 | "description": "York Chocolate cats are known to be true lap cats with a sweet temperament. They love to be cuddled and petted. Their curious nature makes them follow you all the time and participate in almost everything you do, even if it's related to water: unlike many other cats, York Chocolates love it.", 3084 | "life_span": "13 - 15", 3085 | "indoor": 0, 3086 | "lap": 1, 3087 | "alt_names": "York", 3088 | "adaptability": 5, 3089 | "affection_level": 5, 3090 | "child_friendly": 4, 3091 | "dog_friendly": 5, 3092 | "energy_level": 5, 3093 | "grooming": 3, 3094 | "health_issues": 1, 3095 | "intelligence": 5, 3096 | "shedding_level": 3, 3097 | "social_needs": 4, 3098 | "stranger_friendly": 4, 3099 | "vocalisation": 5, 3100 | "experimental": 0, 3101 | "hairless": 0, 3102 | "natural": 0, 3103 | "rare": 0, 3104 | "rex": 0, 3105 | "suppressed_tail": 0, 3106 | "short_legs": 0, 3107 | "wikipedia_url": "https://en.wikipedia.org/wiki/York_Chocolate", 3108 | "hypoallergenic": 0, 3109 | "reference_image_id": "0SxW2SQ_S", 3110 | "image": { 3111 | "id": "0SxW2SQ_S", 3112 | "width": 800, 3113 | "height": 1203, 3114 | "url": "https://cdn2.thecatapi.com/images/0SxW2SQ_S.jpg" 3115 | } 3116 | } 3117 | ] -------------------------------------------------------------------------------- /WEEK-3/cats_weight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/cats_weight.png -------------------------------------------------------------------------------- /WEEK-3/download_image.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import json 3 | from fetch_api import fetch_api 4 | url = 'https://api.thecatapi.com/v1/breeds' 5 | data = fetch_api(url) 6 | with open('cats.json', 'w', encoding='utf-8') as f: 7 | json.dump(data, f, ensure_ascii=False, indent=4) 8 | 9 | """ for cat in data: 10 | if 'image' in cat: 11 | img_url = cat['image']['url'] 12 | img = requests.get(img_url).content 13 | name = cat["name"] 14 | with open(f'images/{name}.jpg', 'wb') as f: 15 | f.write(img) """ 16 | 17 | -------------------------------------------------------------------------------- /WEEK-3/example.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name":"Asabneeh", 4 | "age":250 5 | }, 6 | { 7 | "name": "John", 8 | "age": 25, 9 | "skills":["HTML","css"] 10 | } 11 | ] -------------------------------------------------------------------------------- /WEEK-3/fetch_api.py: -------------------------------------------------------------------------------- 1 | import requests 2 | def fetch_api(url): 3 | response = requests.get(url) 4 | return response.json() 5 | 6 | -------------------------------------------------------------------------------- /WEEK-3/fetching-data.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import matplotlib.pyplot as plt 3 | from pprint import pprint 4 | from fetch_api import fetch_api 5 | from wordcloud import WordCloud 6 | 7 | url = 'https://api.thecatapi.com/v1/breeds' 8 | data = fetch_api(url) 9 | 10 | extracted_data = [] 11 | for cat in data: 12 | wt_metric_unit = cat['weight']['metric'].split() 13 | lowest_wt = int(wt_metric_unit[0]) 14 | highest_wt = int(wt_metric_unit[2]) 15 | average_wt = (lowest_wt + highest_wt) / 2 16 | life_span = cat["life_span"].split() 17 | life_span_lowest = int(life_span[0]) 18 | life_span_highest = int(life_span[2]) 19 | average_life_span = (life_span_lowest + life_span_highest) / 2 20 | extracted_data.append({ 21 | 'name':cat['name'], 22 | 'weight':average_wt, 23 | 'life_span':average_life_span 24 | }) 25 | # pprint(extracted_data) 26 | 27 | sorted_cat = sorted(extracted_data, key = lambda x:x['weight'], reverse=True)[:10] 28 | 29 | names = [item['name'] for item in sorted_cat] 30 | weights = [item['weight'] for item in sorted_cat] 31 | 32 | """ plt.bar(names, weights) 33 | plt.xlabel('Names') 34 | plt.ylabel('Weight in Kg') 35 | plt.title('Cats Name and their weight') 36 | plt.tight_layout(pad=0) 37 | plt.savefig('cats_weight.png') 38 | plt.show() """ 39 | 40 | stop_words = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're", "you've", "you'll", "you'd", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', "she's", 'her', 'hers', 'herself', 'it', "it's", 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', "that'll", 'these', 'those', 'am', 'is', 'are', 'was', 'were', 41 | 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', "don't", 'should', "should've", 'now', 'd', 'll', 'm', 'o', 're', 've', 'y', 'ain', 'aren', "aren't", 'couldn', "couldn't", 'didn', "didn't", 'doesn', "doesn't", 'hadn', "hadn't", 'hasn', "hasn't", 'haven', "haven't", 'isn', "isn't", 'ma', 'mightn', "mightn't", 'mustn', "mustn't", 'needn', "needn't", 'shan', "shan't", 'shouldn', "shouldn't", 'wasn', "wasn't", 'weren', "weren't", 'won', "won't", 'wouldn', "wouldn't"] 42 | 43 | 44 | import re 45 | 46 | 47 | text = '' 48 | for cat in data: 49 | text = text + cat['description'] 50 | 51 | cleaned_text = re.sub(r'[^a-zA-Z ]', ' ', text.lower()) 52 | words = cleaned_text.split() 53 | words = [word for word in words if word not in stop_words] 54 | # pprint(words) 55 | 56 | freq_table = {} 57 | for word in words: 58 | if word in freq_table: 59 | freq_table[word] = freq_table[word] + 1 60 | else: 61 | freq_table[word] = 1 62 | 63 | 64 | sorted_dict = {k:v for k, v in sorted(freq_table.items(), key=lambda item: item[1], reverse=True)} 65 | print(sorted_dict) 66 | 67 | wordcloud = WordCloud().generate(' '.join(words)) 68 | plt.imshow(wordcloud, interpolation='bilinear') 69 | plt.figure() 70 | plt.axis("off") 71 | plt.show() 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /WEEK-3/functional-programming.py: -------------------------------------------------------------------------------- 1 | # map, filter, reduce 2 | from pprint import pprint 3 | nums = [1, 2, 3, 4, 5] # [1, 4, 6, 8, 10] 4 | """ 5 | new_nums = [] 6 | for n in nums: 7 | new_nums.append([n, n * 2, n ** 2, n ** 3]) 8 | 9 | pprint(new_nums) """ 10 | 11 | new_nums = [[n, n * 2, n ** 2, n ** 3] for n in nums] 12 | print(new_nums) 13 | 14 | countries = ['Finland', 'Sweden', 'Denmark', 'Norway', 'Iceland'] 15 | new_countries = [[c, c.upper(), c.upper()[:3], len(c)] for c in countries] 16 | print(new_countries) 17 | 18 | value = lambda x, y: x ** 2 + 2 * x * y + 10 19 | print(value(2, 3)) # 4 + 12 +10 = 26 20 | 21 | 22 | new_list = map(lambda x : [x, x *2, x ** 2, x ** 3], nums) 23 | print(list(new_list)) 24 | 25 | new_countries_list = map(lambda c: [c, c.upper(), c.upper()[:3]], countries) 26 | print(list(new_countries_list)) 27 | 28 | """ # Filter 29 | evens = [] 30 | for n in nums: 31 | if n % 2 == 0: 32 | evens.append(n) 33 | print(evens) 34 | 35 | # Filter 36 | odds = [] 37 | for n in nums: 38 | if n % 2 != 0: 39 | odds.append(n) 40 | print(odds) """ 41 | 42 | 43 | """ evens = [n for n in nums if n % 2 == 0] 44 | odds= [n for n in nums if n % 2 != 0] 45 | print(evens, odds) """ 46 | 47 | evens = list(filter(lambda x: x % 2 == 0, nums)) 48 | print(evens) 49 | odds = list(filter(lambda x: x % 2 != 0, nums)) 50 | print(odds) 51 | 52 | countries_with_land = list(filter(lambda c: 'land' in c, countries)) 53 | print(countries_with_land) 54 | 55 | countries_without_land = list(filter(lambda c: 'land' not in c, countries)) 56 | print(countries_without_land) 57 | 58 | # reduce 59 | from functools import reduce 60 | 61 | total = reduce(lambda acc, cur: acc + cur, nums) 62 | print(total) 63 | 64 | product = reduce(lambda acc, cur: acc * cur, nums) 65 | print(product) 66 | 67 | 68 | -------------------------------------------------------------------------------- /WEEK-3/images/Abyssinian.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Abyssinian.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Aegean.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Aegean.jpg -------------------------------------------------------------------------------- /WEEK-3/images/American Bobtail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/American Bobtail.jpg -------------------------------------------------------------------------------- /WEEK-3/images/American Curl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/American Curl.jpg -------------------------------------------------------------------------------- /WEEK-3/images/American Shorthair.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/American Shorthair.jpg -------------------------------------------------------------------------------- /WEEK-3/images/American Wirehair.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/American Wirehair.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Arabian Mau.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Arabian Mau.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Australian Mist.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Australian Mist.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Balinese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Balinese.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Bambino.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Bambino.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Bengal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Bengal.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Birman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Birman.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Bombay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Bombay.jpg -------------------------------------------------------------------------------- /WEEK-3/images/British Longhair.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/British Longhair.jpg -------------------------------------------------------------------------------- /WEEK-3/images/British Shorthair.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/British Shorthair.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Burmese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Burmese.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Burmilla.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Burmilla.jpg -------------------------------------------------------------------------------- /WEEK-3/images/California Spangled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/California Spangled.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Chantilly-Tiffany.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Chantilly-Tiffany.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Chartreux.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Chartreux.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Chausie.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Chausie.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Cheetoh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Cheetoh.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Colorpoint Shorthair.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Colorpoint Shorthair.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Cornish Rex.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Cornish Rex.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Cymric.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Cymric.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Cyprus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Cyprus.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Devon Rex.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Devon Rex.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Donskoy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Donskoy.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Dragon Li.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Dragon Li.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Egyptian Mau.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Egyptian Mau.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Exotic Shorthair.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Exotic Shorthair.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Havana Brown.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Havana Brown.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Himalayan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Himalayan.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Japanese Bobtail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Japanese Bobtail.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Javanese.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Javanese.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Khao Manee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Khao Manee.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Korat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Korat.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Kurilian.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Kurilian.jpg -------------------------------------------------------------------------------- /WEEK-3/images/LaPerm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/LaPerm.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Maine Coon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Maine Coon.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Manx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Manx.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Munchkin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Munchkin.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Nebelung.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Nebelung.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Norwegian Forest Cat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Norwegian Forest Cat.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Ocicat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Ocicat.jpg -------------------------------------------------------------------------------- /WEEK-3/images/Oriental.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-3/images/Oriental.jpg -------------------------------------------------------------------------------- /WEEK-4/exercises/exercises.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WEEK-4/exercises/palindrome.py: -------------------------------------------------------------------------------- 1 | 2 | sentence = """He met his mom at noon and she was watching an epsoide of the begninging of her Solos. Her tenet helped her to level up her stats. After that he went to kayak driving Civic Honda.""" 3 | 4 | def reverse_word (word): 5 | return word[::-1] 6 | 7 | def is_palindrome(word): 8 | reversed_word = reverse_word(word.lower()) 9 | if word.lower() == reversed_word: 10 | return True 11 | return False 12 | 13 | def find_list_palindrome(string): 14 | import re 15 | words = re.sub(r'[^a-zA-Z ]', '', string.lower()).split() 16 | palindromes = [] 17 | for word in words: 18 | if is_palindrome(word): 19 | palindromes.append(word) 20 | return palindromes 21 | 22 | print(find_list_palindrome(sentence)) 23 | 24 | def find_number_of_palindromes(string): 25 | palindromes =find_list_palindrome(string) 26 | return len(palindromes) 27 | 28 | print(find_number_of_palindromes(sentence)) -------------------------------------------------------------------------------- /WEEK-4/exercises/quadratic-equation.py: -------------------------------------------------------------------------------- 1 | paragraph = 'I love teaching. If you do not love teaching, what else can you love. I love JavaScript if you do not love something ? which can give life to your application what else can you love.' 2 | # print(count_words(paragraph,'love')) 3 | # 6 4 | 5 | text = ''' 6 | Congratulations on deciding to participate in 30 days of JavaScript programming challenge. In this challenge you will learn everything you need to be a JavaScript programmer, and in general, the whole concept of programming. In the end of the challenge you will get a 30DaysOfJavaScript programming challenge completion certificate. In case you need help or if you would like to help others you may join the telegram group. 7 | 8 | A 30DaysOfJavaScript challenge is a guide for both beginners and advanced JavaScript developers. Welcome to JavaScript. JavaScript is the language of the web. I enjoy using and teaching JavaScript and I hope you will do so too. 9 | 10 | In this step by step JavaScript challenge, you will learn JavaScript, the most popular programming language in the history of mankind. JavaScript is used to add interactivity to websites, to develop mobile apps, desktop applications, games and nowadays JavaScript can be used for machine learning and AI. JavaScript (JS) has increased in popularity in recent years and has been the leading programming language for six consecutive years and is the most used programming language on Github. 11 | 12 | ''' 13 | def count_words (string, target): 14 | import re 15 | cleaned_text = re.sub('[^a-zA-Z ]', '', string) 16 | words = cleaned_text.lower().split() 17 | count = 0 18 | for word in words: 19 | if word == target.lower(): 20 | count = count + 1 21 | return count 22 | 23 | print(count_words(paragraph, 'you')) 24 | print(count_words(text, 'javascript')) 25 | 26 | -------------------------------------------------------------------------------- /WEEK-4/exercises/res.py: -------------------------------------------------------------------------------- 1 | # string = '' 2 | # for i in range(len('hello'), ): 3 | # print('hello'[i]) 4 | 5 | # for x in range(2, -1, -1): 6 | # print(x) 7 | 8 | 9 | 10 | print(list(range(0, 101))) 11 | 12 | evens = list(range(0, 101, 2)) 13 | print(evens) 14 | odds = list(range(1, 101, 2)) 15 | print(odds) 16 | 17 | print(list(range(10, -1, -1))) 18 | 19 | 20 | 21 | def reverse_word(word): 22 | reversed_word = '' 23 | for i in range(len(word)-1, -1, -1): 24 | reversed_word = reversed_word + word[i] 25 | return reversed_word 26 | print(reverse_word('Hello')) 27 | print(reverse_word('Book')) 28 | 29 | 30 | # Write a function that return list of palindrome words from the given string. 31 | 32 | def find_list_palindrom(string): 33 | return [] 34 | 35 | 36 | 37 | """ def reverse_word (word): 38 | return word[::-1] 39 | """ 40 | 41 | """ def reverse_word (word): 42 | word = list(word) 43 | word.reverse() 44 | return ''.join(word) 45 | 46 | print(reverse_word('Asab')) """ 47 | 48 | """ def reverse_word(word): 49 | reversed_word = '' 50 | for i in range(len(word)-1, -1, -1): 51 | reversed_word = reversed_word + word[i] 52 | return reversed_word """ -------------------------------------------------------------------------------- /WEEK-5/OOP/OOP.py: -------------------------------------------------------------------------------- 1 | class Person: 2 | @staticmethod 3 | def static_method(): 4 | return 'I am availe from the class' 5 | def __init__(self, firstname, lastname, age, country): 6 | self.firstname = firstname 7 | self.lastname = lastname 8 | self.age = age 9 | self.country = country 10 | self.skills = [] 11 | def get_perrson_info(self): 12 | return f'He is {self.firstname} {self.lastname}. He is from {self.country}. He is {self.age} years old.' 13 | def add_skill(self, skill): 14 | self.skills.append(skill) 15 | def get_skills(self): 16 | result = ', '.join(self.skills) if len( self.skills) > 0 else 'No skills' 17 | return result 18 | 19 | p = Person('John','Doe', 25, 'UK') 20 | print(p) 21 | print(p.get_perrson_info()) 22 | 23 | p.add_skill('HTML') 24 | p.add_skill('CSS') 25 | p.add_skill('JS') 26 | p.add_skill('React') 27 | p.add_skill('Python') 28 | print(p.get_skills()) 29 | 30 | # Inheritance // creating a child / creating is gone be so easy using Python 31 | # 32 | 33 | class Student(Person): 34 | def __init__(self, firstname, lastname, age, country, gender): 35 | self.gender = gender 36 | self.hobbies = [] 37 | self.points = 0 38 | super().__init__(firstname, lastname, age, country) 39 | 40 | def get_perrson_info(self): 41 | pronoun = 'He' if self.gender == 'Male' else 'She' 42 | result = ', '.join(self.skills) if len( self.skills) > 0 else '' 43 | statement = result and f'{pronoun} has the following skills:{result}.' 44 | return f'{pronoun} is {self.firstname} {self.lastname}. {pronoun} is from {self.country}. {pronoun} is {self.age} years old. {statement} ' 45 | def add_hoby(self, hobby): 46 | self.hobbies.append(hobby) 47 | def get_hobbies(self): 48 | return self.hobbies 49 | def add_point(self, point = 5): 50 | self.points = self.points + point 51 | def get_points(self): 52 | return self.points 53 | 54 | 55 | s = Student('Elina', 'Sami', 21, 'Finland', 'Female') 56 | print(s.firstname) 57 | 58 | s.add_skill('Python') 59 | s.add_skill('Git and GitHub') 60 | s.add_skill('React') 61 | s.add_skill('Data Analysis') 62 | print(s.get_perrson_info()) 63 | 64 | print(s.get_skills()) 65 | s.add_point() 66 | print(s.get_skills()) 67 | s.add_point(95) 68 | print(s.get_points()) 69 | 70 | print(Person.static_method()) 71 | 72 | 73 | class Animal: 74 | def _init__(self, name, age, legs): 75 | self.name = name 76 | self.age = age 77 | self.legs = legs 78 | def methods_class(self): 79 | pass 80 | 81 | dog = Animal('Fluffy',8, 4) 82 | cat = Animal('Murri',4, 4) 83 | -------------------------------------------------------------------------------- /WEEK-5/OOP/declaring-class.py: -------------------------------------------------------------------------------- 1 | # Class 2 | 3 | class Car: 4 | def __init__(self, model, brand, greabox, color) : 5 | self.model = model 6 | self.brand = brand 7 | self.gearbox = greabox 8 | self.color = color 9 | 10 | toyota = Car(2021,'Toyota Corolla', 'Automatic','Blue black') 11 | print(toyota.model) 12 | 13 | 14 | class Dog: 15 | def __init__(self, name, age, country): 16 | self.name = name 17 | self.age = age 18 | self.country = country 19 | 20 | d1 = Dog('Fluffy',8, 'Greece') 21 | print(d1.name) 22 | print(d1.age) 23 | print(d1.country) 24 | 25 | d2 = Dog('Husky', 10, 'Finland') 26 | print(d2.name) 27 | print(d2.age) 28 | print(d2.country) 29 | 30 | class NameOfClass: 31 | def __init__(self, name, gender, country): 32 | self.name = name 33 | self.gender = gender 34 | self.country = country 35 | 36 | ob = NameOfClass('John', 'Male','UK') -------------------------------------------------------------------------------- /WEEK-5/function-revison.py: -------------------------------------------------------------------------------- 1 | def make_square (n): 2 | return n ** 2 3 | 4 | def multiply_nums(a, b, c): 5 | return a * b * c 6 | 7 | print(make_square(2)) 8 | print(multiply_nums(2, 3, 4)) -------------------------------------------------------------------------------- /WEEK-5/practice.py: -------------------------------------------------------------------------------- 1 | 2 | def addTwo(a, b): 3 | return a + b 4 | 5 | 6 | 7 | 8 | def sum_all_nums(*args): 9 | from functools import reduce 10 | return reduce(lambda x, y: x + y, args) 11 | 12 | print(sum_all_nums(1, 2, 3, 5, 6, 1000)) 13 | 14 | 15 | def create_list_evens(n): 16 | return [i for i in range(0, n + 1, 2)] 17 | 18 | print(create_list_evens(100)) 19 | 20 | # How you name your variables and functions 21 | # purity of the function 22 | # -------------------------------------------------------------------------------- /WEEK-5/regex/regex.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | """ re.match(): searches only in the beginning of the first line of the string and returns matched objects if found, else returns None. 4 | re.search: Returns a match object if there is one anywhere in the string, including multiline strings. 5 | re.findall: Returns a list containing all matches 6 | re.split: Takes a string, splits it at the match points, returns a list 7 | re.sub: Replaces one or many matches within a string """ 8 | 9 | pattern = r'Love' 10 | string = 'love is great' 11 | match = re.match(pattern, string, re.I) 12 | print(match) 13 | if match: 14 | print(dir(match)) 15 | print(match.start()) 16 | print(match.span()) 17 | start, end = match.span() 18 | print(string[end + 1:]) 19 | 20 | txt = '''Python is the most beautiful language that a human being has ever created. 21 | I recommend Python for a first programming language. JavaScript is also a great lanaguage, learn javaScript and make all websites more interactive than ever before.''' 22 | 23 | match = re.search(r'Python', txt, re.I) 24 | print(match) 25 | 26 | print(re.findall(r'[pP]ython|[jJ]ava[S]cript',txt)) 27 | print(re.split(r'Python', txt)) 28 | 29 | print(re.sub(r'Python','JavaScript', txt, re.I)) 30 | 31 | 32 | txt = '''%I@ @a%m #te%%a%%che%r% a%n%d %% I l%o%ve te%ach%ing. 33 | T%he%re i%s n%o%th%ing as r%ewarding a%s e%duc%at%i%ng a%n%d e%m%p%ow%er%ing p%e%o%ple. 34 | I fo%und te%a%chin^g m%ore i%n%t%er%%es%ting? t%h%a!n an@y ot?her %jobs. 35 | D%o%es t;hi%s m%ot%i$v%a%te %y%o%u to b%e a t%e%a%cher?''' 36 | 37 | print(re.sub(r'[^a-zA-Z ]+', '', txt)) -------------------------------------------------------------------------------- /WEEK-5/test.py: -------------------------------------------------------------------------------- 1 | from functools import reduce 2 | 3 | sentences = ['The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular. ', 'learning is great'] 4 | 5 | """ word_count = reduce(lambda x, y: (x + y).count("learning"),sentences,0) """ 6 | 7 | """ print('learning:', word_count) # 2 8 | 9 | print('The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular. '.count('learning')) """ 10 | 11 | # reduce(lambda x, y: print(x, y),sentences,0) 12 | print(reduce(lambda x, y: x + y.count("learning"),sentences,0)) 13 | 14 | loves = [ 15 | 'I love people', 16 | 'I love everyone', 17 | 'love is great, because it is love' 18 | ] 19 | def call_back(x, y): 20 | print('x:', x, 'y:', y.count('love')) 21 | return x + y.count("love") 22 | 23 | print(reduce(call_back,loves,0)) -------------------------------------------------------------------------------- /WEEK-6/HOF.py: -------------------------------------------------------------------------------- 1 | def make_square(n): 2 | return n ** 2 3 | 4 | def make_cube(func, n): 5 | return func(n) * n 6 | 7 | print(make_cube(make_square, 2)) 8 | print(make_cube(make_square, 3)) 9 | print(make_cube(make_square, 10)) 10 | 11 | def do_something(n): 12 | def add_ten(): 13 | return n + 10 14 | return add_ten 15 | print(do_something(5)()) 16 | print(do_something(10)()) -------------------------------------------------------------------------------- /WEEK-6/__pycache__/fetch_data.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-6/__pycache__/fetch_data.cpython-39.pyc -------------------------------------------------------------------------------- /WEEK-6/__pycache__/modules.cpython-39.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Asabeneh/advanced-python-autumn-2021/1c3b9136aed27c85d7a3a138ccb9a05d03cefb9d/WEEK-6/__pycache__/modules.cpython-39.pyc -------------------------------------------------------------------------------- /WEEK-6/basics-python-revision.py: -------------------------------------------------------------------------------- 1 | # Fundamental of Programmng 2 | # Variables 3 | 4 | first_name = 'Asabeneh' 5 | last_name = 'Yetayeh' 6 | country = 'Finland' 7 | 8 | # comment , a single line comment 9 | # to make our code readable ourselves 10 | # Data types 11 | # Numbers(Int, Float, Complex), Booleans, Strings 12 | # List 13 | 14 | age = 250 15 | height = 1.73 16 | gravity = 9.81 17 | pi = 3.14 18 | mass = 75 19 | complex_num = 1 + 2j 20 | print(type(complex_num)) 21 | 22 | # Arithmetic Operation : +, -, *, /, %, //, ** 23 | radius = 10 24 | area = pi * radius ** 2 25 | print(area) 26 | 27 | weight = mass * gravity 28 | print(weight) 29 | 30 | a = 9 31 | b = 5 32 | 33 | print(f'The su of {a} and {b} is {a + b}.') 34 | print(f'The sum is ', a + b) 35 | print(f'The difference of {a} and b is {a - b}.') 36 | print(f'The product of {a} and {b} is {a * b}.') 37 | print(f'The division of {a} and {b} is {a / b}', ) 38 | print(f'The floor division of {a} and {b} is {a // b}.') 39 | print(f'The remainder of {b} divided by {a} {b % a}') 40 | print(f'{b} the power of {a} is {b ** a}.') 41 | 42 | print('{1} + {0} = {2}'.format(a, b, a + b)) 43 | print('{}{}'.format('water', 'mellon')) 44 | 45 | # Function: builtin function and custom function 46 | # print('hello', 'world', 2021, 'whatsovever'), type() 47 | # len(), input(), round() .. 48 | 49 | # String 50 | # a single or double quoate 51 | 52 | l = 'a' 53 | print(len(l)) 54 | sentence = 'It could be as long as a sentence, paragraph or a page' 55 | print(len(sentence)) 56 | print(sentence.upper()) 57 | print(sentence.lower()) 58 | print(sentence.title()) 59 | print(sentence.swapcase()) 60 | print(sentence.startswith('It ')) 61 | print(sentence.endswith('page')) 62 | print(sentence.replace(',', '')) 63 | sentence = sentence.replace(',', '') 64 | print(sentence.split()) 65 | 66 | langauge = 'Python' 67 | print(langauge[0]) 68 | print(langauge[1]) 69 | print(langauge[-1]) 70 | print(list(langauge)) 71 | 72 | for l in langauge: 73 | print(l) 74 | 75 | # Booleans: True or False 76 | 77 | print(1 > 0) 78 | print(1 < 0) 79 | 80 | happy = False 81 | if happy : 82 | print('Open vscode and write some Python script') 83 | else: 84 | print('Try to be be happy first') 85 | 86 | a = -10 87 | if a > 0: 88 | print(f'{a} is positive number.') 89 | elif a == 0: 90 | print(f'{a} is zero') 91 | elif a < 0: 92 | print(f'{a} is negative number') 93 | else: 94 | print('not a number') 95 | 96 | print(list(range(3, 10, 3))) 97 | 98 | 99 | evens = list(range(0, 101, 2)) 100 | print(evens) 101 | 102 | odds = list(range(0, 101, 2)) 103 | print(odds) 104 | 105 | nums = [1, 2, 3, 4] # append, pop, extend, etc 106 | nums.insert(2, 100) 107 | nums.extend([4, 6, 7, 8, 9, 10]) 108 | print(nums) 109 | # append, pop, extend, insert 110 | 111 | nums1 = [1, 2, 3] 112 | nums2 = [4, 5, 6] 113 | print(nums1 + nums2) 114 | countries = ['Finland','Sweden','Norway'] 115 | cities = ['Helsinki','Stockholm','Oslo'] 116 | print(list(zip(countries, cities))) 117 | 118 | for country, city in zip(countries, cities): 119 | print(country, city) 120 | 121 | 122 | 123 | print(list(enumerate(countries))) 124 | 125 | for i, country in enumerate(countries): 126 | print(f'{i + 1}. {country}') 127 | 128 | 129 | # Tuples, set, Dictionary 130 | 131 | nums_set = set([1, 2, 3, 4, 4, 2, 1, 3]) 132 | print(nums_set) 133 | 134 | fin_to_eng = { 135 | 'sana':'word', 136 | 'talo':'house', 137 | 'puhu':'speak' 138 | } 139 | 140 | print(fin_to_eng['sana']) 141 | print(fin_to_eng['talo']) 142 | print(fin_to_eng['puhu']) 143 | 144 | from pprint import pprint 145 | person = { 146 | 'first_name':'Asabeneh', 147 | 'last_name':'Yetayeh', 148 | 'country':'Finland', 149 | 'age': 250, 150 | 'skills':['HTML','CSS','JS'], 151 | 'is_married':True, 152 | 'address':{ 153 | 'city':'Helsinki', 154 | 'street_name':'Space Street', 155 | 'zipcode':'0200' 156 | } 157 | } 158 | 159 | person['age'] = 150 160 | person['nationality'] = 'Ethiopian' 161 | 162 | keys = person.keys() 163 | pprint(keys) 164 | values = person.values() 165 | pprint(values) 166 | items = person.items() 167 | print(items) 168 | # for key, value in items: 169 | # print(value) 170 | 171 | print(person.get('nationality')) -------------------------------------------------------------------------------- /WEEK-6/fetch_data.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from pprint import pprint 3 | # GET, PUT, POST, DELETE 4 | 5 | def fetch_data(url): 6 | response = requests.get(url) 7 | data = response.json() 8 | return data 9 | 10 | 11 | -------------------------------------------------------------------------------- /WEEK-6/fetching-data.py: -------------------------------------------------------------------------------- 1 | from fetch_data import fetch_data 2 | import json 3 | from pprint import pprint 4 | 5 | url = 'https://api.thecatapi.com/v1/breeds' 6 | data = fetch_data(url) 7 | 8 | """ list_cat = [] 9 | for cat in data: 10 | life_span = cat['life_span'].split('-') 11 | lowest_age = int(life_span[0]) 12 | heighest_age = int(life_span[1]) 13 | age = (lowest_age + heighest_age) / 2 14 | list_cat.append([cat['origin'],cat['name'], age]) 15 | pprint(list_cat) """ 16 | 17 | with open('cats.json', 'w', encoding='utf-8') as f: 18 | json.dump(data, f, ensure_ascii=False, indent=4) -------------------------------------------------------------------------------- /WEEK-6/functional-programming.py: -------------------------------------------------------------------------------- 1 | # map, filter, reduce 2 | 3 | nums = [1, 2, 3, 4] #[1, 4, 9, 16] 4 | nums_squared = list(map(lambda n: n ** 2, nums)) 5 | print(nums_squared) 6 | 7 | countries = ['Finland','Sweden','Norway','Denmark','Iceland'] 8 | countries_with_land = list(filter(lambda c: 'land' in c, countries)) 9 | print(countries_with_land) 10 | 11 | from functools import reduce 12 | total = reduce(lambda x, y: x + y, nums) 13 | print(total) 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /WEEK-6/import-modules.py: -------------------------------------------------------------------------------- 1 | """ import pprint 2 | from pprint import pprint as pretty_print 3 | person = { 4 | 'first_name':'Asabeneh', 5 | 'last_name':'Yetayeh', 6 | 'country':'Finland', 7 | 'age': 250, 8 | 'skills':['HTML','CSS','JS'], 9 | 'is_married':True, 10 | 'address':{ 11 | 'city':'Helsinki', 12 | 'street_name':'Space Street', 13 | 'zipcode':'0200' 14 | } 15 | } 16 | 17 | pretty_print(person) """ 18 | 19 | from math import sqrt, ceil, floor, pow, log10, log2 20 | 21 | print(sqrt(9)) 22 | print(sqrt(2)) 23 | print(2 ** 0.5 ) 24 | print(9 ** 0.5) 25 | print(ceil(9.81)) 26 | print(ceil(3.14)) 27 | print(floor(9.81)) 28 | print(pow(2, 2)) 29 | print(pow(2, 10)) 30 | print(log10(10)) 31 | print(log10(100)) -------------------------------------------------------------------------------- /WEEK-6/import_custom_module.py: -------------------------------------------------------------------------------- 1 | import modules 2 | from modules import add_numbers, make_square, calc_weight, add_two_numbers, check_datatypes 3 | 4 | print(add_numbers(3, 4, 5, 61, 2, 200)) 5 | print(check_datatypes([1, '2', 3],int)) 6 | -------------------------------------------------------------------------------- /WEEK-6/list-comprehension.py: -------------------------------------------------------------------------------- 1 | nums = [1, 2, 3, 4] # [2, 4, 6, 8] 2 | 3 | new_nums = [] 4 | for n in nums: 5 | new_nums.append(n * 2) 6 | print(new_nums) 7 | 8 | print([n * 2 for n in nums]) 9 | 10 | countries = ['Finland','Sweden','Norway'] 11 | 12 | list_list = [[c.upper(), c.upper()[:3], len(c)] for c in countries] 13 | print(list_list) 14 | 15 | integers = list(range(-10, 11)) 16 | print(integers) 17 | 18 | # map, filter 19 | postive_integers = [ i for i in integers if i > 0] 20 | print(postive_integers) 21 | 22 | negative_integers = [ i for i in integers if i < 0] 23 | print(negative_integers) 24 | 25 | postive_even_integers= [i for i in integers if i > 0 and i % 2 == 0] 26 | print(postive_even_integers) -------------------------------------------------------------------------------- /WEEK-6/loops.py: -------------------------------------------------------------------------------- 1 | # 2 | 3 | """ for i in range(101): 4 | print(f'{i} * {i} = {i * i}') 5 | """ 6 | 7 | i = 0 8 | while i < 101: 9 | print(f'{i} * {i} = {i * i}') 10 | i += 1 11 | 12 | countries = ['Finland','Sweden','Norway'] 13 | new_list = [] 14 | for c in countries: 15 | new_list.append([c.upper(), c.upper()[:3], len(c)]) 16 | print(new_list) -------------------------------------------------------------------------------- /WEEK-6/modules.py: -------------------------------------------------------------------------------- 1 | # to make our code reusable 2 | # maintable 3 | # testable 4 | 5 | def make_square(n): 6 | return n ** 2 7 | def double_number(n): 8 | return n * 2 9 | def add_two_numbers(a, b): 10 | return a + b 11 | def calc_weight(mass, gravity = 9.81): 12 | return mass * gravity 13 | def add_numbers(*args): 14 | from functools import reduce 15 | return reduce(lambda x, y : x + y, args) 16 | 17 | def check_datatypes(lst, t): 18 | count = 0 19 | for item in lst: 20 | if type(item) == t: 21 | count += 1 22 | if count == len(lst): 23 | return True 24 | return False 25 | 26 | 27 | 28 | 29 | 30 | --------------------------------------------------------------------------------