Python程序流程控制实验
这篇文章主要介绍了Python程序流程控制实验,程序流程控制的使用在Python中具有非常重要的地位。在本文中我将布置Python程序流程控制的实验习题,希望您阅读完本文后能够有所收获
1. 编写程序计算 1+3+5+7…+99 之和。
1 2 3 4 | sum = 0 for i in range ( 1 , 100 , 2 ): sum + = i print ( sum ) |
2. 编写程序,计算 2+4+6+8…+100 之和。
1 2 3 4 | sum = 0 for i in range ( 2 , 101 , 2 ): sum + = i print ( sum ) |
3. 编写程序,使用不同的实现方法输出 2000~3000 的所有闰年,运行效果如下图所示。
1 2 3 4 5 6 7 8 9 10 | num = 0 for i in range ( 2000 , 3001 ): if (i % 4 = = 0 and i % 100 ! = 0 ) or i % 400 = = 0 : num + = 1 if num % 8 = = 0 : print (i,end = '\n' ) else : print (i,end = '\t' ) else : i = i + 1 |
4. 编写程序,计算 Sn=1-3+5-7+9-11+……n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | n = int ( input ( '请输入n的值:' )) ##方法一: Sn = 0 x = - 1 for i in range ( 0 ,n + 1 ): if i % 2 = = 0 : #是偶数 x = - x else : Sn + = i * x print ( 'Sn=' ,Sn) ###方法二: sum1 = 0 sum2 = 0 for j in range ( 1 ,n + 1 , 4 ): sum1 + = j for k in range ( 3 ,n + 1 , 4 ): sum2 + = k Sn = sum1 - sum2 print ( 'Sn=' ,Sn) |
5. 编写程序,计算 Sn=1+1/2+1/3+…1/n
1 2 3 4 5 6 7 | n = int ( input ( '请输入n的值:' )) x = 1 sum = 0 for i in range ( 1 ,n + 1 , 1 ): x = 1 / i sum + = x print ( 'Sn={:2.2f}' . format ( sum )) |
6.编写程序,打印九九乘法表。(只要实现四种方式中的一种即可)
要求输出九九乘法表的各种显示效果(上三角、下三角、矩形块等方式)
1 2 3 4 5 6 7 8 9 | for i in range ( 1 , 10 ): for j in range ( 1 , 11 - i): print ( "{0}*{1}={2}" . format (( 10 - i),j,( 10 - i) * j),end = '\t' ) print (end = '\n' ) for i in range ( 1 , 10 ): for j in range ( 1 ,i + 1 ): print ( "{0}*{1}={2}" . format (i,j,i * j),end = '\t' ) print (end = '\n' ) |
7. 编写程序输入三角形的3条边,先判断是否可以构成三角形,如果可以,则进一步求三角形的周长和面积,否则报错“无法构成三角形!”。
其运行效果如图下图所示(结果均保留位小数):
1 2 3 4 5 6 7 8 9 10 11 12 13 | import math a = float ( input ( '请输入三角形的边长a:' )) b = float ( input ( '请输入三角形的边长b:' )) c = float ( input ( '请输入三角形的边长c:' )) print ( '三角形三边分别为:a={0},b={1},c={2}' . format (a,b,c)) l = a + b + c h = l / 2 area = math.sqrt(h * (h - a) * (h - b) * (h - c)) if a> 0 and b> 0 and c> 0 and a + b>c and a + c>b and b + c>a: print ( '三角形的周长={0}' . format (l)) print ( '三角形的面积={0}' . format (area)) else : print ( '无法构成三角形!' ) |
8. 编写程序,输入 x,根据如下公式计算分段函数 y 的值。请分别利用单分支语句双分支结构以及条件运算语句等方法实现。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import math x = float ( input ( '请输入X:' )) if x > = 0 : y = (x * x - 3 * x) / (x + 1 ) + 2 * math.pi + math.sin(x) if x < 0 : y = math.log( - 5 * x) + 6 * math.sqrt(( - x + math.e * * 4 )) - (x + 1 ) * * 3 print ( '方法一:x={0}, y={1}' . format (x, y)) # 一句单分支会导致错误 print ( '方法二:x={0}, y={1}' . format (x, y)) if x > = 0 : y = (x * x - 3 * x) / (x + 1 ) + 2 * math.pi + math.sin(x) else : y = math.log( - 5 * x) + 6 * math.sqrt(( - x + math.e * * 4 )) - (x + 1 ) * * 3 print ( '方法三:x={0}, y={1}' . format (x, y)) y = (x * x - 3 * x) / (x + 1 ) + 2 * math.pi + math.sin(x) if (x > = 0 ) else \ math.log( - 5 * x) + 6 * math.sqrt(( - x + math.e * * 4 )) - (x + 1 ) * * 3 print ( '方法四:x={0}, y={1}' . format (x, y)) |
9. 编写程序,输入一元二次方程的 3 个系数 a、b 和 c,求 ax²+bx+c=0 方程的解。结果如下图所示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import math a = float ( input ( '请输入系数a:' )) b = float ( input ( '请输入系数b:' )) c = float ( input ( '请输入系数c:' )) d = b * b - 4 * a * c #判别式 if a = = 0 and b = = 0 : print ( '此方程无解!' ) elif a = = 0 and b! = 0 : print ( '此方程的解为:' ,end = '') x = - c / b print (x) elif d = = 0 : #判别式等于0 print ( '此方程有两个相等实根:' ,end = '') x = ( - b) / 2 * a print (x) elif d> 0 : #判别式大于0 print ( '此方程有两个不等实根:' ,end = '') x1 = (( - b) + math.sqrt(d)) / 2 * a x2 = (( - b) - math.sqrt(d)) / 2 * a print (x1, ' 和 ' ,x2) elif d< 0 : #判别式小于0 print ( '此方程有两个共轭复根:' ,end = '') real = ( - b) / 2 * a #实部 imag = (math.sqrt( - d)) / 2 * a #虚部 x1 = complex (real,imag) x2 = complex (real, - imag) print (x1, ' 和 ' ,x2) |
10. 编写程序,输入整数 n(n≥0),分别利用 for 循环和 while循环求 n!。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |