Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
2 / 2 / 2
Регистрация: 03.11.2013
Сообщений: 41

Чтение из файла

12.11.2014, 20:12. Показов 2078. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такое вот задание:
Create a text file that contains names (e.g. “Joe Abernathy”) and salaries. Write a program that:

Prompts the user for a name and looks up the corresponding salary. The user should be able to enter just a first or last name, and the program should find any matches. The program should not be case sensitive. So, if the user enters “joe”, the salaries for “Joe Abernathy” and “Joe Ramirez” might be displayed.
Prints the sum of the salaries.
Prints the average salary.


Создал текстовый файл salary.txt
Ivan|Ivanov|60000
Petr|Petrov|75000
Yuriy|Denegkin|120000
Larisa|Krisa|35000


Написал такой вот код, но при введении даже правильного значения имени програма все равно пишет что нет такого работника. Значит где то ошибка в сранении query и name, только вот не могу понять где.
Вот код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
salary_file = open('salary.txt', mode = 'r', encoding='UTF-8')
 
 
query = input("Please enter employee name ")
query = query.lower
for line in salary_file:
    
    column = line.split("|")
    name = column[0]
    name = name.lower
    lastname = column[1]
    lastname = lastname.lower
    salary = column[2]
    print(name())
    print(query())
    if name == query:
        print(name + lastname + salary)
    else:
        print("There is no such employee")
        
salary_file.close()
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.11.2014, 20:12
Ответы с готовыми решениями:

Как заменить чтение строки из консоли на чтение текстового файла?
основное задание: найти частоту суффикса (например, "ing") в текстовом документе. в прикреплённом коде текст вводится прямо в консоль,...

Чтение чисел из файла. Чтение после конца потока невозможно
Товарищи, помогите. В Pascal'e я не силен, так что не бейте меня ногами, но есть задача: написать обычную программу для расчета некоторых...

Заменить чтение файлов через IMAP на почте на чтение с файла с сылки и последующее удаление
Доброе время суток! Вот вожусь с кодом: function checkEmail() { ...

3
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
12.11.2014, 22:09
Python
1
query = query.lower()
вот так для начала

Добавлено через 6 минут
пардон, не заметил. Но лучше делать так как я написал, нежели так как у вас.

Добавлено через 7 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
salary_file = open('salary.txt', mode='r', encoding='UTF-8')
 
 
query = input("Please enter employee name ")
query = query.lower()
for line in salary_file:
 
    column = line.split("|")
    name = column[0]
    name = name.lower()
    lastname = column[1]
    lastname = lastname.lower()
    salary = column[2]
    print(name)
    print(query)
    if name == query:
        print(name + lastname + salary)
    else:
        print("There is no such employee")
 
salary_file.close()
Добавлено через 2 минуты
Ошибочка где то у тебя была
1
2 / 2 / 2
Регистрация: 03.11.2013
Сообщений: 41
12.11.2014, 22:44  [ТС]
Возможно что то упустил) ведь я только учусь. Большое спасибо!!

Добавлено через 16 минут
вот еще добавил возможность выводить суму всех по зп и среднюю зп.
Но есть пару моментов которые хочу исправить:
- при совпадении имени мне нужно вывести только ФИО и ЗП только совпавшего сотрудника (а програма даже при совпадении продолжает перебирать всех)
- нужно еще добавить возможность пользователю выбрать либо ввести еще имя лио выйти из програмы.

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
salary_file = open('salary.txt', mode = 'r', encoding='UTF-8')
 
 
query = input("Please enter employee name ")
query = query.lower()
sum = 0
count = 0
for line in salary_file:
    
    column = line.split("|")
    name = column[0]
    name = name.lower()
    lastname = column[1]
    lastname = lastname.lower()
    salary = column[2]
    salary = int(salary)
    sum = sum + salary 
    count = count + 1
    print(name)
    print(query)
    if name == query:
        print(name+ lastname + str(salary))
        
    else:
        print("There is no such employee")
 
 
print ("Total sum of all salaries is "+ str(sum))
average = sum / count
print("Average salary for all employees is " + str(average))
salary_file.close()
0
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
13.11.2014, 00:04
Вот код. Некоторые вещи сделаны чуть под другому нежели у вас.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
salary_file = open('salary.txt', mode = 'r', encoding='UTF-8')
 
while True:
 
    query = input("Please enter employee name ")
    query = query.lower()
    salaries = []
    res = "There is no such employee"
    for line in salary_file:
        name, lastname, salary = map(str.lower, line.split("|"))
        salaries.append(int(salary))
        if name == query:
            res = name + lastname + str(salary)
    print(res)
    n = input("Press q to quit")
    if n == 'q':
        break
 
 
print("Total sum of all salaries is " + str(sum(salaries)))
average = sum(salaries) / len(salaries)
print("Average salary for all employees is " + str(average))
salary_file.close()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2014, 00:04
Помогаю со студенческими работами здесь

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -> Vehicles -> Firetruck_0 В этой папке лежит файл формата .dat Что нужно сделать? ...

Как заменить чтение массива на чтение файла с .txt
что делать если программа подстроена под чтение массива, а нужно читать .тхт

Чтение заголовка PCX файла и чтение растровых данных PCX файла
Привет форумчане! Столкнулся с такой проблемой. Нужно считать заголовок PCX файла и растровые данные PCX файла. Код написал. Часть...

Чтение бинарного файла - чтение первых 9 байт
Есть код, который читает первые 9 байт бинарного файла(заголовок записи) void ATS44Encoder::FileEncode() { QFile* file = new...

Чтение файла CSV и чтение из Table View
Здравствуйте, задача считать столбцы и строки excel в TextEdit. Прошу помощи в реализиции. Вручную сохраняю xls файл в csv. Потом надо...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
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
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru