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

Синтаксис python

28.08.2020, 21:11. Показов 1444. Ответов 9

Студворк — интернет-сервис помощи студентам
Пытаюсь привыкнуть к синтаксису Python путем переписывания с C#. Возникла проблема: есть цикл "FOR", не могу написать его в Python'e. Делал отладку, этот участок кода просто перескакивает.

C#
1
2
3
4
for (j = i + 1; string[j] != strng[0] && j < string.Length - 1; j++)
                        {
                            count++;
                        }
Python
1
2
for j in range(i+1 , (string[j]!=strng[0] and j<(len(string)-1))):
                count+=1
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2020, 21:11
Ответы с готовыми решениями:

Синтаксис Python
Добрый день. В одной программе увидел вот такой код, в 1 строку: return Как не пытался разложить его на несколько строк, выдает...

Не получается понять синтаксис Python 3.9
Простите мою неопытность. Не могу разобраться с синтаксисом python 3.9. Программа запускается, но отказыватся работать правильно. Если...

Принятие решений и синтаксис в Python
Добрый день. Начал изучать Python по учебнику автора Бена Стивенсона (Python. Сборник упражнений). и при решении задачи столкнулся с...

9
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
28.08.2020, 21:33
c0dy420, это разные языки у них разные подходы, это как буквально переводить с английского - "Мое имя есть Вася". Улавливаешь? расскажи задачу которую решаешь циклом, покажем как решается в питоне
0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
28.08.2020, 21:46
Лучший ответ Сообщение было отмечено c0dy420 как решение

Решение

Python
1
2
3
4
5
j = i + 1
while True:
    if string[j] != strng[0] and j<(len(string)-1) :
        count += 1
    j += 1
Или
Python
1
2
3
4
j = i + 1
while string[j] != strng[0] and j<(len(string)-1) :
    count += 1
    j += 1
Зависит от того, счетчик "count" увеличивается до наступления события по условию (второй код) или, пропуская, когда выполняется условие (первый код)
0
0 / 0 / 0
Регистрация: 24.06.2019
Сообщений: 12
28.08.2020, 23:12  [ТС]
Задача: дан файл, содержащий текст на русском языке и некоторые 2 слова. Определить, сколько раз они встречаются в тексте и найти наибольшее расстояние между ними.
Файл типа такой:
HE ME
ME google vkontakte HE facebook ME bing yandex twitter instagram HE
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
i=0
j=0
count=0
total=0
amount1=0
amount2=0
 
output=open('D:\Information.txt')
Strng=output.readline()
strng=Strng.split()
String=output.readline()
string=String.split()
 
for i in range(len(string)):
    if string[i]==strng[0]:
        amount1+=1
        if i!=(len(string)-1):
            for j in range((i+1) , (string[j]!=strng[1] and j<(len(string)-1))):
                count+=1
    
    if string[i]==strng[1]:
        amount2+=1
        if i!=(len(string)-1):
            for j in range((i+1), (string[j]!=strng[0] and j<(len(string)-1))):
                count+=1
    
    if count > total:
        total=count
    
    count=0
    j=0
 
print("Your damn result -> " + str(total))
print("Number of occurrences of the word '" + strng[0] + "' -> " + str(amount1))
print("Number of occurrences of the word '" + strng[1] + "' -> " + str(amount2))
Результат по сути должен быть:
4
2
2
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
29.08.2020, 00:15
Цитата Сообщение от c0dy420 Посмотреть сообщение
Пытаюсь привыкнуть к синтаксису Python путем переписывания с C#
Бесполезное занятие (код выше ужасен). У Python код будет очень сильно отличаться, потому что тут совсем другой набор встроенных методов.
Вот если бы ты C# дошел до LINQ... но судя по всему нет.
....
Не ставить пробелы между переменными, операторами и значениями тоже привычка из C#? В Python такой код называется govnostyle, учти это.

Добавлено через 2 минуты
В функции range нет никаких условных выражений. Открой доку и посмотри синтакис.
range это просто генератор диапазона: start, stop, step.

Для того, чтобы ты понимал как сильно отличаются подходы, пример того как на Python можно делать подсчет слов (условных токенов разделенных пробельными символами):
Python
1
2
3
4
5
>>> from collections import Counter
>>> cnt = Counter(word  for line in open("test.txt") for word in line.split())
>>> cnt  # выведем
Counter({'ME': 2, 'HE': 2, 'google': 1, 'vkontakte': 1, 'facebook': 1, 'bing': 1, 'yandex': 1, 'twitter': 1, 'instagram': 1})
>>>
Как видишь ровно одна строка, не считая импорта.

