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

Структуры кода в Python (прокомментируйте мой код)

19.02.2019, 23:22. Показов 1624. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коротко о неглавном: иду наперед программы, лекции еще не было, но хочу разобраться. Задание:
Напишите функцию, которая получает в качестве параметра строку. Если эта строка входит в кортеж (“Joe”, “Scott”, “John” или “Stephen”), то она возвращает и выводит на экран имя с соответствующей фамилией (“Warren”, “Rixner”, “Greiner” или “Wong”). Если имя не соответствует перечисленным именам, должна быть выведена строка “Ошибка. Нет такого сотрудника”
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
name1 = "Joe", "Joe Warren"
name2 = "Scott", " Rixner"
name3 = "John", " Greiner"
name4 = "Stephen", " Wong"
def name(a):
    if a == name1[0]:
        print(name1[1])
    elif a == name2[0]:
        print(name2[0] + name2[1])
    elif a == name3[0]:
        print(name3)
    else:
        print("Ошибка. Нет такого сотрудника")
name("Joe")
name("Scott")
name("John")
name("Женьшенька")
name("Chingachgook")
Результат:
Joe Warren
Scott Rixner
('John', ' Greiner')
Ошибка. Нет такого сотрудника
Ошибка. Нет такого сотрудника
Вроде работает, это подходит как решение(учитывая все варианты, какой адекватный или все фигня??)? Но меня не устраивает. Допустим у меня большая БД, нельзя же так прописывать каждую строку. Как улучшить???
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2019, 23:22
Ответы с готовыми решениями:

Пожалуйста прокомментируйте мой код
Прокомментируйте каждую строчку пожалуйста, кроме выводов результатов и т.п. : ```py eng_abc = 'abcdefghijklmnopqrstuvwxyz' ...

Прокомментируйте мой выбор комплектующих
Добрый день, Вот что я выбрал http://www.dns-shop.ru/catalog/cart/ Подскажите все ли оптимально выбрано, или что-то стоит заменить?

Есть код на Java- нужна реализация кода Python на основе кода
Посоветуйте какой-то софт или же напишите мне кто шарит в пайтоне для помощи реализации

8
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
20.02.2019, 00:16
LuxAes, так норм?
Заполнение dict можно сделать динамическим по данным с какого-то файла, например.

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
name1 = "Joe", "Joe Warren"
name2 = "Scott", " Rixner"
name3 = "John", " Greiner"
name4 = "Stephen", " Wong"
 
def get_tuple(x): return x
def get_first(x): return x[0]
def get_second(x): return x[1]
def get_join(x): return x[0]+x[1]
def get_error(_): return "Error"
 
action_map = {
    "Joe":(name1, get_second),
    "Scott":(name2, get_join),
    "John":(name3, get_tuple), 
}
 
def name(a):
    if a in action_map:
        tup, func = action_map[a]
        print(func(tup))
    else:
        print("Ошибка. Нет такого сотрудника")
 
name("Joe")
name("Scott")
name("John")
name("Женьшенька")
name("Chingachgook")
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
20.02.2019, 07: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
d = {
    "Joe": "Warren",
    "Scott": "Rixner",
    "John": "Greiner",
    "Stephen": " Wong",
}
 
def name(a):
    if a in d.keys():
        print(d[a])
        return d[a]
    print("Ошибка. Нет такого сотрудника")
 
name("Joe")
name("Scott")
name("John")
name("Женьшенька")
name("Chingachgook")
#Warren
#Rixner
#Greiner
#Ошибка. Нет такого сотрудника
#Ошибка. Нет такого сотрудника
1
19 / 17 / 7
Регистрация: 18.09.2017
Сообщений: 96
20.02.2019, 08:15
Цитата Сообщение от LuxAes Посмотреть сообщение
Допустим у меня большая БД, нельзя же так прописывать каждую строку.
Ctrl+C/Ctrl+V для кого придумали?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
20.02.2019, 14:07
Лучший ответ Сообщение было отмечено LuxAes как решение

Решение

Цитата Сообщение от trifecta Посмотреть сообщение
Сообщение от LuxAes
Допустим у меня большая БД, нельзя же так прописывать каждую строку.
Ctrl+C/Ctrl+V для кого придумали?
А не тот случай: к бд, там опдход иной:
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
import sqlite3
import sys
import os
import binascii
def reader(fname,nm):
 
 
    with open(fname,'rb' )as fp:
        content=fp.read()
        #print(binascii.hexlify(content))
        fhex=(binascii.hexlify(content))
    fp.close()
    try:
        conn=sqlite3.connect(nm+'.'+'db')#создаеим базу
        cur=conn.cursor()#соединяемся
        cur.execute('''create table if not exists yourtable(id int auto_increment primary key not null, yorfield varchar(50), yfield blob not null)''')# заполняем курсор
 
        cur.execute("insert into yortable(id,muzname,mfile)values(1,'my',?)",(fhex,))# выполняем то, что в курсоре
 
        cur.execute("select  * from yourtable ") # выбираем результат в sql 
        results=cur.fetchall()# передаем курсор
        print(results) # выводим
        conn.commit()# закрываем сессию
        with open(nm+'.'+'sql', 'w')as fp:
            for line in conn.iterdump():
                fp.write("%s\n" % line)
 
 
    finally:
        cur.close()# и курсор
        conn.close()#соединение 
 
    #print(fhex)
    return fhex
if __name__ == '__main__':
    fhex=[]# список бинаризтрованных, в данном случае, файлов
    nm = str(input("имя базы"))
    fname='file'
    reader(fname,nm)
1
0 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 23
20.02.2019, 21:55  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Дождитесь лучше лекций по теме, чем изобретать своё.
Препод заболел, приходиться изобретать
Dax,
интересно, буду иметь представление об этом, выглядит достаточно сложно.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
20.02.2019, 22:08
LuxAes, я думаю, что, вполне будете).
Вверху достаточно примеров с кортежами, а я среагировал на пример с БД, ну, уж, как мне кажется,стоило пояснить, что то,, с чего все началось и БД - таки 2 большие разницы, разность и решил показать .

Добавлено через 4 минуты
Sql не так страшен, как кажется, главное понимать, что , курсор - то, что соединяет Python и именно Бд, а запросы -такие же(естественно в рамках, формализованных правил).
0
0 / 0 / 0
Регистрация: 25.12.2018
Сообщений: 23
20.02.2019, 22:15  [ТС]
Dax,
Я это понимаю, маня заинтересовало то, что конкретно эта задача могла усложниться бд и тогда явно будет что-то другое. Вопрос вытек сам собой. Спасибо, что потратили время, чтобы объяснить.
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
20.02.2019, 22:19
LuxAes, всегда пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.02.2019, 22:19
Помогаю со студенческими работами здесь

Кроссбраузерность обработки кода или почему мой код работает только в Chrome ?
Доброго времени суток! есть у меня вот такой вот код <!DOCTYPE HTML> <html> <head> <meta...

MVC - мой первый скрипт, оцените/исправьте/добавьте/прокомментируйте
Доброго времени суток, вот я погуглил, почитал всяких статей про MVC на PHP, поюзал немного фреймворк CodeIgniter, и решил что надо чтото в...

Код ревью python кода
Всем привет, хотелось бы, чтобы кто-нибудь посмотрел на мой код(и комментарии к коммитам) и покритиковал. Ссылка на репозиторий:...

Перенос переменных из кода на python в код на С++
Объявил переменную а через PyRun_SimpleString(а=1) Как теперь сделать так, чтобы выводилось сообщение "Оно равно 1"...

Как вызывать код, написанный на Python, из C++ кода?
Решил использовать .py скрипты в проекте. Кинул python.h в каталог проекта, но код #include <iostream> #include...


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

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