С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
5 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 26
1

Уважаемые знатоки, подскажите возможно ли как то упростить данный код

20.09.2019, 18:13. Показов 866. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть в том, что количество и значения измерений (переменных fr и Tkip) каждый раз разное. А формулы в функциях каждый раз одинаковые. Можно ли как то написать код в общем виде, чтобы не вбивать программу для каждого частного случая все формулы заново?
Снизу приведен код, где расписаны 3 разных варианта с 3 количествами измерений, с 4 и 5.

https://www.cyberforum.ru/cgi-bin/latex.cgi?n=5 # количество измерений #количество измерений равно 3fr0=0fr1=50fr100=100Tkip0=28Tkip1=120Tkip100=204if (n==3):	def izm3():				#средние температуры кипения при 3-х измерениях		Tcr0=Tkip0		Tcr1=(Tkip0+Tkip1)/2		Tcr2=(Tkip1+Tkip100)/2		print('1-я Средняя температура='+ str(Tcr0))		print('2-я Средняя температура='+ str(Tcr1))		print('3-я Средняя температура='+ str(Tcr2))        #объемные доли при 3-х измерениях		Vol1=(fr1-fr0)/100		Vol2=(fr100-fr1)/100				print('1-я объемная доля='+ str(Vol1))		print('2-я объемная доля='+ str(Vol2))		izm3()# количество измерения равно 4fr0=0fr1=30fr2=70fr100=100Tkip0=28Tkip1=75Tkip2=120Tkip100=204if (n==4):	def izm4():		#средние температуры кипения при 4-х измерениях		Tcr0=Tkip0		Tcr1=(Tkip0+Tkip1)/2		Tcr2=(Tkip1+Tkip2)/2		Tcr3=(Tkip2+Tkip100)/2		print('1-я Средняя температура='+ str(Tcr0))		print('2-я Средняя температура='+ str(Tcr1))		print('3-я Средняя температура='+ str(Tcr2))		print('4-я Средняя температура='+ str(Tcr3))		#объемные доли при 4-х измерениях		Vol1=(fr1-fr0)/100		Vol2=(fr2-fr1)/100		Vol3=(fr100-fr2)/100		print('1-я объемная доля='+ str(Vol1))		print('2-я объемная доля='+ str(Vol2))		print('3-я объемная доля='+ str(Vol3))	izm4()#количество измерений равно 5fr0=0fr1=20fr2=50fr3=70fr100=100Tkip0=28Tkip1=75Tkip2=120Tkip3=162Tkip100=204if (n==5):	def izm5():		#средние температуры кипения при 5 измерениях		Tcr0=Tkip0		Tcr1=(Tkip0+Tkip1)/2		Tcr2=(Tkip1+Tkip2)/2		Tcr3=(Tkip2+Tkip3)/2		Tcr4=(Tkip3+Tkip100)/2		print('1-я Средняя температура='+ str(Tcr0))		print('2-я Средняя температура='+ str(Tcr1))		print('3-я Средняя температура='+ str(Tcr2))		print('4-я Средняя температура='+ str(Tcr3))		print('5-я Средняя температура='+ str(Tcr4))		#объемные доли при 5 измерениях		Vol1=(fr1-fr0)/100		Vol2=(fr2-fr1)/100		Vol3=(fr3-fr2)/100		Vol4=(fr100-fr3)/100		print('1-я объемная доля='+ str(Vol1))		print('2-я объемная доля='+ str(Vol2))		print('3-я объемная доля='+ str(Vol3))		print('4-я объемная доля='+ str(Vol4))	izm5()

Добавлено через 11 минут
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
n=5 # колличество измерений 
 
#колличество измерений равно 3
fr0=0
fr1=50
fr100=100
 
Tkip0=28
Tkip1=120
Tkip100=204
 
 
if (n==3):
    def izm3():
        
        #средние температуры кипения при 3-х измерениях
        Tcr0=Tkip0
        Tcr1=(Tkip0+Tkip1)/2
        Tcr2=(Tkip1+Tkip100)/2
 
        print('1-я Средняя температура='+ str(Tcr0))
        print('2-я Средняя температура='+ str(Tcr1))
        print('3-я Средняя температура='+ str(Tcr2))
        #объемные доли при 3-х измерениях
        Vol1=(fr1-fr0)/100
        Vol2=(fr100-fr1)/100
        
        print('1-я объемная доля='+ str(Vol1))
        print('2-я объемная доля='+ str(Vol2))
    
    izm3()
# колличество измерения равно 4
fr0=0
fr1=30
fr2=70
fr100=100
 
Tkip0=28
Tkip1=75
Tkip2=120
Tkip100=204
 
if (n==4):
    def izm4():
 
        #средние температуры кипения при 4-х измерениях
        Tcr0=Tkip0
        Tcr1=(Tkip0+Tkip1)/2
        Tcr2=(Tkip1+Tkip2)/2
        Tcr3=(Tkip2+Tkip100)/2
 
        print('1-я Средняя температура='+ str(Tcr0))
        print('2-я Средняя температура='+ str(Tcr1))
        print('3-я Средняя температура='+ str(Tcr2))
        print('4-я Средняя температура='+ str(Tcr3))
 
        #объемные доли при 4-х измерениях
        Vol1=(fr1-fr0)/100
        Vol2=(fr2-fr1)/100
        Vol3=(fr100-fr2)/100
 
        print('1-я объемная доля='+ str(Vol1))
        print('2-я объемная доля='+ str(Vol2))
        print('3-я объемная доля='+ str(Vol3))
    izm4()
 
#колличество измерений равно 5
fr0=0
fr1=20
fr2=50
fr3=70
fr100=100
 
Tkip0=28
Tkip1=75
Tkip2=120
Tkip3=162
Tkip100=204
 
if (n==5):
    def izm5():
 
        #средние температуры кипения при 5 измерениях
        Tcr0=Tkip0
        Tcr1=(Tkip0+Tkip1)/2
        Tcr2=(Tkip1+Tkip2)/2
        Tcr3=(Tkip2+Tkip3)/2
        Tcr4=(Tkip3+Tkip100)/2
 
        print('1-я Средняя температура='+ str(Tcr0))
        print('2-я Средняя температура='+ str(Tcr1))
        print('3-я Средняя температура='+ str(Tcr2))
        print('4-я Средняя температура='+ str(Tcr3))
        print('5-я Средняя температура='+ str(Tcr4))
 
        #объемные доли при 5 измерениях
        Vol1=(fr1-fr0)/100
        Vol2=(fr2-fr1)/100
        Vol3=(fr3-fr2)/100
        Vol4=(fr100-fr3)/100
 
        print('1-я объемная доля='+ str(Vol1))
        print('2-я объемная доля='+ str(Vol2))
        print('3-я объемная доля='+ str(Vol3))
        print('4-я объемная доля='+ str(Vol4))
    izm5()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.09.2019, 18:13
Ответы с готовыми решениями:

Уважаемые знатоки,прошу вас подскажите как решать
Сами задания вложил в архив.

Как можно сократить и упростить данный код
Всем привет! Появилась отличная идея сделать консольную игру типа 2D головоломки. Создал дизайн...

Знатоки, подскажите пожалуйста,возможно ли поменять турбину на 1060?
Господа,подскажите чайнику, возможно ли поменять турбину на видеокарте 1060 6гб?? И...

Возможно ли укоротить данный код и записать в одну строку. И вообще как научиться укорачивать код)
lst = list() for i in range(2): lst.append(int(input())) print(max(lst))

6
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
20.09.2019, 18:20 2
Можно. Используйте функции и параметры.
0
5 / 0 / 0
Регистрация: 20.09.2019
Сообщений: 26
20.09.2019, 18:27  [ТС] 3
А можно немного подробнее, если не затруднит?
0
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
20.09.2019, 19:28 4
Удалов Павел, это база. Почитайте сами.
0
Автоматизируй это!
Эксперт Python
7211 / 4706 / 1224
Регистрация: 30.03.2015
Сообщений: 13,412
Записей в блоге: 29
21.09.2019, 08:44 5
Удалов Павел, функции надо вынести из условий, причем как советовали выше сделать одну общую. Сам посмотри - у тебя очень много повторяющегося кода, который как известно -главная проблема в разработке.
0
Эксперт Python
4640 / 2056 / 363
Регистрация: 17.03.2012
Сообщений: 10,139
Записей в блоге: 6
23.09.2019, 11:44 6
Welemir1, не-не-не, я не советовал сделать одну общую! Может, их там две или больше понадобится.
Но повторяющийся код таки бросается в глаза.
0
Модератор
Эксперт Python
2692 / 1598 / 513
Регистрация: 21.02.2017
Сообщений: 4,211
Записей в блоге: 1
23.09.2019, 16:15 7
Удалов Павел, на коленке написал:

Кликните здесь для просмотра всего текста

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
# -*- coding: utf-8 -*-
 
def calcAverageBoilingPoint(temps:list, frs:list)->None:
    for i in range(len(temps)):
        if i != 0:
            tcr = (temps[i-1] + temps[i]) / 2
        else:
            tcr = temps[i]
        print("%d-я средняя температура кипения = %d" % (i+1, tcr))
 
    for i in range(len(frs)-1):
        vol = (frs[i+1] - frs[i]) / 100
        print("%d-я объемная доля = %.2f" % (i+1, vol))
 
calcAverageBoilingPoint([28, 120, 204], [0, 50, 100])
# Вывод:
#
# 1-я средняя температура кипения = 28
# 2-я средняя температура кипения = 74
# 3-я средняя температура кипения = 162
# 1-я объемная доля = 0.50
# 2-я объемная доля = 0.50
 
calcAverageBoilingPoint([0, 30, 70, 100], [28, 75, 120, 204])
# Вывод:
#
# 1-я средняя температура кипения = 0
# 2-я средняя температура кипения = 15
# 3-я средняя температура кипения = 50
# 4-я средняя температура кипения = 85
# 1-я объемная доля = 0.47
# 2-я объемная доля = 0.45
# 3-я объемная доля = 0.84


Как совет: назвать переменные более правильно. Использовал ваши имена, но абсолютно не понятно что они означают.
0
23.09.2019, 16:15
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.09.2019, 16:15
Помогаю со студенческими работами здесь

Возможно ли как-то упростить код?
int choice = int.Parse(Console.RealLine()); int money = 10000; int money2 = 1000; switch...

Уважаемые знатоки!
Вопрос - допустим, я хочу стать программистом. С чего начать? какой язык посоветуете?

Уважаемые знатоки, подскажите пожалуйста GTX TITAN + GTX TITAN BLACK
Добрый день, подскажите пожалуйста, Конфигурация компьютера следующая: MB: Asus Rampage IV...

Уважаемые знатоки, посмотрите пожаалуйста
Уважаемые знатоки помогите пожалуйста разработать программу. Вообщем дали задание на создание...

Добрый день уважаемые знатоки!
Проблема вот в чем, есть Joomla 2.5.18 и VirtueMart 2.0.20b все работало нормально, два дня назад...

Подскажите, как упростить код?
Можно ли код упростить, циклом каким нибудь ? Вот собственно сам код: if AllMinutes = 0 then...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru