С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.08.2022
Сообщений: 5

Проблема с типами переменных в Python

03.08.2022, 13:44. Показов 1099. Ответов 12

Студворк — интернет-сервис помощи студентам
Здравствуйте Вчера писал простенькую программку, но столкнулся с ошибкой, которую не могу решить уже второй день:
Python
1
2
3
4
5
6
7
8
open_number = open("number.txt", "r")
number: int = open_number.read()
number += int(5)
open_number.close()
new_number = open("number.txt", "w")
new_number.write(number)
new_nubmer.close()
input()
Суть в том, что программа считывает текст из файла, сохраняет его значение в переменную и потом к переменной дорисовывает, например цифру 5, т изменяет содержимое файла на новое

Я пытался конвертировать (или по правильному переобразовать) тип переменной number (2 строка) из string в int, но получал ошибку:
Кликните здесь для просмотра всего текста

Code
1
2
money += int(5)
TypeError: can only concatenate str (not "int") to str
Если я третью строку "number += int(5)" заменю на "number = int(number) + 5"
То мне выдаст следующую ошибку:
Code
1
2
new_number.write(number)
TypeError: write() argument must be str, not int
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.08.2022, 13:44
Ответы с готовыми решениями:

Сравнение переменных с разными типами..
Блин, бесит даже. Косяки на самом простом встречаются. Делаю следующее: вызываю скрипт mainmenu.asp?act=3. В скрипте делаю выборку...

Работа с различными типами переменных и их сравнение
Доброе время суток! Помогите!!! Есть строка - имя(пар1, пар2, пар3), где: пар1 - Integer, пар2 - Double, пар3 - String или другие...

Работа с массивом из файла с разными типами переменных...
Прочитайте из файла массив записей из 20 элементов. Каждая запись состоит из трех полей: название и номер машины, прибывшей на АЗС, каким...

12
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
03.08.2022, 13:49
Python
1
2
3
4
5
6
7
8
open_number = open("number.txt", "r")
number: int = open_number.read() # тут строка будет в переменной number
number += "5"
open_number.close()
new_number = open("number.txt", "w")
new_number.write(number)
new_nubmer.close()
input()
Добавлено через 1 минуту
А во втором случае, если заменишь
Цитата Сообщение от Daniil_08 Посмотреть сообщение
Если я третью строку "number += int(5)" заменю на "number = int(number) + 5"
то не дорисует "5", а прибавит, результат будет число, поэтому записать так:
new_number.write(str(number))
0
0 / 0 / 0
Регистрация: 03.08.2022
Сообщений: 5
03.08.2022, 13:53  [ТС]
Он все равно дорисовывает

Вы написали код, я заменил
Python
1
number += int(5)
на
Python
1
new_number.write(str(number))
, и он все равно дописал в конец еще "5"
0
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,303
03.08.2022, 13:53
пост 1, пост 2
строка 2 что имеется ввиду, это Python? или недавно постили похожее на паскале..........
0
0 / 0 / 0
Регистрация: 03.08.2022
Сообщений: 5
03.08.2022, 13:56  [ТС]
Вторая строка
number: int = open_number.read()
это Python
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
03.08.2022, 13:57
Цитата Сообщение от Daniil_08 Посмотреть сообщение
Он все равно дорисовывает
Во втором случае складывает, потому что к числу преобразовываешь строку из файла. Если учитывать, что там только число.
Содержание файла:
Code
1
5
Твой код:
Python
1
2
3
4
5
6
7
8
open_number = open("number.txt", "r")
number: int = open_number.read()
number = int(number) + 5
open_number.close()
new_number = open("number.txt", "w")
new_number.write(str(number))
new_number.close()
input()
Вывод в файл:
Code
1
10
Добавлено через 41 секунду
Цитата Сообщение от Daniil_08 Посмотреть сообщение
number: int = open_number.read()
То, что ты в этой строке указал тип int - это ничего не значит, там у тебя строка.
0
0 / 0 / 0
Регистрация: 03.08.2022
Сообщений: 5
03.08.2022, 14:01  [ТС]
Теперь он не прибавляет и не дорисовывает, вообще без ошибок
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
03.08.2022, 14:05
Лучший ответ Сообщение было отмечено Daniil_08 как решение

Решение

Все там работает - прибавляет. Проверь имя файла, который на чтение открываешь, я сначала там свое имя оставил, потом отредактировал на твое.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
with open('number.txt', 'r') as f:
    s: int = f.read()
 
print(f'в переменной s {type(s)}')
s = int(s)
print(f'теперь в s {type(s)}')
result = s + 10
print(f'в переменной result {type(result)}')
 
with open('number.txt', 'w') as f:
    result = str(result)
    print(f'теперь в result {type(result)}')
    f.write(result)
1
0 / 0 / 0
Регистрация: 03.08.2022
Сообщений: 5
03.08.2022, 14:07  [ТС]
Вы правы
Работает)
Спасибо!
0
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,303
03.08.2022, 14:20
Цитата Сообщение от Alexarh Посмотреть сообщение
s: int = f.read()
то есть присвоили тип и значение?
а если там была абракадабра?
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
03.08.2022, 14:26
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
то есть присвоили тип и значение?
а если там была абракадабра?
Эта запись (:int) не означает, что в данную переменную можно записать только int, это для наглядности, удобства пользователя, чтобы проще было код читать. Туда можно записать любой тип.
В данном случае это и запутало, наверно, пользователя.
0
1711 / 578 / 76
Регистрация: 10.04.2009
Сообщений: 9,303
03.08.2022, 14:41
ясно, я ранее указывал тип явно, потом плюнул на сие действо.......
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
04.08.2022, 10:39
Цитата Сообщение от Daniil_08 Посмотреть сообщение
number: int
Такие конструкции называются type hinting, то есть подсказки для типов. На самом деле в питоне утиная типизация, то есть, что придёт - тот тип и присвоится.
Это подсказки для человека, но в большей степени для IDE - она может подсказать, через статичный анализ кода, что что-то где-то с типами не так в вашем коде. На выполнение не влияет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.08.2022, 10:39
Помогаю со студенческими работами здесь

Добавить/ удалить объект с разными типами переменных в двумерный массив
Всем привет.Помогите написать программу (добавить/ удалить обьект с разными типами перименых в двух мерный массив) у меня получается...

Проблема с типами
#include <cstdlib> #include <iostream> #include <fstream> using namespace std; const int cN=100; struct pirkinys { ...

Проблема з типами!!!
Нужно виполнить операцию: m mod n Но тип переменой n: int64 и результат выдает число m. что делать? помогите!

Проблема с типами данных
Хочу сделать ширину таблицы чкть большую от ширины надписи:<!DOCTYPE html> <html><head> <title>Пример</title> <meta...

Проблема с типами данных в СИ
Дорогие друзья, помогите пожалуйста. Только начал изучать СИ, объясните, почему данный код на работает в КодБлоксе и не работает под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru