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

Ошибка при работе программы, связанной с модулем random

11.04.2020, 22:58. Показов 2894. Ответов 9

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Решаю вот такую задачу: Сгенерировать пароль для пользователя. Требования: длина от 6 до 20 символов, должен быть ровно один символ подчеркивания, хотя бы две заглавных буквы, не более 5 цифр, любые две цифры подряд недопустимы. вот таким кодом:
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
import random
sch_=0
le=random.randint(6, 20)
highsch=0
numsch=0
st='qwertyuiopasdfghjklzxcvbnm1234567890'
nu='1234567890'
let='qwertyuiopasdfghjklzxcvbnm'
pa=''
for i in range (le):
    pa=pa+str(st[random.randint(st[0], len(st))])
for i in range(len(pa)):
    if str(st[i])=='_':
        sch_=sch_+1
if sch_>0:
    pa[random.randint(0, len(st))]='_'
for i in range(len(pa)):
    if not pa[i].isalpha:
        numsch=numsch+1
if numsch>5:
    for i in range(numsch-5):
        if not pa[i].isalpha:
            pa[i]=str(let[random.randint(let[0], len(let))])
while highsch<2:
    for i in range(len(pa)):
        if pa[i].islower():
            pa[i]=str(str.upper(pa[i]))
            highsch=highsch+1
for i in range(len(pa)):
    if not pa[i].isalpha and not pa[i+1].isalpha and p[i]==p[i+1]:
        pa[i+1]=str(nu[random.randint(nu[0], len(nu))])
Вылезает какая-то странная ошибка и меня перекидывает в другой код, код модуля random, надо полагать. Скажите, пожалуйста, где мои ошибки и чем может быть вызвано такое странное поведение среды? Также, пожалуйста, не переписывайте код, а укажите на ошибки в этом
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2020, 22:58
Ответы с готовыми решениями:

ОШИБКА ПРИ РАБОТЕ С МОДУЛЕМ Spreadsheet_Excel_Writer
Parse error: syntax error, unexpected 'vv' (T_STRING) in Spreadsheet/Excel/Writer/Format.php on line 393 САМ ФАЙЛ:

Ошибка при работе с модулем Graph
govorit kaka9to owibka''unit expendet'' togda 9 piwy ''unit'' on gvorit ''interface expendet'' i neho4et rabotat v 4em...

При работе с модулем WinGraph выдаетcя ошибка
При работе с модулем wingraph паскаль выдает ошибку , что не возможно запустить граф.мод и т.д , что делать?

9
7 / 4 / 4
Регистрация: 29.11.2013
Сообщений: 28
12.04.2020, 00:36
В 11 строке random.randint должен получать начало и конец диапазона.
0
9 / 5 / 5
Регистрация: 08.04.2020
Сообщений: 93
12.04.2020, 00:41  [ТС]
Функция, кажется, именно его и получает. С нулевого символа по конец строки. Или что-то всё же не так?
0
7 / 4 / 4
Регистрация: 29.11.2013
Сообщений: 28
12.04.2020, 00:47
Python
1
random.randint(0, len(st)-1)
Добавлено через 4 минуты
Что происходит в 27 строке? Строки в пайтоне - неизменяемые объекты.

Добавлено через 29 секунд
В 31 то же самое.
1
9 / 5 / 5
Регистрация: 08.04.2020
Сообщений: 93
12.04.2020, 01:04  [ТС]
Премного благодарен, что указали на ошибки. Не подскажите, а как тогда сделать маленькую букву большой? С каким типом данных работает применённая мною функция?
0
7 / 4 / 4
Регистрация: 29.11.2013
Сообщений: 28
12.04.2020, 01:06
список - list
0
9 / 5 / 5
Регистрация: 08.04.2020
Сообщений: 93
12.04.2020, 01:08  [ТС]
Спасибо. А какой функцией можно разбить мою строку посимвольно? А то сплитом она разбивается на список из одного элемента
0
7 / 4 / 4
Регистрация: 29.11.2013
Сообщений: 28
12.04.2020, 01:10
просто передай строку в list
Python
1
pa=list(pa)
0
9 / 5 / 5
Регистрация: 08.04.2020
Сообщений: 93
12.04.2020, 01:40  [ТС]
Благодарю

Добавлено через 19 минут
Не подскажете, а как список преобразовать обратно в строку? И почему в таком виде код не работает вообще?
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
import random
sch_=0
le=random.randint(6, 20)
highsch=0
numsch=0
st='qwertyuiopasdfghjklzxcvbnm1234567890!@#$%^&*()_-=\|/.,?*-~`"<>'
nu='1234567890'
let='qwertyuiopasdfghjklzxcvbnm'
pa=''
for i in range (le):
    pa=pa+str(st[random.randint(0, (len(st)-1))])
pa=list(pa)
for i in range(len(pa)-1):
    if str(pa[i])=='_':
        sch_=sch_+1
if sch_==0:
    pa[random.randint(0, (len(pa)-1))]='_'
for i in range(len(pa)-1):
    if not pa[i].isalpha:
        numsch=numsch+1
if numsch>5:
    for i in range(numsch-5):
        if not pa[i].isalpha:
            pa[i]=str(let[random.randint(0, (len(let)-1))])
for i in range(len(pa)):
    if not pa[i].isalpha and not pa[i+1].isalpha:
        pa[i]=str(le[random.randint(0, (len(le)-1))])
while highsch<2:
    for i in range(2):
        if pa[i].islower():
            pa[i]=str(str.upper(pa[i]))
            highsch=highsch+1
print(pa)
0
7 / 4 / 4
Регистрация: 29.11.2013
Сообщений: 28
12.04.2020, 13:53
Лучший ответ Сообщение было отмечено Anacoder как решение

Решение

Преобразовать список в строку
Python
1
pa = ''.join(pa)
В 11 строке замени на:
Python
1
pa += st[random.randint(0, (len(st) - 1))]
В 24:
Python
1
pa[i] = let[random.randint(0, (len(let) - 1))]
В 27:
Python
1
pa[i] = le[random.randint(0, (len(le) - 1))]
В 31:
Python
1
pa[i] = pa[i].upper()
В последнем цикле может получаться (не всегда) бесконечный цикл. Проверь логику.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.04.2020, 13:53
Помогаю со студенческими работами здесь

Ошибка при работе с модулем kivy(Python3)
Здравствуйте, хочу начать работать с модулем kivy, но каждая программа выдаёт ошибку: &quot;sdl2 - ImportError: DLL load failed: Не найден...

Нужно написать комментарий к работе программы с модулем GraphABC
Программа полностью исправна, сделана на заказ, помогите с комментарием для защиты работы, отблагодарю Program menu; uses graphABC,...

Возникновение ошибки при работе программы(ошибка Windows - экстренное закрытие программы)
Здравствуйте. Есть таймер #include &lt;SFML/Graphics.hpp&gt; #include &lt;SFML/Window.hpp&gt; #include &lt;SFML/System.hpp&gt; #include...

Ошибка при работе программы
Добрый день, мне задали вот такую задачу: Опишите класс «гаражная парковка», который имеет одну очередь для парковки Автомобилей. Вход...

Ошибка при работе программы
function I=alex(func,a,b,n) f=@(x)func; I=0; h=(b-a)/n; for i=0:n-1 x1=a+h*i;


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru