同济大学Python程序设计基础 实验三:选择结构

同济大学Python程序设计基础

实验三

第一题

1.求一元二次方程的根。
要求:输入一元二次方程的三个系数a、b、c,根据系数值,可得出如下三种根:
(1)△>0,两个实根
(2)△=0,重根,即相同根
(3)△<0,无实数根
输出两个实根x1和x2,若没有实根则输出信息:无实根。

代码片.

from math import sqrt 
#这样引入的话在使用sqrt的时候就不需要写成math.sqrt了
a,b,c=eval(input("input a,b,c:"))
deta=b**2-4*a*c
if deta>0:
    x1=(-b+sqrt(deta))/(2*a)
    x2=(-b-sqrt(deta))/(2*a)
    print('x1=',x1,',x2=',x2)
elif deta==0:
    x=(-b+sqrt(deta))/(2*a)
    print('x1=x2=',x)
else:
    print('无实根')

第二题

在购买某物品时,若所花的的钱x在下述范围内,所付钱y按对应折扣支付:
同济大学Python程序设计基础 实验三:选择结构_第1张图片
提示:注意计算公式和条件表达式的正确书写。

代码片.

x=float(input('hwo much did you cost:'))
print('final money:',end=' ')
if x<1000:
    print(x)
elif 1000<=x<2000:
    print(0.9*x)
elif 2000<=x<3000:
    print(0.8*x)
else:
    print(0.7*x)

第三题

编一程序输入上网的时间计算上网费用,计算的方法如下:
同济大学Python程序设计基础 实验三:选择结构_第2张图片

同时为了鼓励多上网,每月收费最多不超过150元。
提示:首先利用多分支if语句根据三个时间段算出费用;然后再用单分支If语句对超过时间段算出费用

代码片.

 x=int(input('上网时间:'))
print("cost:",end=' ')
if x<10:
    print('30')
elif 10<=x<50:
    print(30+(x-10)*2.5)
else:
    if 130+(x-50)*2>150:
        print(150)
    else:
        print(130+(x-50)*2)

第四题

输入x,y,z三个数,按从小到大的次序显示,如图2.3.1所示:
同济大学Python程序设计基础 实验三:选择结构_第3张图片

代码片.

#这个题如果题目没说不能用函数那就直接用列表的sort函数
x,y,z=eval(input('x,y,z:'))
min=x
m=x
max=x
if y<min:
    min=y
if z<min:
    min=z
if y>max:
    max=y
if z>max:
    max=z
for i in (x,y,z):
    print(i)
    if i!=max and i!=min:
        m=i
print(min,m,max)

第五题

利用计算机解决古代数学问题“鸡兔同笼问题”。即已知在同一笼子里有总数为M只鸡和兔,鸡和兔的总脚数为N只,求鸡和兔各有多少只?
提示:鸡、兔的只数通过已知输入的M,N列出方程可解,设鸡为x只,兔为y只,则计算公式为:
x+y=M
2x+4y=N
即:x=M-y
y=N/2-M
但不要求出荒唐的解(例3.5只鸡、-4只兔)。因此,对输入的数据要考虑下面两个条件:
①对输入的总脚数N必须是偶数,否则提示数据错的原因;
②若求出的头数为负数,提示数据错的原因。

代码片.

a,b=eval(input("请输入头的数量和腿的总数:"))
if b%2!=0:
    print("总脚数必须是偶数!")
elif a<0:
    print("头数不能小于0!")
else:
    y=b/2-a
    x=a-y
    if x>=0 and y>=0 and int(x)==x and int(y)==y:
        print('鸡有',x,"只,兔子有",y,"只")
    else:
        print("输入数据有误")
        

你可能感兴趣的:(python,python,算法,数据结构)