实验1 Python开发环境使用和编程初体验
实验任务1
task1_1
程序源码
#task1_1 print输出的几种用法 #用法1:用于输出单个字符串或单个变量 print('hey, u') #用法2:用于输出多个数据项,用逗号分隔 print('hey','u') x,y,z = 1,2,3 print(x,y,z) #用法3:用于混合字符串和变量值 print('x = %d, y = %d, z = %d' %(x,y,z)) print('x = {}, y = {}, z = {}'.format(x,y,z)) print(f'x = {x}, y = {y}, z = {z}') #其他:输出后是否换行 print(x) print(y) print(z) print(x, end=' ') print(y, end=' ') print(z)
运行结果截图
task1_2
程序源码
1 #task1_2 使用字符串的format()方法,对输出数据项进行格式化 2 3 x1, y1 = 1.2, 3.57 4 x2, y2 = 2.26, 8.7 5 6 #输出1 7 print('{:-^40}'.format('输出1')) 8 print('x1 = {}, y1 = {}'.format(x1, y1)) 9 print('x2 = {}, y2 = {}'.format(x2, y2)) 10 11 #输出2 12 print('{:-^40}'.format('输出2')) 13 print('x1 = {:.1f}, y1 = {:.1f}'.format(x1, y1)) 14 print('x2 = {:.1f}, y2 = {:.1f}'.format(x2, y2)) 15 16 #输出3 17 print('x1 = {:<15.1f}, y1 = {:<15.1f}'.format(x1, y1)) 18 print('x2 = {:<15.1f}, y1 = {:<15.1f}'.format(x2, y2)) 19 20 #输出4 21 print('{:-^40}'.format('输出3')) 22 print('x1 = {:>15.1f}, y1 = {:>15.1f}'.format(x1, y1)) 23 print('x2 = {:>15.1f}, y2 = {:>15.1f}'.format(x2, y2))
运行结果截图
task1_3
程序源码
1 #task1_3 使用f-string方式输出数据并控制格式 2 3 name1, age1 = 'Bill', 19 4 name2, age2 = 'Hellen', 18 5 title = 'Personnel Information' 6 7 print(f'{title:=^40}') 8 print(f'name: {name1:10} age: {age1:3}') 9 print(f'name: {name2:10} age: {age2:3}') 10 print(40*'=')
运行结果截图
总结print()用于输出的几种常用用法:
1.输出单个字符串或变量
2.输出多个数据项,用逗号分隔
3.输出混合字符串和变量值
4.输出换行与否
5.使用str.format()或f-string方式,实现数据输出和格式控制
实验任务2
task2_1
程序源码
1 #task2_1 2 #内置函数eval() 3 #功能: 把字符串转换为python表达式 4 #理解: 相当于把圆括号中的内容,两侧引号去掉 5 6 r1 = eval('1 + 2') 7 print(type(r1), r1) 8 9 r2 = eval('1 + 2j') 10 print(type(r2), r2) 11 12 r3 = eval('"python"') 13 print(type(r3), r3) 14 15 r4 = eval('7, 42') 16 print(type(r4), r4)
运行结果截图
task2_2
程序源码
1 #task2_2 组合使用内置函数eval()和input() 2 3 x, y = eval(input('Enter two oprands: ')) 4 ans = x + y 5 6 print(f'{x} + {y} = {ans}') 7 print(f'{type(x)} + {type(y)} = {type(ans)}')
运行结果截图
简要总结函数eval()的用法:
1.把字符串转换为python表达式
2.可与input()组合使用
实验任务3
task3
程序源码
1 #task3 浮点数简单运算 2 3 ans1 = 0.1 + 0.2 4 print(f'0.1 + 0.2 = {ans1}') 5 6 import decimal 7 8 ans2 = decimal.Decimal('0.1') + decimal.Decimal('0.2') 9 print(f'0.1 + 0.2 = {ans2}')
运行结果截图
问题1的回答:line4中的0.1和0.2使用的是二进制浮点,所以没有精确的表示。
问题2的回答:decimal模块旨在支持“无偏差,精确无舍入的十进制算术和有舍入的浮点数算术”,该模块的设计以decimal数值,算术上下文和信号三个概念为中心。在需要时,程序员可以完全控制舍入和信号处理,这包括通过使用异常来阻止任何不精确的操作来强制执行精确算术的选项。
实验任务4
task4
程序源码
1 #task4 字符编码相关 2 # chr()返回unicode编码对应的字符 3 4 print(chr(0x1f600), end = " ") 5 print(chr(0x1f601), end = " ") 6 print(chr(0x1f602), end = " ") 7 print(chr(0x1f603), end = " ") 8 print(chr(0x1f604)) 9 10 print(chr(10000), end = " ") 11 print(chr(0x025b), end = " ") 12 print(chr(0x2708), end = " ") 13 print(chr(0x00A5), end = " ") 14 print(chr(0x266b)) 15 16 # ord()返回字符的unicode编码 17 print(ord('a'), end = " ") 18 print(ord('b'), end = " ") 19 print(ord('c')) 20 21 print(ord('A'), end = " ") 22 print(ord('B'), end = " ") 23 print(ord('C')) 24 25 print(ord('0'), end = " ") 26 print(ord('1'), end = " ") 27 print(ord('2'))
运行结果截图
简要总结:
1.函数chr()的用法:返回unicode编码对应的字符
2.函数ord()的用法:返回字符的unicode编码
实验任务5
task5_1
程序源码
1 #task5_1 简单的数学计算 2 import math 3 4 n = float(input('输入一个数:')) 5 6 #python中计算开平方的三种方式 7 ans1 = n**0.5 8 ans2 = pow(n, 0.5) 9 ans3 = math.sqrt(n) 10 11 print('%.2f的平方根是: %.2f' %(n, ans1)) 12 print('{:.2f}的平方根是: {:.2f}'.format(n, ans2)) 13 print(f'{n:.2f}的平方根是: {ans3:.2f}')
运行结果截图
task5_2
程序源码
1 #task5_2 神奇的pi, 与大饼 2 3 import math 4 5 text = ''' 6 好奇心是人的天性。 7 理想情况下,学习新东西是让人愉快的事。 8 但学校里的学习似乎有点像苦役。 9 有时候,需要画一个大饼,每次尝试学一些新鲜的,才会每天变得更好一点点。 10 ''' 11 print(text) 12 13 r = float(input('给学习画一个大饼,大饼要做的很大,半径要这么大: ')) 14 15 circle = 2*math.pi*r 16 17 print(f'绕起来,大饼的周长有这么长,{circle},够不够激发你探索未知的动力...')
运行结果截图
实验任务6
task6
程序源码
1 x=float(input('请输入一个数: ')) 2 y=x**365 3 print(f'{x:.2f}的365次方:{y:.2f}')
运行结果截图
实验任务7
task7
程序源码
1 # 煮出完美鸡蛋所需时间 2 import math 3 4 ρ=1.038 5 c=3.7 6 K=0.0054 7 M=67 8 Tw=100 9 Ty=70 10 11 T0=int(input('T0:')) 12 t=(M**(2/3)*c*ρ**(1/3)*math.log(0.76*(T0-Tw)/(Ty-Tw)))/(K*(math.pi)**2*(4*(math.pi)/3)**(2/3)) 13 14 minute=int(t/60) 15 second=t%60 16 17 print(f'T0={T0}℃,t={minute}分{second:.0f}秒')
运行结果截图
实验任务8
task8_1
程序源码
1 """ 2 家用电器销售系统 3 v1.0 4 """ 5 6 #欢迎信息 7 print('欢迎使用家用电器销售系统!') 8 9 #产品信息列表 10 print('产品和价格信息如下:') 11 print('**************************************************************') 12 print('%-10s'%'编号', '%-10s'%'名称', '%-10s' %'品牌', '%-10s'%' 价格','%-10s' %'库存数量') 13 print('--------------------------------------------------------------') 14 print('%-10s'%'0001','%-10s'%'电视机','%-10s' %'海尔', '%10.2f' %5999.00,'%10d'%20) 15 print('%-10s'%'0002','%-10s'%'冰箱', '%-10s' %'西门子','%10.2f' %6998.00,'%10d'%15) 16 print('%-10s'%'0003','%-10s'%'洗衣机','%-10s' %'小天鹅','%10.2f' %1999.00,'%10d'%10) 17 print('%-10s'%'0004','%-10s'%'空调', '%-10s' %'格力', '%10.2f' %3900.00,'%10d'%0) 18 print('%-10s'%'0005','%-10s'%'热水器','%-10s' %'美的', '%10.2f' %688.00,'%10d' %30) 19 print('%-10s'%'0006','%-10s'%'笔记本','%-10s' %'联想', '%10.2f' %5699.00,'%10d'%10) 20 print('%-10s'%'0007','%-10s'%'微波炉','%-10s' %'苏泊尔','%10.2f' %480.50,'%10d' %33) 21 print('%-10s'%'0008','%-10s'%'投影仪','%-10s' %'松下', '%10.2f' %1250.00,'%10d'%12) 22 print('%-10s'%'0009','%-10s'%'吸尘器','%-10s' %'飞利浦','%10.2f' %999.00,'%10d'%9) 23 24 print('--------------------------------------------------------------') 25 26 #用户输入信息 27 product_id=input('请输入您要购买的产品编号:') 28 price=float(input('请输入您要购买的产品价格:')) 29 count=int(input('请输入您要购买的产品数量:')) 30 31 #计算金额 32 print('购买成功,您需要支付',price*count,'元') 33 34 #退出系统 35 print('谢谢您的光临,下次再见!')
运行结果截图
task8_2
程序源码
1 """ 2 家用电器销售系统 3 v1.0 4 """ 5 6 #欢迎信息 7 print('欢迎使用家用电器销售系统!') 8 9 #产品信息列表 10 print('产品和价格信息如下:') 11 print('**************************************************************') 12 print('{:10s}{:10s}{:10s}{:10s}{:10s}'.format('编号','名称','品牌','价格','库存数量')) 13 print('--------------------------------------------------------------') 14 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0001','电视机','海尔',5999,'20')) 15 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0002','冰箱', '西门子',6998,'15')) 16 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0003','洗衣机','小天鹅',1999,'10')) 17 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0004','空调', '格力',3900,'0')) 18 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0005','热水器','美的',688,'30')) 19 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0006','笔记本','联想',5699,'10')) 20 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0007','微波炉','苏泊尔',480.5,'33')) 21 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0008','投影仪','松下',1250,'12')) 22 print('{:10s}{:10s}{:10s}{:<10.2f}{:^10s}'.format('0009','吸尘器','飞利浦',999,'9')) 23 print('--------------------------------------------------------------') 24 25 #用户输入信息 26 product_id=input('请输入您要购买的产品编号:') 27 price=float(input('请输入您要购买的产品价格:')) 28 count=int(input('请输入您要购买的产品数量:')) 29 30 #计算金额 31 print('购买成功,您需要支付',price*count,'元') 32 33 #退出系统 34 print('谢谢您的光临,下次再见!')
运行结果截图
task8_3
程序源码
1 """ 2 家用电器销售系统 3 v1.0 4 """ 5 6 #欢迎信息 7 print('欢迎使用家用电器销售系统!') 8 9 #产品信息列表 10 print('产品和价格信息如下:') 11 print('**************************************************************') 12 print(f"{'编号':<10s}{'名称':<10s}{'品牌':<10s}{'价格':<10s}{'库存数量':<10s}") 13 print('--------------------------------------------------------------') 14 print(f"000{'1':<7s}{'电视机':<10s}{'海尔':<10s}{5999:<15.2f}{'20':<10s}") 15 print(f"000{'2':<7s}{'冰箱':<10s}{'西门子':<10s}{6998:<15.2f}{'15':<10s}") 16 print(f"000{'3':<7s}{'洗衣机':<10s}{'小天鹅':<10s}{1999:<15.2f}{'10':<10s}") 17 print(f"000{'4':<7s}{'空调':<10s}{'格力':<10s}{3900:<15.2f}{'0':<10s}") 18 print(f"000{'5':<7s}{'热水器':<10s}{'美的':<10s}{688:<15.2f}{'30':<10s}") 19 print(f"000{'6':<7s}{'笔记本':<10s}{'联想':<10s}{5699:<15.2f}{'10':<10s}") 20 print(f"000{'7':<7s}{'微波炉':<10s}{'苏泊尔':<10s}{480.5:<15.2f}{'33':<10s}") 21 print(f"000{'8':<7s}{'投影仪':<10s}{'松下':<10s}{1250:<15.2f}{'12':<10s}") 22 print(f"000{'9':<7s}{'吸尘器':<10s}{'飞利浦':<10s}{999:<15.2f}{'9':<10s}") 23 24 print('--------------------------------------------------------------') 25 26 #用户输入信息 27 product_id=input('请输入您要购买的产品编号:') 28 price=float(input('请输入您要购买的产品价格:')) 29 count=int(input('请输入您要购买的产品数量:')) 30 31 #计算金额 32 print('购买成功,您需要支付',price*count,'元') 33 34 #退出系统 35 print('谢谢您的光临,下次再见!')
运行结果截图