У меня есть этот код:не все аргументы преобразуются во строке форматирования - Python
def rndint(self, s=0, l=10):
num = pow(self._seed, 2)
strnum = str(num)
if len(strnum) < 3:
strnum + "37"
mid = int(strnum[1:len(strnum)-1]) % l+1
self._seed = mid
return mid
Проблема заключается в том, когда я запускаю его:
rnd = Random(100)
rnd.rndint()
Это дает:
Traceback (most recent call last):
File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 3066, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-29-0d460ce98561>", line 1, in <module>
rnd.rndint()
File "C:\Users\Anshul\PycharmProjects\AMath\amath\random\randomGen.py", line 16, in rndint
mid = int(strnum[1:len(strnum)-1]) % l+1
TypeError: not all arguments converted during string formatting
Что не так с моим кодом?
Для начала 'strnum +" 37 "', вероятно, следует заменить на 'strnum + =" 37 "'. – Antoine
@Antoine Спасибо – Ansh145
Я не получаю ту же ошибку, когда я запускаю тот же код, хотя и не должен давать эту ошибку, поскольку код, который вы выложили, явно выполняет целочисленное преобразование. Вы действительно уверены, что действительно используете код, который вы разместили? – Dolda2000