Как я могу напечатать объем одного многогранника, основываясь на том, что вводят пользователи? - PullRequest
0 голосов
/ 29 сентября 2018

Напишите программу, которая читает первую заглавную букву ("T", "C", "O", "D" или "I") многогранника размером с сторону и которая печатает объем соответствующего многогранника,Если прочитанная буква не является одной из 5 букв, ваша программа печатает «Неизвестный многогранник».

Это печатает почти каждое входное значение как значение «оператора извлечения», но должно печатать объем многогранника на основена букву, которую вводит пользователь, а также меру стороны.

import math
p = str(input())
a = float(input())
T = (math.sqrt(2) / 12) * (a ** 3)
C = a ** 3
O = (math.sqrt(2) / 3) * (a ** 3)
D = (15 + 7 * math.sqrt(5)) / 4 * (a ** 3)
I = 5 * (3 + math.sqrt(5)) / 12 * (a ** 3)
if p == (math.sqrt(2) / 12) * (a ** 3) :
    print (T)
elif p == a ** 3 :
    print(C)
elif p == (math.sqrt(2) / 3) * (a ** 3) :
    print(O)
elif p == (15 + 7 * math.sqrt(5)) / 4 * (a ** 3) :
    print(D)
elif p == 5 * (3 + math.sqrt(5)) / 12 * (a ** 3) :
    print(I)
else :
    print('Polyèdre non connu')

1 Ответ

0 голосов
/ 29 сентября 2018

Вот исправленная рабочая версия того, что вы хотите

import math
p = input("Enter type of polyhedral: ")
a = float(input("Enter the value of a: "))

if p == 'T':
    volume =(math.sqrt(2) / 12) * (a ** 3)
elif p == 'C':
    volume = a**3
elif p == 'O':
    volume = (math.sqrt(2) / 3) * (a ** 3)
elif p == 'D':
    volume = (15 + 7 * math.sqrt(5)) / 4 * (a ** 3) 
elif p == 'I':
    volume =  5 * (3 + math.sqrt(5)) / 12 * (a ** 3)
else:
    print('Polyèdre non connu')
    volume = "Not Yet Defined"

print ("The volume of p=%s is %s" %(p, volume))      

Пример вывода

Enter type of polyhedral: O
Enter the value of a: 12.45
The volume of p=O is 909.71

Enter type of polyhedral: K
Enter the value of a: 12
Polyèdre non connu
The volume of p=K is Not Yet Defined
...