SOS помогите ошибка, где ошибка в коде

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
number=213169**123
string=str(number)
print(string*10)
tripleStr=string*10
tripleInt=int(tripleStr)
print(tripleInt**2)

Доброго времени суток! Подскажите, где ошибка в коде, не могу сдвинуться дальше в изучении.
Ругается Python на строчку ниже, но я не могу понять, что в ней не так?

tripleInt=int(tripleStr)
^^^^^^^^^^^^^^
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
ошибку покажите
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
1667168426808.png
 

weamagic

Пользователь
Пользователь
Июл 11, 2020
149
13
18
Я ошибки не вижу. Код проверил - работает.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
ну переведите ошибку...
число слишком большое получается для конвертирования в инт
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
tripleInt=int(tripleStr)
вот он ругается на эту строку
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
Подсчитайте результат вычисления выражения 213169 в 123 степени, запишите его 10 раз подряд, а затем возведите получившееся число в квадрат.



Подсказка: воспользуйтесь функцией int.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Python:
print(int(str(213169 ** 123) * 10) ** 2)
но ошибку все же переведите, там написано что нужно сделать...
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
спасибо огромное!
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
1667171289002.png
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
что-то тоже число не получилось
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
ValueError: Exceeds the limit (4300) for integer string conversion: value has 6560 digits; use sys.set_int_max_str_digits() to increase the limit
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
ну переведите... там написано что сделать
use sys.set_int_max_str_digits() to increase the limit
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
Ошибка ValueError: превышает ограничение (4300) для преобразования целочисленной строки: значение содержит 6560 цифр; используйте sys.set_int_max_str_digits(), чтобы увеличить ограничение
перевела
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
учусь самостоятельно и не проходила ещё про лимит не понимаю вижу строку sys.set_int_max_str_digits(), надо что-то в нее добавить?
 

weamagic

Пользователь
Пользователь
Июл 11, 2020
149
13
18
учусь самостоятельно и не проходила ещё про лимит не понимаю вижу строку sys.set_int_max_str_digits(), надо что-то в нее добавить?
Попробуй заменить своё очень большое число чем-нибудь более простым. К примеру, 2 или 3, и степень выставь маленькую.
Проблема в том, что каждому типу данных отводится строго определенный объём памяти. Когда появляется такая ошибка, то это говорит, что число слишком большое и не помещается в данный тип.
Что нужно сделать? Просто не использовать настолько большие числа.
Если код будет работать без ошибок с небольшими числами, то можешь переходить к следующему уроку.
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
учусь самостоятельно и не проходила ещё про лимит не понимаю вижу строку sys.set_int_max_str_digits(), надо что-то в нее добавить?
Python:
import sys
sys.set_int_max_str_digits(6600)
print(int(str(213169 ** 123) * 10) ** 2)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Что нужно сделать? Просто не использовать настолько большие числа.
а если нужны большие числа?
 

kat1016

Новичок
Пользователь
Окт 31, 2022
11
0
1
спасибо разобралась. Оставлю тут на всякий случай

Столкнулся с аналогичной проблемой при прохождении задачи 15. В двух словах - это специфика версии Питона 3.10.7. где в настройках установлено указанное ограничение.

Воспользовался онлайн компилятором в web https://www.onlinegdb.com/online_python_compiler Программа ниже отработала без ошибок , число подошло,
 

weamagic

Пользователь
Пользователь
Июл 11, 2020
149
13
18
а если нужны большие числа?
Мне тяжко представить, где такое можно встретить настолько большие числа. Насколько владею информацией: в большинстве формул, даже при очень большом основании, показатель максимум - 4. Это ещё вписывается в отведенные места, т.к. сами работники предпочитают не таскать по расчётам огромные значения и воспользоваться производными.
Не, вру. Есть ряд областей, где таким пользуются, но эти теорфизики и теорматематики - исключение, подтверждающее правило. Просто, я не представляю кого-то, решающего что-то относительно прикладное с использованием гуголов в полной форме.
 
Последнее редактирование:

Форум IT Специалистов