Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/47: Рейтинг темы: голосов - 47, средняя оценка - 4.91
 Аватар для Den468
30 / 18 / 14
Регистрация: 19.12.2018
Сообщений: 104

Ошибка при выводе строки

02.02.2019, 00:57. Показов 10016. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим, даны ФИО, нужно имя и отчество сократить до инициалов и напечатать результат.
В моём случае печатается полнейший бред, либо ошибка при выполнении кода.
Код прилагаю:
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
def name():
    A = "Иванов Пётр Семёнович"
    i = 0
    A = list(A)
    while True:
        if A[i] == ' ':
            A[i] = list(A[i])
            B = A[i+1]
            break
        i += 1
    while True:
        if A[i] == ' ':
            A[i] = list(A[i])
            C = A[i+1]
            break
        i += 1
    out = B + '.' + C
    A = str(A)
    j = 0
    A = list(A)
    while True:
        if A[j] == ' ':
            A[j] = list(A[j])
            D = A[j]
            break
        j += 1
    A = str(A)
    outputLine = B + '.' + C + A[j:]
    print(outputLine)
    return
 
name()
Помогите, кто знает
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2019, 00:57
Ответы с готовыми решениями:

Ограничить длину строки при выводе
Пусть выводится строка длиной символов 10: "0123456789" Как сделать так, чтобы выводилось только 5 символов этой строки, то есть на...

выводится none с новой строки при выводе атрибута
Привет, помогите пожалуйста решить проблему - выводится none с новой строки при выводе атрибутов class Users(): def...

Ошибка при выводе бинарного дерева
Я еще новичок в питоне. Пытался написать бинарное дерево. Просто через функции все получилось, а вот когда переписал в класс, перестало...

8
 Аватар для leery_user
178 / 147 / 21
Регистрация: 07.11.2009
Сообщений: 591
02.02.2019, 01:12
Лучший ответ Сообщение было отмечено Den468 как решение

Решение

Цитата Сообщение от Den468 Посмотреть сообщение
Помогите, кто знает
Python
1
2
3
4
5
6
7
def name(name):
    name = name.split()
    print(name[0], name[1][0:1], name[2][0:1])
 
 
if __name__ == "__main__":
    name("Иванов Пётр Семёнович")
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
02.02.2019, 10:30
necroslider, Так как здесь требуется в качестве инициалов взять по одному символу, то можно использовать не только срез, но и просто индексацию.
print(name[0], name[1][0], name[2][0])
0
 Аватар для leery_user
178 / 147 / 21
Регистрация: 07.11.2009
Сообщений: 591
02.02.2019, 10:45
Цитата Сообщение от Viktorrus Посмотреть сообщение
necroslider, Так как здесь требуется в качестве инициалов взять по одному символу, то можно использовать не только срез, но и просто индексацию.
print(name[0], name[1][0], name[2][0])
Абсолютно согласен, использовал срез специально для того, чтобы автор узнал новую фишку и, возможно, погуглил что это за "дичь". Ну и лично мне так больше нравится, а то похоже на многоуровневый список, а так сразу очевидно что там строка, но это уже чисто мои загоны)
0
11 / 2 / 1
Регистрация: 01.11.2018
Сообщений: 42
03.02.2019, 01:54
А если проще поступить? Я всегда думал, что если есть слово "допустим Иванов Петя Васильевич" то он всегда может стать и Петровым и тд. =) облегчим задачу трудяге python до 3х строк
Python
1
2
3
name = input('')
name = name.split()
print(name[0], name[1][0:1], name[2][0:1])
0
 Аватар для Den468
30 / 18 / 14
Регистрация: 19.12.2018
Сообщений: 104
03.02.2019, 02:33  [ТС]
poppy1, даже если и станет. С помощью цикла я искал пробелы, а после брал первые буквы тех слов, что мне нужны. Сама ошибка заключалась в выводе фамилии, вместо слова печаталась куча скобок, кавычек и запятых. Но один знающий человек выше уже ответил.
0
11 / 2 / 1
Регистрация: 01.11.2018
Сообщений: 42
03.02.2019, 04:37
Я понял, решил просто помочь) у тебя код "ну почти верен". Я изменил только в твоем коде переменные, и строку outline
Я думаю, что ты до питона изучал С\С++?
Не уверен конечно, что в С есть такое правило, что "строки нельзя изменять", что видно в твоем коде
A = "Вася Вася Вася"
потом А=list(A)
и в конечном итоге не изменяешь строку
твой код?
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
def name():
    A = "Иванов Пётр Семёнович"
    i = 0
    C = list(A)
    while True:
        if C[i] == ' ':
            C[i] = list(A[i])
            B = C[i+1]
            break
        i += 1
    while True:
        if C[i] == ' ':
            C[i] = list(A[i])
            D = A[i+1]
            break
        i += 1
    out = B + '.' + D
    K = str(A)
    j = 0
    K = list(A)
    while True:
        if K[j] == ' ':
            K[j] = list(A[j])
            K = A[j]
            break
        j += 1
    K = str(A)
    outputLine = B + '.' + D + '.' + K[:j]
    print(outputLine)
    return
 
name()
0
 Аватар для Den468
30 / 18 / 14
Регистрация: 19.12.2018
Сообщений: 104
03.02.2019, 13:51  [ТС]
poppy1, и как Вы догадались? Я и правда до Python немного увлекался C++
Да, код мой
0
 Аватар для Den468
30 / 18 / 14
Регистрация: 19.12.2018
Сообщений: 104
04.02.2019, 22:45  [ТС]
poppy1, спасибо за правку кода
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2019, 22:45
Помогаю со студенческими работами здесь

Ошибка при выводе функции format
Прописал программу, в которой объявил переменную и пытаюсь ее вставить в строку с помощью функции format. (см. скрин 1) my_name =...

Как убрать лишние строки при выводе в python
from math import sqrt from colorama import init from colorama import Fore, Back, Style init() x = float(0) y = float(0) size =...

Синтаксическая ошибка при выводе Label
Выдает синтаксическую ошибку Делаю все по книге! Подскажите в чем причина? from tkinter import * root =Tk() ...

При выводе декодированных байтов выводится ошибка
Всем привет! При написании парсера столкнулся с такой проблемой from urllib.request import urlopen url = 'http://ya.ru/' data =...

Скрыть символ новой строки при выводе строк из файла
Всем доброго времени суток, Изучая запись и чтение из файла в Пайтоне, наткнулся на такую проблему, которую пока не могу решить. Вот...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
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
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами 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/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru