用python写物理公式,物理题解答过程!求,谢谢

Python014

用python写物理公式,物理题解答过程!求,谢谢,第1张

#coding=utf-8

import math

print('如果RL滑动变阻器R1,R2,串联,R2最大阻值为20Ω,R2<RL,当滑片P位于b端时,灯泡L的实际功率为2W。求当滑片位于a端时灯泡功率可能是多少?')

P_b = 2

R_l = 8

R_1 = 40

R_2 = [0,8]

I = math.sqrt( P_b/R_l )

while True:

print(f'当滑片在b端时,L的功率为2W,根据公式I = √____此时电路中电流I={I}A')

dl = input("输入你选择的电流公式:")

if dl == 'P/Rl':

input('您输入的公式是串联电路,求电功率最常用的公式,接下来我们进一步分析:')

print(f'根据灯泡2W实际功率P,灯泡电阻Rl,确实全电路的电流I={I},确定电源电压U=I(R1+R2+Rl)')

input('当滑片移动到b端时,滑动变阻器阻值为0,电路中只有灯泡和R2串联,此时要分析的是,根据R2<Rl这个条件,从答案中我们知道此时需要知道一个合理的功率值')

input('此时我们就需要给到R2一个具体的值,因为它的阻值比Rl小,所以我们可以让它取8,这里我们可以得到一个电功率的最小值,当R2=0时,我们又可以得到灯泡Rl功率的一个最大值')

print('当滑动变阻器移动到b端时,R1=0,此时灯泡Rl和R2串联,电压为U,求出此时电路中的电流I\',根据电功率公式P=I\'^2Rl,及题目中中的条件R2小于Rl,取R2两个具体极限值,R2=0Ω,,R2=8Ω')

P_a1 = math.pow(I * (R_l + R_2[0] + R_1) / (R_2[0] + R_l), 2) * R_l

P_a2 = math.pow(I * (R_l + R_2[1] + R_1) / (R_2[1] + R_l), 2) * R_l

print(f'R2=0Ω,灯泡最大功率Pl最大 = {P_a1},当R2=8Ω,灯泡的电小功率为Pl最小={P_a2}')

else:

print('同学,你的思路不对哦!')

模运算的计算原理是这样的: 

假设想求的a = x%y,a的值是通过如下公式算出来的: 

a = x - (x/y)*y,且除法是按照整数除法来运算的 

所以将你的数字代入公式: 

-17%10 = -17 - (-17/10)*10 = -17 - (-2)*10 = 3. 

产生这个结果的关键在于程序的取模公式,保证了 

y是正数,模运算的结果就是[0,y), 

y是负数,模运算的结果就是(y,0]

通常人们希望整除的商和余数会有这样的特性: 

1. 被除数 = 除数*商 + 余数 

2. 被除数符号变化,商的符号也变化,而绝对值不变 

3. 余数的符号和除数相同 

但实际上这 3 条不能总是符合的,第 1 条是肯定要符合的。 

举例来说,3/2 为 1,3%2 为 1,如果要符合第 2 条,那就是 -3/2 为 -1,-3%2 为 -1,它是不符合第 3 条的;而如果要符合第 3 条,则是 -3%2 为 1,-3/2 为 -2,它是不符合第二条的。 

所以一般编程语言会在第 2 或者 第 3 条中选择一条,python 选择的就是满足第 3 条的方式。很多其它的语言选择的是第 2 条。所以在 python 中,-17%10 为 3,而 -17/10 为 -2 

注,在 python 3 中 / 表示除法,不表示整除,所以 -17/10 在 python 3 中为 -1.7,两个 / 才表示整除: -17//10 为 -2 

这个问题在《C语言陷阱和缺陷》中有说明。

import

math

a,b,c

=

input("请输入3个数字(空格分隔):").split()

a

=

float(a)

b

=

float(b)

c

=

float(c)

d

=

(b**2)

-

(4*a*c)

if

a==0

and

b==0

and

c==0

:

print("有无穷个解")elif

d

>=

0:

x1

=

(-b-d/(2*a))

x2

=

(-b+d/(2*a))

print('结果为:%.2f,%.2f'%(x1,x2))

else:

print("无解")