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

string index out of range

03.11.2021, 16:30. Показов 1309. Ответов 7

Студворк — интернет-сервис помощи студентам
Подскажите как исправить, не сильна в пайтон . Ошибка при запуске string index out of range.
Буду очень благодарна.



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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import os
import pyaudio
from PyQt5.QtWidgets import (QApplication, QComboBox, QDialog,
                             QDialogButtonBox, QFormLayout, QGridLayout, QGroupBox, QHBoxLayout,
                             QLabel, QLineEdit, QMenu, QMenuBar, QPushButton, QSpinBox, QTextEdit,
                             QVBoxLayout, QFileDialog,QMainWindow,QCheckBox)
 
import sys
import wave
 
directory = r'D:\projects\python'
os.chdir(directory)
 
 
class Window(QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
 
        self.texting = QLabel(self)
 
        self.nameLabel = QLabel(self)
        self.nameLabel.setText('Мікрофон:')
        self.nameLabel.move(1, 210)
 
 
        self.line = QLineEdit(self)
        self.line.move(100, 210)
        self.line.resize(150, 32)
        self.line.setPlaceholderText('Для запису аудіо')
        microCh = self.line.text()
 
 
        self.choose = QLabel(self)
        self.texting.setText(microCh)
        self.texting.adjustSize()
 
        self.micro_info()
        self.setWindowTitle("Лабораторна робота №2")
        self.setGeometry(350, 350, 800, 800)
 
        self.button2 = QPushButton("Запис аудіо", self)
        self.button2.setGeometry(10, 280,100,100)
        self.button2.clicked.connect(self.record_wav)
 
        self.button1 = QPushButton("Open/save", self)
      #  self.button1.move(270, 500)
        self.button1.setGeometry(180, 280,100,100)
        self.button1.clicked.connect(self.openFileNameDialog)
 
        self.button3 = QPushButton("Enter", self)
        self.button3.move(270, 209)
        self.button3.clicked.connect(self.enterMicro)
 
    def enterMicro(self):
        inputValue = self.line.text()
        global choise
        choise = int(inputValue)
        print (inputValue)
 
    def micro_info(self):
        swtringTo = ''
        p = pyaudio.PyAudio()
        for i in range(p.get_device_count()):
            r = p.get_device_info_by_index(i)['name']
            micro = 'Microphone'
            check = 0
            k = 0
            for j in micro:
                if r[k] == j:
                    check = check + 1
                k = k + 1
            if check == 10:
                swtringTo = swtringTo + str(i) + '  ' + str(r) + str('\n')
   #     print(swtringTo)
        self.texting.setText(swtringTo)
        self.texting.adjustSize()
 
    def record_wav(self):
        p = pyaudio.PyAudio()
        CHUNK = 1024
        FORMAT = pyaudio.paInt16
        CHANNELS = 1
        RATE = 44100
        RECORD_SECONDS = 5
        WAVE_OUTPUT_FILENAME = "output.wav"
        p = pyaudio.PyAudio()
        stream = p.open(format=FORMAT,
                        channels=CHANNELS,
                        rate=RATE,
                        input=True,
                        input_device_index=choise,
                        frames_per_buffer=CHUNK)
        print("* recording")
        frames = []
        for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
            data = stream.read(CHUNK)
            frames.append(data)
        print("* done recording")
        stream.stop_stream()
        stream.close()
        p.terminate()
 
        wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
        wf.setnchannels(CHANNELS)
        wf.setsampwidth(p.get_sample_size(FORMAT))
        wf.setframerate(RATE)
        wf.writeframes(b''.join(frames))
        wf.close()
 
    def openFileNameDialog(self):
        options = QFileDialog.Options()
        fileName, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", "",
                                                  "All Files (*);;Wave Files (*.wav)", options=options)
        if fileName:
            print(fileName)
        in_file = open(fileName, "rb")
        data = in_file.read()
        in_file.close()
        fileName, _ = QFileDialog.getSaveFileName(self,"QFileDialog.getSaveFileName()","","All Files (*);;Text Files (*.txt)", options=options)
        out_file = open(fileName, "w")
        for i in data:
            k = bin(i)
            out_file.write(k+'\n')
        out_file.close()
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2021, 16:30
Ответы с готовыми решениями:

IndexError: string index out of range
Требуется подсчитать количество замен в определенных индексах. программа работает для файла в котором 10 последовательностей, однако при...

IndexError: string index out of range
кодируются символы из интервала 1F600—1F64F таблицы символов Юникода. Используется кодировка UTF-8. Формат ввода: На первой строке...

Ошибка string index out of range
file_path = 'test.txt' file = open(file_path) strnew='' i=0 for line in file: for i in range(len(line)): ...

7
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
03.11.2021, 16:35
Цитата Сообщение от sofiia_fulda Посмотреть сообщение
Ошыбка при запуске string index out of range.
не обращайся к индексу строки, которого нет. не благодари)
0
0 / 0 / 0
Регистрация: 03.11.2021
Сообщений: 5
03.11.2021, 16:55  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
не обращайся к индексу строки, которого нет.
Я очень извиняюсь. Понимаю сейчас будет слишком тупая просьба, но можете конкретно показать что на что заменить. Это просто моя первая работа, код я нашла и вот разобраться не могу.


Буду нереально благодарна
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
03.11.2021, 17:37
sofiia_fulda, а где полный текст ошибки?
0
0 / 0 / 0
Регистрация: 03.11.2021
Сообщений: 5
03.11.2021, 17:43  [ТС]
Вот скриншот. Надеюсь вам видно. Нас просто завтавляют в Spyder писать програмы.
Миниатюры
string index out of range  
0
0 / 0 / 0
Регистрация: 03.11.2021
Сообщений: 5
03.11.2021, 17:45  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
а где полный текст ошибки?
Вот скриншот. Надеюсь вам видно будет. Нас просто заставляют в Spider писать програмы.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
03.11.2021, 17:48
Цитата Сообщение от sofiia_fulda Посмотреть сообщение
if r[k] == j:
но строки нельзя менять! может начать с программок попроще?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
03.11.2021, 23:07
Цитата Сообщение от sofiia_fulda Посмотреть сообщение
что на что заменить.
Попробуй ради интереса вывести в консоль результат работы следующего кода.

Python
1
2
3
4
>>> p = pyaudio.PyAudio()
>>> for i in range(p.get_device_count()):
            r = p.get_device_info_by_index(i)['name']
            print(i,r)
Индекс k в какой-то момент оказывается больше, чем длина строки и возникает IndexError
Можешь поставить проверку перед попыткой взять индекс:
Python
1
2
if k < len(r) :
    if r[k] == j:

Суть самого кода:
Python
1
2
3
4
5
6
7
            micro = 'Microphone'
            check = 0
            k = 0
            for j in micro:
                if r[k] == j:
                    check = check + 1
                k = k + 1
я не уловил. Какая-то замороченная проверка на наличие строки 'Microphone' в выводе get_device_info_by_index.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2021, 23:07
Помогаю со студенческими работами здесь

Ошибка string index out of range
Требуется вывести на экран вложенный список, но выдаёт ошибку. Почему? #!/usr/bin/env python3 zero = one = two = ...

Шифратор вертикальной перестановки - string index out of range
В общем, постала задача организовать шифратор+дешифратор. Но пока что я даже шифратор победить не могу. Нашёл на просторах интернета...

string index out of range
s = str(input()) b = '' i=0 while i&lt;=len(s)-1: for j in range(s.count(s),0,-1): if s.find(s*j)!=-1: ...

String index out of range
в общем переписываю код из NodeJs, очень трудно копать инфу что по python,что по Nodejs. В общем задание в заголовке, надо превратить это в...

Ошибка: String index out of range
Выходит ошибка string index out of range n=int(input()) k=0 q=0 l='' for i in range(1,n+1): k= if l&gt;l: ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru