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 15 | n = int ( input ( '请输入整数n:' )) s = 1 if n< 0 : n = int ( input ( '请输入非负整数:' )) elif n = = 0 : print ( '0!=1' ) else : for i in range ( 1 , n + 1 ): s * = i print ( str . format ( ' for循环:{}!={}' , n, s)) s = i = 1 while i < = n: s * = i i + = 1 print ( str . format ( 'while循环:{}!={}' , n, s)) |
11.编写程序,产生两个 0~100(包含 0 和 100)的随机整数 a 和 b,求这两个整数的最大公约数和最小公倍数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import random a = random.randint( 0 , 100 ) b = random.randint( 0 , 100 ) print ( str . format ( '整数a={},整数b={}' ,a,b)) if a<b: a,b = b,a n1 = a n2 = b while (n2! = 0 ): #辗转相除法 t = n1 % n2 n1 = n2 n2 = t print ( "最大公约数:" ,n1) print ( "最小公倍数:" , int (a * b / n1)) |
1 2 3 4 5 6 7 8 | import random a = random.randint( 0 , 100 ) b = random.randint( 0 , 100 ) def gcd(x, y): return x if y = = 0 else gcd(y,x % y) print ( str . format ( '整数a={},整数b={}' ,a,b)) print ( str . format ( '最大公约数={},最小公倍数={}' ,gcd(a,b), int (a * b / gcd(a,b)))) |
到此这篇关于Python程序流程控制实验的文章就介绍到这了
原文链接:https://blog.csdn.net/weixin_53173524/article/details/122585417