查看“云计算工坊:python运维专练2 答案”的源代码
←
云计算工坊:python运维专练2 答案
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==人机交互== ===print函数=== ====描述==== 输入一个正整数 n,在一行中输出从 1 到 n,中间无空格。 ====输入格式==== 输入一个正整数 n ====输出格式==== 在一行中输出从 1 到 n,中间无空格 ====代码==== <nowiki> n = int(input()) for i in range(1, n + 1): print(i, end='') # 用函数实现 def s_num(n): for i in range(1, n + 1): print(i, end='') if __name__ == '__main__': n = int(input()) s_num(n) </nowiki> ===输出数字序列练习=== ====描述==== range(n) (n > 0)可产生一个包含0-(n-1)的整数序列,程序语句for var in range(n): 可将range(n) 产生的整数序列中的每一个值依次赋给变量var,补充完整下面的程序,使之输出要求的格式。 <nowiki>n = int(input()) # 输入一个正整数 n for i in range(n): print(补充代码) # 每行一个数字输出 0 -(n-1) for i in range(n): print(补充代码) # 在一行内输出 0 -(n-1),每个数字后输出一个空格 print() # 此行保留,不要修改 for i in range(n): print(补充代码) # 在一行内输出 0 -(n-1),每个数字间没有分格 print() # 此行保留,不要修改 for i in range(n): print(补充代码) # 在一行内输出 0 -(n-1),每个数字后输出一个逗号 print() # 此行保留,不要修改 for i in range(n): if i != n - 1: # 当i不是最后一个数时,每个数字后输出一个逗号 print(补充代码) else: print(补充代码) # 当i是最后一个数时,数字后不能有逗号</nowiki> ====输入==== 输入一个正整数 n ====输出==== 0 1 2 3...n-1 0123...n-1 0,1,2,3,...,n-1, 0,1,2,3,...,n-1, ====代码==== <nowiki> n = int(input()) # 输入一个正整数 n for i in range(n): print(i) # 每行一个数字输出 0 -(n-1) for i in range(n): print(i, end=' ') # 在一行内输出 0 -(n-1),每个数字后输出一个空格 print() # 此行保留,不要修改 for i in range(n): print(i, end='') # 在一行内输出 0 -(n-1),每个数字间没有分格 print() # 此行保留,不要修改 for i in range(n): print(i, end=',') # 在一行内输出 0 -(n-1),每个数字后输出一个逗号 print() # 此行保留,不要修改 for i in range(n): if i != n - 1: print(i, end=',') # 在一行内输出 0 -(n-1),每个数字后输出一个逗号,最后一个数字后不能有逗号 else: print(i)</nowiki> ===自我介绍=== ====描述==== 输入自己的姓名、来自哪里和爱好,按指定的格式输出到屏幕上。 ====输入==== 第一行输入姓名 第二行输入籍贯 第三行输入爱好 ====输出==== 我的名字是***,来自**,我的爱好是***! (**由用户输入的字符串替代) ====代码==== <nowiki> name = input() city = input() hobby = input() print('我的名字是{},来自{},我的爱好是{}!'.format(name, city, hobby)) # 或 name = input() city = input() hobby = input() print(f'我的名字是{name},来自{city},我的爱好是{hobby}!')</nowiki> ==数值运算== ===三角函数计算=== ====描述==== 根据下面公式计算并输出x的值,a和b的值由用户输入,括号里的数字是角度值, 要求圆周率的值使用数学常数math.pi,三角函数的值用math库中对应的函数进行计算 。 [[文件:python21030901.png|600px]] ====输入格式==== 输入包括两行, 每行一个数字。 ====输出格式==== 表达式的值。 ====代码==== <nowiki> import math a = eval(input()) b = eval(input()) x = (-b+math.sqrt(2 * a * math.sin(math.pi / 3)*math.cos(math.pi / 3)))/(2 * a) print(x) </nowiki> ===表达式求值=== ====描述==== 利用下面公式计算并输出 x 的值。 [[文件:python21030902.png|600px]] (提示:开平方可以用指数运算 a ** (1 / 2) 或 a ** 0.5来实现,也引入数学库math,再用数学库中的math.sqrt()函数实现) ====输入格式==== 在 3 行中分别输入一个浮点数(测试数据保证根号下的值大于或等于 0,且a不为零 ) ====输出格式==== 一个实数,严格保留小数点后2位数字。 ====代码==== <nowiki> a = float(input()) b = float(input()) c = float(input()) x = (-b + (b * b - 4 * a * c) ** (1 / 2)) / (2 * a) # (1/2)要加括号,否则幂运算优先级高,(2*a)要加括号 print('{:.2f}'.format(x))</nowiki> ===除法运算=== ====描述==== 输入两个整数 a 和 b,计算并输出他们 a 对 b 做整除和 a 除以 b 的结果。 ====输入格式==== 第一行输入一个整数 a 第二行输入一个整数 b ====输出格式==== 第一行输出 a 对 b 做整除的结果 第二行输出 a 除以 b 的结果 ====代码==== <nowiki> def division(a, b): print(a // b) # a 对b 整除 print(a / b) # a 除以b if __name__ == '__main__': a = int(input()) # 输入转整数 b = int(input()) division(a, b) </nowiki> ===存款利息=== ====描述==== 在三行中依次输入初始金额,年限,利率,计算并输出存款到期时的利息(不含本金,税前),结果保留2位小数。 ====输入输出格式==== 第一行输入一个正整数(金额) 第二行输入一个正整数(年限) 第三行输入一个浮点数(利率) ====输出格式==== 利息=计算结果 ====代码==== <nowiki> a = eval(input()) b = eval(input()) c = eval(input()) i = a * pow((1 + c), b) - a # 计算b年后利息 print("利息={:.2f}".format(i))</nowiki> ===三角形周长及面积=== ====描述==== 输入的三角形的三条边a、b、c 的长度,计算并依次输出三角形的周长和面积。测试用例的数据保证三角形三边数据可以构成三角形。 三角形面积计算公式: [[文件:python21030903.png]] ,其中s=(a+b+c)/2。 <nowiki>import math #导入math库 math.sqrt(x) #调用sqrt函数实现开平方运算,x表示要求值的数据 # 或用幂运算 x ** 0.5 表示开平方</nowiki> ====输入输出格式==== 分三行输入 3 个浮点数,表示三角形的三个边长 ====输出格式==== 三角形的周长和面积,格式参考示例 ====代码==== <nowiki> import math # 导入math库 a = eval(input()) b = eval(input()) c = eval(input()) s = (a + b + c) / 2.0 m = (s * (s - a) * (s - b) * (s - c)) ** 0.5 # m=math.sqrt(s * (s - a) * (s - b) * (s - c)) # 第二种开根号方法 print("周长={:.2f}".format(a + b + c)) print("面积={:.2f}".format(m))</nowiki> ==简单循环== ===求数列前n项的平方和=== ====描述==== 现有数列:1,2,3,4,……,n,计算并输出其前n项的平方和,即求: 1×1+2×2+3×3+……+n×n的和。 ====输入==== 输入一个正整数 n ====输出==== 数列前n项的平方和 ====代码==== <nowiki> #1×1+2×2+3×3……的前n项和 n = int(input()) sum = 0 for i in range(1,n+1): sum = sum + i * i print(sum) </nowiki> ===输出0-9的数字=== ====描述==== 在同一行内输出 0-9 中的前 n 个数字,输出的每个数字后跟一个空格。 ====输入==== 输入一个不大于10的正整数 n ====输出==== 在同一行中输出 0~(n-1) 的数字 ====代码==== <nowiki> n=int(input()) for i in range(n): print(i,end=' ') </nowiki> ===2的n次方=== ====描述==== 计算并输出 2 的 n 次方,n 由用户输入 。 ====输入格式==== 输入一个非负整数 n ====输出格式==== 输出这个数的 n 次方 ====代码==== <nowiki> n = eval(input()) print(pow(2,n)) #pow(x,y[,z])同x**y%z,常省略z,用于计算x的y次方</nowiki> ===十进制整数转二进制=== ====描述==== 十进制整数转二进制的方法是:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序即可得到对应的二进制数的各位。 例如:22转二进制的计算过程: <nowiki>22 / 2 11 余0 11/2 5 余 1 5 /2 2 余 1 2 /2 1 余 0 1 /2 0 余 1</nowiki> 得到22的二进制是10110 ====输入格式==== 输入一个正整数 ====输出格式==== 输出对应的二进制数 ====代码==== <nowiki> num = int(input()) s='' if num==0: s='0' while num!=0: s=s+str(num%2) # 将num对2取余的结果转字符串拼接到s num = num//2 print(s[::-1]) # 逆序输出字符串</nowiki> ==简单分支== ===a除以b=== ====描述==== 输出实数a除以b的结果,计算结果四舍五入,保留2位小数。 ====输入格式==== 输入包括两行, 每行一个实数, b不能等于0 ====输出格式==== 当用户输入b为0时输出"除零错误" 其他情况下输出一个保留2位小数的实数 ====代码==== <nowiki> a = eval(input()) b = eval(input()) if b != 0: print(round(a / b, 2)) else: print('除零错误')</nowiki> ===一元二次方程求根=== ====描述==== 一元二次方程ax2+bx+c=0,a、b、c的值由用户在三行中输入,根据用户输入的数值求解方程的实数解: 如果a值 为0,根据b值判断方程是否有解并输出,如果a与b同时为0,则输出Data error! 如果方程无实数解,输出“该方程无实数解”; 如果方程有两个相同的实数解,输出一个解,结果保留2位小数; 如果方程有两个不同的实数解,在一行内按从大到小顺序输出方程的两个解,用空格分隔,结果保留2位小数。 ====输入格式 ==== 输入三行数据, 每行输入一个实数 ====输出格式==== 方程的解 ====代码==== <nowiki> a = float(input()) b = float(input()) c = float(input()) delta = b * b - 4 * a * c if a == 0 and b != 0: #print( round(- c / b,2)) print('{:.2f}'.format(- c / b)) elif a == 0 and b == 0: print('Data error!') elif delta < 0: print("该方程无实数解") elif delta == 0: #print(round(-b / (2 * a),2)) print('{:.2f}'.format(-b / (2 * a))) else: x1 = (-b + delta ** 0.5) /( a * 2) x2 = (-b - delta ** 0.5) /(a * 2) if x1 < x2: x1,x2=x2,x1 #print(round(x1,2),round(x2,2)) # round()函数获得的浮点数会自动转为最短表示,例如rount(3.10000, 2) 的结果是3.1,而不是3.10 print('{:.2f} {:.2f}'.format(x1,x2)) # str.format()的方法可以严格按约定保留小数位数,例如'{:.2f}'.format(3.100000) 的结果是3.10</nowiki> ==流程控制== ===老鼠打洞=== ====描述==== 《九章算术》的“盈不足篇”里有一个很有意思的老鼠打洞问题。原文这么说的:今有垣厚十尺,两鼠对穿。大鼠日一尺,小鼠亦一尺。大鼠日自倍,小鼠日自半。问:何日相逢?各穿几何? 这道题的意思就是说,有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打一尺,小老鼠也是一尺。大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。问它们几天可以相逢,相逢时各打了多少。 (注:本题禁止使用幂运算) ====输入格式==== 输入1个整数,代表墙的厚度,单位为尺 ====输出格式==== 第一行输出1个整数,表示相遇时所需的天数 第二行输出2个浮点数,分别为小鼠和大鼠打洞的距离,单位为尺,保留小数点后1位数字。 ====代码==== <nowiki> n = int(input()) rat, mouse, day, time = 1, 1, 0, 1 distance_of_rat, distance_of_mouse = 0, 0 # 大老鼠和小老鼠的打洞距离 while n > 0: if n - mouse - rat < 0: time = n / (mouse + rat) n = n - mouse - rat distance_of_mouse = distance_of_mouse + time * mouse distance_of_rat = distance_of_rat + time * rat rat = rat * 2 mouse = mouse / 2 day = day + 1 print(day) print(round(distance_of_mouse, 1), round(distance_of_rat, 1))</nowiki>
返回至
云计算工坊:python运维专练2 答案
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息