Python程序设计实验 程序设计

一、实验目的

1.熟悉Python语言集成开发环境,进行编辑、保存、编译及运行,并能进行简单程序调试;

2.掌握Python语言中各种变量及运算符的使用;

3.掌握Python语言中简单数据类型的区别与应用;

4.掌握Python语言中列表、元组、字典等复杂数据类型的用法;

5.掌握Python语言中循环结构、分支结构的用法。

二、实验环境

1.Windows操作系统的计算机

2.Python环境平台

三、实验说明

1.首先应熟悉Python运行环境,正确操作
2.实验中如无特别说明,均要求使用脚本(.py)方式编写代码

3.自主编写程序,必要时参考相关资料

4.实验学时:2学时

四、实验内容和步骤

1.实验内容

(1)编写一个Python程序,求一元二次方程ax2 +bx +c =0的根,并采用相关数据测试。

(2)求1+(1+2)+(1+2+3)+ … +(1+2+3++ … +n)之和有3种解法。

解法1:采用两重迭代,依次求出(1+2+ … +i)(1≤ i≤ n)后累加。

解法2:采用一重迭代,利用i(i+1)/2(1≤ i≤ n)求和后再累加。

解法3:直接利用n(n+1)(n+2)/6公式求和。

编写一个Python程序,利用上述3种解法求n = 50000时的结果,并且给出各种解法的执行时间。

2.实验步骤

(1)分析实验内容,写出程序大致框架或完整的程序代码。

(2)进入Python集成环境。

(3)编辑程序并进行保存。

(4)运行程序,若有错误,修改错误后再次运行,如此反复进行到不显示出错为止。

(5)检查程序输出结果。

五、实验代码与结果(程序运行代码及其结果)

1.

import math

a=int(input(('请输入a的值:')))

b=int(input(('请输入b的值:')))

c=int(input(('请输入c的值:')))

derta=(b**2-4*a*c)

if a == 0:

    print('输入错误,当a=0时,该方程不符合一元二次方程格式')

elif derta < 0:

    print('该方程无实数解')

elif derta == 0:

    print('该方程有一个实数解:')

    print(b*(-1)/(a*2))

else:

    print('方程有两个实数解:')

    print((-1*b+math.sqrt(derta))/2*a)

    print((-1*b-math.sqrt(derta))/2*a)

 
2.方法一:二重迭代

import datetime

start = datetime.datetime.now()

n = int(input('请输入n的值:'))

sum = 0

for i in range(1,n+1):

    for x in range(1,i+1):

        sum+=x

    print("求1+(1+2)+(1+2+3)+ … +(1+2+3++ … +n)之和的值:"+str(sum))

end = datetime.datetime.now()

print('程序运行时间为: %s Seconds'%(end-start)

import datetime

start = datetime.datetime.now()

n = int(input('请输入n的值:'))

sum = 0

for i in range(1,n+1):

    sum+=i*(i+1)/2

    print("求1+(1+2)+(1+2+3)+ … +(1+2+3++ … +n)之和的值:"+str(sum))

end = datetime.datetime.now()

print('程序运行时间为: %s Seconds'%(end-start))

方法三:数学公式求和

import datetime

start = datetime.datetime.now()

n = int(input('请输入n的值:'))

sum = n*(n+1)*(n+2)/6

print("求1+(1+2)+(1+2+3)+ … +(1+2+3++ … +n)之和的值:"+str(sum))

end = datetime.datetime.now()

print('程序运行时间为: %s Seconds'%(end-start))

  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值