А можно даже так - вообще без явных циклов:
Python
1
2
3
>>> Counter(sum(map(str.split, open("test.txt")), []))
Counter({'ME': 2, 'HE': 2, 'google': 1, 'vkontakte': 1, 'facebook': 1, 'bing': 1, 'yandex': 1, 'twitter': 1, 'instagram': 1})
>>>
Но, чувствую, тут у тебя окончательно крышу сорвет...



Добавлено через 6 минут
Python
1
2
3
4
5
>>> cnt["HE"]
2
>>> cnt["ME"]
2
>>>
2
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
29.08.2020, 08:27
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Некоторые два слова (списком, если вдруг слов больше двух)
words = list(map(str,input().split()))
rep_w = words[0]
########################
 
# Текст на русском языке
texts = list(map(lambda x: rep_w 
         if x in words else x,
         list(map(str,input().split()))))
########################
 
ind_w = [k for k,v in enumerate(texts) 
        if v == rep_w]
res_ind = 0
for i in range(1,len(ind_w)) :
    k = ind_w[i] - ind_w[i-1]
    if k > res_ind :
        res_ind = k 
print(texts.count(rep_w))
print(res_ind - 1)
0
0 / 0 / 0
Регистрация: 24.06.2019
Сообщений: 12
30.08.2020, 23:41  [ТС]
Garry Galler, Спасибо за объяснение, постараюсь учесть, после того как целый курс забили голову C++ и C# тяжело перейти на Python. Без родных ';', везде пробелы, нет какого-то порядка что-ли. Думаю в Web заходить попытаться все таки через JS.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
31.08.2020, 00:05
Цитата Сообщение от c0dy420 Посмотреть сообщение
Без родных ';', везде пробелы, нет какого-то порядка
Питонистам точки с запятой для выражений и скобочки для блоков не нужны. Они привыкают к порядку умственному... в голове.
Внешние же ограничители это просто мусор.
От тех же обязательных точек с запятой отказались практически во всех новых языках.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
31.08.2020, 00:11
Цитата Сообщение от Garry Galler Посмотреть сообщение
Python
1
cnt = Counter(word  for line in open("test.txt") for word in line.split())
Скажите, а этот код закроет файл автоматом после окончания оператора? Как и конструкция with?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
31.08.2020, 00:58
Цитата Сообщение от Black Fregat Посмотреть сообщение
этот код закроет файл автоматом после окончания оператора?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> import io,gc
>>> def get_opened_files():
    for f in [o for o in gc.get_objects() if isinstance(o, io.TextIOWrapper)]:
        if not f.closed:
            print(f.fileno(),f.name,f.mode,f.closed)
 
            
>>> get_opened_files()  # пусто
>>> open("test.txt").read()  # читаем файл не сохраняя файловый объект ни в какой переменной
'ME google vkontakte HE facebook ME bing yandex twitter instagram HE'
>>> get_opened_files()  # пусто
>>> f = open("test.txt") # а здесь мы присвоили файловый объект переменной
>>> get_opened_files()
3 test.txt r False              # файл открыт
>>>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.08.2020, 00:58
Помогаю со студенческими работами здесь

Я знаю код на С++ но мне нужен на Питоне. не знаю синтаксис Python
Вам задан неориентированный граф с N вершинами и М ребрами (1 &lt;= N &lt;= 20000, 1 &lt;= M &lt;= 200 000). В графе отсутствуют петли и кратные ребра....

Какой формат для сохранение конфигурационных файлов для Python имеет хорошую читабельность и простой синтаксис?
Нужно удобное решение для хранения файлов конфигурации. Важно чтобы решение было удобно не только программистам, но и простым...

Python cv2 сконвертировать Python многомерный массив в картинку
Python cv2, необходимо сконвертировать многомерный массив в картинку, например: Дано: , , ] Где каждые 3 значения - цвета пикселя...

Почему синтаксис Python 2.* и Python 3.* так отличается?
Привет! Решил на досуге заняться изучением Python'a. Читаю книгу по второму питону, а пользуюсь третьим. Некоторые вещи приходится...

Нужно понять синтаксис кода написанного на Python
Привет всем! У меня тут задачка: дан шифротекст (зашифрованный шифром Виженера) и переведенный в 16ую систему счисления. Есть...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru