1

Тема: Як зробити, що б між кавичками відображались значення змінних?

Роблю програму по обрахуванню матриць по методу Крамера і виникла складність, що замість:
a11*a22*a33+a12*a23*a31+a21*a32*a13-(a13*a22*a31+a12*a21*33+a23*a32*a11)
відображались реальні змінні, я підозрюю, що треба додавати символ % перед змінними, але нічого не вдається.

print('   ----')
print('   - a11x1+a12x2+a13x3=b1')
print('   -')
print('-    a21x1+a22x2+a23x3=b2')
print('   -')
print('   - a31x1+a32x2+a33x3=b3')
print('   ----')


a11 = float(input('Введи значення а11: '))
a12 = float(input('Введи значення а12: '))
a13 = float(input('Введи значення а13: '))
a21 = float(input('Введи значення а21: '))
a22 = float(input('Введи значення а22: '))
a23 = float(input('Введи значення а23: '))
a31 = float(input('Введи значення а31: '))
a32 = float(input('Введи значення а32: '))
a33 = float(input('Введи значення а33: '))
b1 = float(input('Введи значення b1: '))
b2 = float(input('Введи значення b2: '))
b3 = float(input('Введи значення b3: '))

d = a11*a22*a33+a12*a23*a31+a21*a32*a13-(a13*a22*a31+a12*a21*a33+a23*a32*a11)
print('a11*a22*a33+a12*a23*a31+a21*a32*a13-(a13*a22*a31+a12*a21*33+a23*a32*a11)')
print('Значення нульового трикутника: ','\n')
d1 = b1*a22*a33+a12*a23*b3+b2*a32*a13-(a13*a22*b3+a12*b2*a33+a23*a32*b1)
print ('b1*a22*a33+a12*a23*b3+b2*a32*a13-(a13*a22*b3+a12*b2*a33+a23*a32*b1)')
print('Значення першого трикутника: ',d1,'\n')
d2 = a11*b2*a33+b1*a23*a31+a21*b3*a13-(a13*b2*a31+b1*a21*a33+a23*b3*a11)
print('a11*b2*a33+b1*a23*a31+a21*b3*a13-(a13*b2*a31+b1*a21*a33+a23*b3*a11)')
print('Значення першого трикутника: ',d2,'\n')
d3 = a11*a22*b3+a12*b2*a31+a21*a32*b1-(b1*a22*a31+a12*a21*b3+b2*a32*a11)
print('a11*a22*b3+a12*b2*a31+a21*a32*b1-(b1*a22*a31+a12*a21*b3+b2*a32*a11)')
print('Значення першого трикутника: ',d2,'\n')

2

Re: Як зробити, що б між кавичками відображались значення змінних?

З d, d1, d2 і d3 ви впорались, а з a і b ні?

Подякували: koala1

3

Re: Як зробити, що б між кавичками відображались значення змінних?

print('   ----')
print('   - a11x1+a12x2+a13x3=b1')
print('   -')
print('-    a21x1+a22x2+a23x3=b2')
print('   -')
print('   - a31x1+a32x2+a33x3=b3')
print('   ----')


a11 = float(input('Введи значення а11: '))
a12 = float(input('Введи значення а12: '))
a13 = float(input('Введи значення а13: '))
a21 = float(input('Введи значення а21: '))
a22 = float(input('Введи значення а22: '))
a23 = float(input('Введи значення а23: '))
a31 = float(input('Введи значення а31: '))
a32 = float(input('Введи значення а32: '))
a33 = float(input('Введи значення а33: '))
b1 = float(input('Введи значення b1: '))
b2 = float(input('Введи значення b2: '))
b3 = float(input('Введи значення b3: '))

d = a11*a22*a33+a12*a23*a31+a21*a32*a13-(a13*a22*a31+a12*a21*a33+a23*a32*a11)
print('a11*a22*a33+a12*a23*a31+a21*a32*a13-(a13*a22*a31+a12*a21*33+a23*a32*a11)')
print(a11*a22*a33+a12*a23*a31+a21*a32*a13-(a13*a22*a31+a12*a21*a33+a23*a32*a11))
print('Значення нульового трикутника: ',d,'\n')
d1 = b1*a22*a33+a12*a23*b3+b2*a32*a13-(a13*a22*b3+a12*b2*a33+a23*a32*b1)
print ('b1*a22*a33+a12*a23*b3+b2*a32*a13-(a13*a22*b3+a12*b2*a33+a23*a32*b1)')
print('Значення першого трикутника: ',d1,'\n')
d2 = a11*b2*a33+b1*a23*a31+a21*b3*a13-(a13*b2*a31+b1*a21*a33+a23*b3*a11)
print('a11*b2*a33+b1*a23*a31+a21*b3*a13-(a13*b2*a31+b1*a21*a33+a23*b3*a11)')
print('Значення першого трикутника: ',d2,'\n')
d3 = a11*a22*b3+a12*b2*a31+a21*a32*b1-(b1*a22*a31+a12*a21*b3+b2*a32*a11)
print('a11*a22*b3+a12*b2*a31+a21*a32*b1-(b1*a22*a31+a12*a21*b3+b2*a32*a11)')
print('Значення першого трикутника: ',d2,'\n')

x1=d1/d
print('d1/d =', x1, '\n')
x2=d2/d
print('d2/d =', x2, '\n')
x3=d3/d
print('d3/d =', x3, '\n')

4

Re: Як зробити, що б між кавичками відображались значення змінних?

Я розібрався.

d = a11*a22*a33+a12*a23*a31+a21*a32*a13-(a13*a22*a31+a12*a21*a33+a23*a32*a11)
print('a11*a22*a33+a12*a23*a31+a21*a32*a13-(a13*a22*a31+a12*a21*33+a23*a32*a11)','\n')
print('%a11*%a22*%a33+%a12*%a23*%a31+%a21*%a32*%a13-(%a13*%a22*%a31+%a12*%a21*%a33+%a23*%a32*%a11)' % (a11,a22,a33,a12,a23,a31,a21,a32,a13,a13,a22,a31,a12,a21,a33,a23,a32,a11), '\n')
Подякували: koala1

5 Востаннє редагувалося P.Y. (30.09.2015 22:23:19)

Re: Як зробити, що б між кавичками відображались значення змінних?

Взагалі-то, вираз у лапках в останньому рядку — шаблон, у якому імена змінних з'являтись не повинні. %a — не підстановка змінної з іменем «a», а підстановка по порядку значення зі списку, що йде після лапок та оператора %. Цифри після %a (напр., %a11) друкуються як є — тобто, print('%a11' % a11) надрукує вам значення змінної a11 та цифри 11:

>>> a11=10
>>> print('%a11' % a11)
1011

Замість %a  — підстановка repr(змінна), можна використати %s — підстановка str(змінна), а в випадку чисел з плаваючою комою, краще взяти %f (підстановка в вигляді десяткового дробу) або %e (в експонентній формі), для цілих чисел — %d. Існуюють і інші шаблони, але не на кожну літеру є свій окремий шаблон (що %a адекватно виводить числа, вам просто пощастило, а от якби ви назвали свої змінні b11, b12 і т.д., а тоді спрбували б вліпити %b в шаблон...), не всі шаблони сумісні з усіма типами даних, результат їх роботи може відрізнятись...

У двох словах: останній рядок має бути таким:

print('%a*%a*%a+%a*%a*%a+%a*%a*%a-(%a*%a*%a+%a*%a*%a+%a*%a*%a)' % (a11,a22,a33,a12,a23,a31,a21,a32,a13,a13,a22,a31,a12,a21,a33,a23,a32,a11), '\n')
Подякували: nicoliafox1