实验五:循环结构程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、熟悉循环结构特点和一般形式。
2、掌握for结构的使用方法。
3、掌握while结构的使用方法。
三、实验内容:
1、输入一个整数,用while循环结构求该数的阶乘。
2、输入10个数,统计输入正数的个数,并输出。(要求:保证只有输入的是10个数值,才输出结果)
3、数字组合, 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
4、斐波那契数列II,有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
5、登录验证信息:用户名是admin,密码是123456。如果该用户输入正确,则输出"身份验证成功";三次验证不正确,则输出"身份验证失败"
6、已知三角形的三边长a,b,c,利用海伦公式求该三角形的面积。(要求:保证只有输入的三个值构成三角形,才输出结果)
7、输入学生成绩,判定其成绩等级。(要求:保证输入正确成绩0-100分后判定并输出结果)
8、输入一个大于1的正整数,输出该数的质因子列表。
9、蒙特·卡罗法计算圆周率
蒙特·卡罗方法是一种通过概率得到近似解的方法。假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x,y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以4,这个数字会无限逼近圆周率的值。编写程序,模拟蒙特·卡罗计算圆周率近似值的方法,输入掷飞镖次数,然后输出圆周率近似值。
10、(选做)思考增项题:
实验1:输入一组整数求其阶乘值。
实验7:输入多个学生成绩判断成绩等级。
四、实验结果与分析:
1、输入一个整数,用while循环结构求该数的阶乘。
编辑器方式
(1)程序代码(程序运行最终正确代码):
s=1
n=int(input("输入一个整数:"))
n=abs(n)
i=1
while n>=1:
      s=s*i
      i=i+1
      n=n-1
else:
    print("数"+str(i-1)+"的阶乘=",s)
(2)程序结果(截图Alt+PrtSc):
(3)程序分析(程序运行错误修改或运行结果分析):
2、输入10个数,统计输入正数的个数,并输出。(要求:保证只有输入的是10个数值,才输出结果)
编辑器方式
(1)程序代码(程序运行最终正确代码):
i=k=0
while i<10:
    n=input("输入第"+str(i+1)+"数=")
    if place("-","").isdigit():
        print("输入的不是数值!请重新输入!")
        continue
    else:
        i=i+1
        if int(n)<=0:
            continue
        k=k+1
print("10个数中正数的个数=",k)
(2)程序结果(截图Alt+PrtSc):
(3)程序分析(程序运行错误修改或运行结果分析):
3、数字组合, 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
编辑器方式
(1)程序代码(程序运行最终正确代码):
total=0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if ((i!=j)and(j!=k)and(k!=i)):
                print(i,j,k,)
                total+=1
print("一共有:",total,"个组合。")
(2)程序结果(截图Alt+PrtSc):
(3)程序分析(程序运行错误修改或运行结果分析):
4、斐波那契数列II,有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
编辑器方式
(1)程序代码(程序运行最终正确代码):
a=2.0
b=1.0
s=0
for n in range(1,21):
    s+=a/b
    a,b=a+b,a
print (s)   
(2)程序结果(截图Alt+PrtSc):
(3)程序分析(程序运行错误修改或运行结果分析):
5、登录验证信息:用户名是admin,密码是123456。如果该用户输入正确,则输出"身份验证成功";三次验证不正确,则输出"身份验证失败"
编辑器方式
(1)程序代码(程序运行最终正确代码):
for i in range(1,4):
    username=input("请输入用户名:")
    password=input("请输入密码:")
    flag=0
    if username=='admin'and password=='123456':
        flag=1
        break
    elif i!=3:
        print("\n用户名和密码输入错误,请重新输入!")
if flag==1:
    print("\n身份验证成功!")
else:
    print("\n身份验证失败!")
python新手代码错了应该怎么改       
(2)程序结果(截图Alt+PrtSc):
(3)程序分析(程序运行错误修改或运行结果分析):
6、已知三角形的三边长a,b,c,利用海伦公式求该三角形的面积。(要求:保证只有输入的三个值构成三角形,才输出结果)
编辑器方式
(1)程序代码(程序运行最终正确代码):
a=float(input("输入边长1:"))
b=float(input("输入边长2:"))
c=float(input("输入边长3:"))
while not(a+b>c and b+c>a and c+a>b):
    print("输入的三个值不能构成三角形,请重新输入!")
    a=float(input("输入边长1:"))