目录
实验目的:
1. 掌握Python基础语法
2. 掌握Python函数
3. 掌握面向对象程序设计
实验内容:
- 编写程序求一元二次方程的解,系数由键盘输入。
import math
a=int(input("请输入a:"));
b=int(input("请输入b:"));
c=int(input("请输入c:"));
if a!=0:
d = b * b - 4 * a * c
if d < 0:
print("该方程无实根")
elif d == 0:
out = -b / (2 * a)
print("方程有且只有一个实根:%0.2f" % out)
elif d > 0:
x1 = (-b + math.sqrt(d)) / (2 * a)
x2 = (-b - math.sqrt(d)) / (2 * a)
print("方程有两个实根,分别为:%0.2f和%0.2f" % (x1, x2))
else:
if b==0:
print("输入错误!")
else:
out = -c / b
print("该方程为一元一次方程只有一根:%0.2f" % out)
2.编写程序,产生两个区间[0, 100]内的随机整数a和b,求a和b的最大公约数和最小公倍数。
import random
a=m=random.randint(0,100)
b=n=random.randint(0,100)
temp=0
if a>b:
while b!=0:
temp=a%b
a=b
b=temp
x=(m*n)/a
print("{0},{1}的最大公约数为:{2},最小公倍数为:{3}".format(m,n,a,x))
else:
while a != 0:
temp = b % a
b = a
a = temp
x = (m * n) / b
print("{0},{1}的最大公约数为:{2},最小公倍数为:{3}".format(m, n, b, x))
3.编写函数fib(n)求斐波那契数列第n项的值,规定第一二项的值为1。并利用函数式编程(匿名函数、可迭代对象)求某列表如[5, 15, 3, 7]中的值所对应的fib(n)值。
n = int(input('请输入要一个整数:'))
n_1 = 0
n_2 = 1
current=1
for x in range(2, n+1):
current = n_1 + n_2
n_1 = n_2
n_2 = current
print('第%d个数是%d'%(n, current))
4.编写程序,创建类Temperature,其中包含成员变量degree(表示温度),及实例方法ToFahrenheit(摄氏转华氏温度) ToCelsius(华氏温度转摄氏),并编写测试代码。效果如图所示:
class Temperature:
def __init__(self,degree):
self.degree=degree
#摄氏度转化成华氏度
def c_f(degree):
degree=float(degree)
degree1=(degree*9/5)+32
return degree1
#华氏度转化成摄氏度
def f_c(degree1):
degree1=float(degree1)
degree=(degree1-32)*5/9
return degree
degree=float(input("请输入摄氏温度:"))
ToFahrenheit=Temperature.c_f(degree)
print("摄氏温度={0},华氏温度={1}".format(degree,ToFahrenheit))
degree1=float(input("请输入华氏温度:"))
ToCelsius=Temperature.f_c(degree1)
print("华氏温度={0},摄氏温度={1}".format(degree1,ToCelsius))
实验步骤:
- 用公式法求解,利用求根公式求解,考虑a,b的取值分情况讨论
- 引用随机数模块,生成两个随机数,再用辗转相除法求解
- 斐波那契数列是前两个数为1,后面的数为前两个数之和
- 构造类,定义构造函数,定义两个温度互相转化的方法
实验心得:
在第一题的时候,忘记考虑对于a,b值的考虑,输入001的时候就会报错,少了对于各种情况的考虑,实验的时候遇到未解析引用,直接添加模块名解决。