1import sys 2 3 4def modobj(obj2, obj3): 5 """ 6 >>> modobj(9,2) 7 1 8 >>> modobj('%d', 5) 9 '5' 10 >>> modobj(1, 0) # doctest: +ELLIPSIS 11 Traceback (most recent call last): 12 ZeroDivisionError: integer division... 13 """ 14 obj1 = obj2 % obj3 15 return obj1 16 17 18def mod_10_obj(int2): 19 """ 20 >>> mod_10_obj(0) # doctest: +ELLIPSIS 21 Traceback (most recent call last): 22 ZeroDivisionError: integer division... 23 >>> mod_10_obj(3) 24 1 25 """ 26 return 10 % int2 27 28 29def mod_obj_10(int2): 30 """ 31 >>> 0 % 10 32 0 33 >>> mod_obj_10(0) 34 0 35 >>> 1 % 10 36 1 37 >>> mod_obj_10(1) 38 1 39 >>> (-1) % 10 40 9 41 >>> mod_obj_10(-1) 42 9 43 >>> 9 % 10 44 9 45 >>> mod_obj_10(9) 46 9 47 >>> 10 % 10 48 0 49 >>> mod_obj_10(10) 50 0 51 >>> (-10) % 10 52 0 53 >>> mod_obj_10(-10) 54 0 55 >>> (-12) % 10 56 8 57 >>> mod_obj_10(-12) 58 8 59 >>> 10002 % 10 60 2 61 >>> mod_obj_10(10002) 62 2 63 >>> int((2**25) % 10) 64 2 65 >>> int(mod_obj_10(2**25)) 66 2 67 >>> int((-2**25) % 10) 68 8 69 >>> int(mod_obj_10(-2**25)) 70 8 71 >>> int((-2**31-1) % 10) 72 1 73 >>> int(mod_obj_10(int(-2**31-1))) 74 1 75 >>> int((2**50) % 10) 76 4 77 >>> int(mod_obj_10(2**50)) 78 4 79 >>> int((-2**50) % 10) 80 6 81 >>> int(mod_obj_10(-2**50)) 82 6 83 >>> int((-2**63-1) % 10) 84 1 85 >>> int(mod_obj_10(-2**63-1)) 86 1 87 >>> int((2**200) % 10) 88 6 89 >>> int(mod_obj_10(2**200)) 90 6 91 >>> int((-2**200) % 10) 92 4 93 >>> int(mod_obj_10(-2**200)) 94 4 95 """ 96 int1 = int2 % 10 97 return int1 98 99 100def mod_obj_17(int2): 101 """ 102 >>> 0 % 17 103 0 104 >>> mod_obj_17(0) 105 0 106 >>> 1 % 17 107 1 108 >>> mod_obj_17(1) 109 1 110 >>> (-1) % 17 111 16 112 >>> mod_obj_17(-1) 113 16 114 >>> 9 % 17 115 9 116 >>> mod_obj_17(16) 117 16 118 >>> 17 % 17 119 0 120 >>> mod_obj_17(17) 121 0 122 >>> (-17) % 17 123 0 124 >>> mod_obj_17(-17) 125 0 126 >>> (-18) % 17 127 16 128 >>> mod_obj_17(-18) 129 16 130 >>> 10002 % 17 131 6 132 >>> mod_obj_17(10002) 133 6 134 >>> int((2**25) % 17) 135 2 136 >>> int(mod_obj_17(2**25)) 137 2 138 >>> int((-2**25) % 17) 139 15 140 >>> int(mod_obj_17(-2**25)) 141 15 142 >>> int((-2**31-1) % 17) 143 7 144 >>> int(mod_obj_17(int(-2**31-1))) 145 7 146 >>> int((2**50) % 17) 147 4 148 >>> int(mod_obj_17(2**50)) 149 4 150 >>> int((-2**50) % 17) 151 13 152 >>> int(mod_obj_17(-2**50)) 153 13 154 >>> int((-2**63-1) % 17) 155 7 156 >>> int(mod_obj_17(-2**63-1)) 157 7 158 >>> int((2**200) % 17) 159 1 160 >>> int(mod_obj_17(2**200)) 161 1 162 >>> int((-2**200) % 17) 163 16 164 >>> int(mod_obj_17(-2**200)) 165 16 166 """ 167 int1 = int2 % 17 168 return int1 169 170 171def mod_obj_m2(int2): 172 """ 173 >>> 0 % -2 174 0 175 >>> mod_obj_m2(0) 176 0 177 >>> 1 % -2 178 -1 179 >>> mod_obj_m2(1) 180 -1 181 >>> 9 % -2 182 -1 183 >>> mod_obj_m2(9) 184 -1 185 """ 186 int1 = int2 % -2 187 return int1 188 189 190def mod_obj_m2f(obj2): 191 """ 192 >>> 0 % -2.0 == 0.0 # -0.0 in Py2.7+ 193 True 194 >>> mod_obj_m2f(0) 195 -0.0 196 >>> 1 % -2.0 197 -1.0 198 >>> mod_obj_m2f(1) 199 -1.0 200 >>> 9 % -2.0 201 -1.0 202 >>> mod_obj_m2f(9) 203 -1.0 204 """ 205 result = obj2 % -2.0 206 return result 207 208 209def modint(int int2, int int3): 210 """ 211 >>> modint(9,2) 212 1 213 """ 214 cdef int int1 215 int1 = int2 % int3 216 return int1 217 218 219def modptr(): 220 """ 221 >>> print(modptr() if sys.version_info[0] < 3 else 'spameggs') 222 spameggs 223 """ 224 cdef char *str2, *str3 225 str2 = "spam%s" 226 str3 = "eggs" 227 obj1 = str2 % str3 # '%' operator doesn't work on byte strings in Py3 228 return obj1 229 230 231def mod_bigint(obj): 232 """ 233 >>> print(mod_bigint(3316000000000)) 234 319 235 """ 236 result = obj % 999 237 return result 238