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

Перевести небольшой код С++ в Python

09.06.2021, 14:14. Показов 1636. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Мне нужно небольшой код из С++ перевести в питон, помогите пожалуйста.


C++
1
2
3
{for (f; f!=str.length(); f++)
int a=str.find("(",f);
f=a;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.06.2021, 14:14
Ответы с готовыми решениями:

Перевести небольшой код с C# на C++
Не знаю как заменить int.Parse в C++ using System; namespace war { class Program { static void Main(string args) { ...

Перевести небольшой код С++ на С
Заранее спасибо. #include "stdafx.h" #include <fstream> #include <iostream> #include <string.h> using namespace...

Перевести небольшой код с Pascal на C++
Это код для определения суммы квадратов всех целых чисел в интервале, заданном значениями M и N написанный на языке Pascal: var s, n,...

16
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
09.06.2021, 14:28
Narvik_tm, это-ж бесконечный цикл.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.06.2021, 14:33
Narvik_tm,
Напиши внятно задачу которую должен решать код.
Переписыванием кодов с одного языка на другой тут никто не занимается.
Для справки: в Python тоже есть "строка".find("подстрока")
Просто погугли и не надо будет попрошайничать.
0
1 / 1 / 0
Регистрация: 21.02.2021
Сообщений: 83
09.06.2021, 14:40  [ТС]
Я же не спросил чего-то сверхъестественного.

Добавлено через 1 минуту
Fudthhh Это фрагмент из кода, я всё перевёл, но не понимаю этот отрывок.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.06.2021, 14:46
Цитата Сообщение от Narvik_tm Посмотреть сообщение
Я же не спросил чего-то сверх естественного.
А я тебя спросил о чем-то сверхъестественном?
Просто опиши задачу.
Если ты ищешь последнее вхождение подстроки "("- твой код изначально неверен.

Добавлено через 45 секунд
Цитата Сообщение от Narvik_tm Посмотреть сообщение
я всё перевёл, но не понимаю этот отрывок.
То есть С++ ты тоже не понимаешь?
0
1 / 1 / 0
Регистрация: 21.02.2021
Сообщений: 83
09.06.2021, 14:48  [ТС]
А не надо меня спрашивать, я поставил определённый вопрос, не знаешь ответа лучше не пиши, а просто пройди мимо.
0
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
09.06.2021, 14:50
Цитата Сообщение от Narvik_tm Посмотреть сообщение
А не надо меня спрашивать, я поставил определённый вопрос, не знаешь ответа лучше не пиши, а просто пройди мимо.
Ты сформулируй СЛОВАМИ работу программы, ибо твой код не работает.
0
1 / 1 / 0
Регистрация: 21.02.2021
Сообщений: 83
09.06.2021, 14:51  [ТС]
Да он не должен работать, я просто хочу понять, как это на питоне написать, простая реализация замены всех параметров. Задания у меня тоже нет.
0
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
09.06.2021, 14:55
Класс, если ты не знаешь, что делает прога, как мы должны это понять? Если код не работает, то возьми любой неработающий код на питоне. Будет тоже самое
1
1 / 1 / 0
Регистрация: 21.02.2021
Сообщений: 83
09.06.2021, 14:59  [ТС]
Не нужно понимать, что она делает, смотри допустим строка for (f; f!=str.length(); f++), это цикл странный для меня, я не понимаю как его просто в питоне записать т.е в питоне пишется допустим for i in range(n), но ладно я понял, пойду лучше тогда почитаю про циклы в C++, хотя бы разберусь, как это понять.
0
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
09.06.2021, 15:36
Нельзя тупо переводить из С++ в python и все.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.06.2021, 15:45
Цитата Сообщение от Narvik_tm Посмотреть сообщение
это цикл странный для меня
Это обычный цикл с инкрементацией счетчика. Но у тебя он не решает никакой задачи, потому что становится бесконечным.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main()
{
 
string str = "(hello(";
for (int i = str.find("(", i++); i != string::npos; i = str.find("(", i+1)) {
    cout << i << endl;
}
    
return 0;
}
Code
1
2
0
6
В Python циклов for с числовым счетчиком как таковых нет. Не считая вспомогательной функции enumerate.
Поэтому для имитации такого цикла используется while.

Python
1
2
3
4
5
6
str_ = "(hello("
while True:
        i = str_.find("(", i)
        if i == -1: break  # аналог string::npos
        print(i)
        i+=1

Code
1
2
0
6
Выше тебе 100% верно заметили, что простые попытки перевода один в один операторов мало что дадут. Где-то это сработает, а где-то будет бессмысленным, так как в в том же Python некоторые операции С++ из 10 строк могут быть записаны в одну строку. И наоборот.
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
09.06.2021, 16:10
Попытался понять, что делает этот код на плюсах... Он совершенно убийственный:

C++
1
2
3
{for (f; f!=str.length(); f++) // цикл по f c неинициализированным начальным значением f
  int a=str.find("(",f);           // ищется левая скобка c позиции f (т.е. неизвестно с какой)
  f=a;
Вся эта байда в Питоне выглядит так:

Python
1
2
for i in range(len(stri)):
    a=stri.find("(",i)
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.06.2021, 16:19
Catstail,
C точки зрения оценки эффективности (O большое) код с range дает оверхед по числу итераций (O(len всей строки)). Поэтому он неравноценен коду С++ на индексах вхождения.

Вот здесь (как и в моем коде выше) ровно две операции поиска, а не 7 для строки "(hello("
Python
1
2
3
4
i = str_.find("(", 0)
while (i := str_.find("(", i)) != -1:
    print(i)
    i+=1
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38167 / 21102 / 4307
Регистрация: 12.02.2012
Сообщений: 34,690
Записей в блоге: 14
09.06.2021, 17:37
Garry Galler, да я, честно говоря, не понял, что он хотел добиться...
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.06.2021, 18:00
Цитата Сообщение от Catstail Посмотреть сообщение
я, честно говоря, не понял, что он хотел добиться
Я тоже :-) Но он же решил, что мы тут экстрасенсы
Цитата Сообщение от Narvik_tm Посмотреть сообщение
я поставил определённый вопрос, не знаешь ответа лучше не пиши
и должны сами догадаться раз существует такой раздел Python: решение задач. Типа запостил сюда любую хрень - подождал и нате: готовый ответ на блюдечке получил.
Кому вообще пришла в голову идея создавать еще один раздел для халявщиков? Разве их и так мало в разделе для начинающих?!
И если уж создали - нужно было создать и особые правила для постинга сюда задач: чтобы люди 10 раз подумали, прежде чем создать очередную нелепую тему.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
09.06.2021, 20:17
Garry Galler, идея этого раздела в том и состоит. Это раздел для тех, кто не хочет ничего делать сам. Т.е. раздел, где никто ничего не будет обсуждать, т.к. большинство ТСов все равно не смогут внятно ответить на вопросы. Подсказывать, направлять, учить жизни, ждать свои попытки, заставлять учится и т.д. их тоже не надо. Кто хочет - выложит готовый код. Кто не хочет - пройдет мимо. Адекватные же темы, в которых ТС что-то старается делать сам - будем оставлять в Начинающих.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2021, 20:17
Помогаю со студенческими работами здесь

Перевести небольшой код с jQuery на JS
Добрый день! Подскажите с переводом на нативный JavaScript, пожалуйста. $(document).ready(function(){ /* Hamburger Menu &amp; Icon...

перевести небольшой код с паскаля на с
помогите плз перевести небольшой код с pascal на С++ Program String41; var Dano:string; // вводимая строка slova:integer; //...

Нужно перевести небольшой код с Pascal на C++
var c:char; begin write('Введите символ: '); readln(c); case c of '0'..'9' :writeln('digit'); 'A'..'Z','a'..'z':writeln('lat');...

Перевести небольшой код из Pascal на Java
function isPrime(N : Integer) : Boolean; var D, dD : Integer; begin Result := (N &gt; 1); if (N=2) or (N=3) or (N=5) then ...

Перевести небольшой код из Scala на Java
Называется &quot;сделайте за меня&quot;, но все же, кому не трудно, пожалуйста: object ConnectedBlockRender extends ISimpleBlockRenderingHandler...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Изучаю 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