实验任务1
task1
程序源代码
1 #task1 2 3 print('task1') 4 5 #task1-1.py 6 7 #print输出的几种用法 8 9 #用法1:用于输出单个字符串或单个变量 10 print('hey, u') 11 #用法2:用于输出多个数据项,用逗号分离 12 print('hey',' u') 13 x,y,z = 1,2,3 14 print(x, y, z) 15 16 #用法3:用户混合字符串和变量值 17 print('x=%d, y = %d, z= %d'%(x,y,z))#方式1:传统c风格 18 print('x={}. y={}, z= {}'.format(x,y,z))#方式2:s.format方法 19 print(f'x={x},y= {y},z= {z}')#方式3:f-string方式 20 21 #其他:输出后是否换行 22 print(x) #默认输出后换一行 23 print(y) 24 print(z) 25 26 print(x, end='') #输出结束后,不换行:通过end指定数据项之间的分隔符 27 print(y, end='') 28 print(z) 29 30 #task1-2.py 31 32 #使用字符串的format()方法,对输出数据项进行格式化 33 34 x1, y1 =1.2 , 3.57 35 x2, y2 =2.26, 8.7 36 37 #输出1 38 print('{:-^40}'.format('输出1')) #{:-^40}控制输出数据格式:宽度占40列,居中对齐,空白处用-补齐 39 print('x1={}, y1={}'.format(x1,y1)) 40 print('x2={}, y2={}'.format(x2,y2)) 41 42 #输出2 43 print('{:-^40}'.format('输出2')) #{:-^40}控制输出数据格式:宽度占40列,居中对齐,空白处用-补齐 44 print('x1={:.1f}, y1= {:.1f}'.format(x1,y1)) #{:.1f}控制输出小数精度,保留一位小数 45 print('x2={:.1f}, y2= {:.1f}'.format(x2,y2)) 46 47 #输出3 48 print('{:-^40}'.format('输出3')) #{:-^40}控制输出数据格式:宽度占40列,居中对齐,空白处用-补齐 49 print('x1={:<15.1f}, y1={:<15.1f}'.format(x1, y1))#{:<15.1f}控制输出数据宽度占15列,小数部分占1列,左对齐,空白处默认补空格 50 print('x2={:<15.1f}, y2={:<15.1f}'.format(x2, y2)) 51 52 #输出4 53 print('{:-^40}'.format ('输出4'))#{:-^40}控制输出数据格式:宽度占40列,居中对齐,空白处用-补齐 54 print('x1 = {:>15.1f},y1 = {:>15.1f}'.format(x1, y1))#{:>15.1f}控制数据输出宽度占15列,小数部分占1列,右对齐,空白处默认补空格 55 print('x2 = {:>15.1f},y2 = {:>15.1f}'.format(x2, y2)) 56 57 #task1-3.py 58 59 #使用f-string方式输出数据并控制格式 60 61 name1, age1 ='Bill', 19 62 name2, age2 ='Hellen', 18 63 title = 'Personnel Information' 64 65 print(f'{title:=^40}')#输出title的值,=^40指定输出宽度占40列,局中对齐,用=填充空白 66 print(f'name: {name1:10} age: {age1:3}')#10和3分别指定数据项输出宽度 67 print(f'name: {name2:10} age: {age2:3}') 68 print(40*'=')
运行结果截图
实验结论:
1.直接打印字符串;直接打印变量、元组或者列表
2.字符串与变量拼接打印
3.复制字符
4.进行运算
5.换行与不换行输出
6.格式化输出
7.输出join,format等函数
实验任务2
task2
程序源代码
1 #task2_1.py 2 3 print('task2_1.py') 4 5 # 内置函数eval() 6 # 功能:把字符串转换为python表达式 7 # 理解:相当于把圆括号中的内容,两侧引号去掉 8 r1 = eval('1 + 2') # 相当于r1 = 1 + 2 9 print(type(r1), r1) 10 r2 = eval('1+2j') #相当于r2 = 1+2j 11 print(type(r2), r2) 12 r3 = eval('"python"') # 相当于r3 = "python" 13 print(type(r3), r3) 14 r4 = eval('7, 42') # 相当于r4 = 7, 42 15 print(type(r4), r4) 16 17 #task2_2.py 18 19 print('task2_2.py') 20 21 # 组合使用内置函数eval()和input() 22 x, y = eval(input('Enter two oprands: ')) # 输入的两个操作数之间用逗号分隔(英文半角输入法下的逗号) 23 ans = x + y 24 print(f'{x} + {y} = {ans}') 25 print(f'{type(x)} + {type(y)} = {type(ans)}')
运行结果截图
实验结论:
eval函数就是实现list、dict、tuple与str之间的转化,同样str函数把list,dict,tuple转为为字符串
实验任务3
task3
程序源代码
1 #task3 2 3 print('task3') 4 5 # 浮点数简单运算 6 ans1 = 0.1 + 0.2 7 print(f'0.1 + 0.2 = {ans1}') 8 import decimal 9 ans2 = decimal.Decimal('0.1') + decimal.Decimal('0.2') 10 print(f'0.1 + 0.2 = {ans2}')
运行结果截图
实验结论:
1.为什么line4输出结果显示存在误差?
0.1 和 0.2 这样的数字在二进制浮点中没有精确的表示,对于二进制浮点数,虽然接近于零,但其中的误差将妨碍可靠的相等性检验,并且误差还会不断累积
2.查阅decimal模块资料,尝试分析和思考,decimal模块中的工具Decimal()是如何进行浮点运算的?
decimal 模块旨在支持“无偏差,精确无舍入的十进制算术(有时称为定点数算术)和有舍入的浮点数算术”。decimal 数值是不可变对象。 它由符号,系数和指数位组成。 为了保持有效位,系数位不会截去末尾零。
实验任务4
task4
程序源代码
1 #task4.py 2 3 print('task4.py') 4 5 #字符编码相关 6 #chr()返回unicode编码对应的字符 7 print(chr(0x1f600), end = " ") 8 print(chr(0x1f601), end = " ") 9 print(chr(0x1f602), end = " ") 10 print(chr(0x1f603), end = " ") 11 print(chr(0x1f604)) 12 print(chr(10000), end=" ") 13 print(chr(0x025b), end=" ") 14 print(chr(0x2708), end=" ") 15 print(chr(0x00A5), end=" ") 16 print(chr(0x266b)) 17 # ord()返回字符的unicode编码 18 print(ord('a'), end = " ") 19 print(ord('b'), end = " ") 20 print(ord('c')) 21 print(ord('A'), end = " ") 22 print(ord('B'), end = " ") 23 print(ord('C')) 24 print(ord('0'), end = " ") 25 print(ord('1'), end = " ") 26 print(ord('2'))
运行结果截图
实验结论:
ord()函数就是用来返回单个字符的ascii值(0-255)或者unicode数值
chr()函数是输入一个整数(0-255)返回其对应的ascii符号
实验任务5
task5
程序源代码
1 #task5.py 2 3 print('task5.py') 4 5 #task5_1.py 6 print('task5_1.py') 7 # 简单的数学计算 8 import math 9 n = float(input('输入一个数:')) 10 # python中计算开平方的三种方式 11 ans1 = n**0.5 12 ans2 = pow(n, 0.5) 13 ans3 = math.sqrt(n) 14 print('%.2f的平方根是: %.2f' %(n, ans1)) # 以传统风方式(%)输出 15 print('{:.2f}的平方根是: {:.2f}'.format(n, ans2)) # 使用str.format()方式输出 16 print(f'{n:.2f}的平方根是: {ans3:.2f}') # 使用f-string方式输出 17 18 #task_2.py 19 print('task5_2.py') 20 # 神奇的pi, 与大饼 21 import math 22 text = ''' 23 好奇心是人的天性。 24 理想情况下,学习新东西是让人愉快的事。 25 但学校里的学习似乎有点像苦役。 26 有时候,需要画一个大饼,每次尝试学一些新鲜的,才会每天变得更好一点点。 27 ''' 28 print(text) 29 r = float(input('给学习画一个大饼,大饼要做的很大,半径要这么大: ')) 30 circle = 2*math.pi*r 31 print(f'绕起来,大饼的圆周有这么长, {circle}, 够不够激发你探索未知的动力...')
运行结果截图
实验任务6
task6
程序源代码
1 #task6.py 2 3 x = eval(input('Enter a number:')) 4 5 y = pow(x,365) 6 7 print(f'{x}的365次方:{y}')
运行结果截图
实验任务7
task7
程序源代码
1 #task7.py 2 3 print('task7.py') 4 5 import math 6 7 T0 = int(input('T0=')) 8 P = 1.038 9 c = 3.7 10 k = 5.4E-3 11 m = 67 12 Tw = 100 13 Ty = 70 14 t = (m**(2/3)*c*P**(1/3))/(k*math.pi**2*(4*math.pi/3)**(2/3))*math.log(0.76*(T0-Tw)/(Ty-Tw)) 15 x=int(int(t)/60) 16 y=int((t%60)+0.5) 17 print(f'T0={T0}°c') 18 print(f't = {x}分{y}秒')
运行结果截图
实验任务8
task8
程序源代码
1 #task8_1.py 2 3 print('task8_1.py') 4 ''' 5 家用电器销售系统 6 v1.0 7 ''' 8 9 #欢迎信息 10 print('欢迎使用家用电器销售系统!') 11 12 #产品信息列表 13 print('产品和价格信息如下:') 14 print('*'*57) 15 print('%-10s'%'编号', '%-10s'%'名称', '%-10s'%'品牌', '%-10s'%'价格', '%-10s'%'库存数量') 16 print('-'*58) 17 print('%-10s'%'0001', '%-10s'%'电视机', '%-10s'%'海尔', '%10.2f'%5999.00, '%10d'%20) 18 print('%-10s'%'0002', '%-10s'%'冰箱', '%-10s'%'西门子', '%10.2f'%6998.00, '%10d'%15) 19 print('%-10s'%'0003', '%-10s'%'洗衣机', '%-10s'%'小天鹅', '%10.2f'%1999.00, '%10d'%10) 20 print('%-10s'%'0004', '%-10s'%'空调', '%-10s'%'格力', '%10.2f'%3900.00, '%10d'%0) 21 print('%-10s'%'0005', '%-10s'%'热水器', '%-10s'%'美的', '%10.2f'%688.00, '%10d'%30) 22 print('%-10s'%'0006', '%-10s'%'笔记本', '%-10s'%'联想', '%10.2f'%5699.00, '%10d'%10) 23 print('%-10s'%'0007', '%-10s'%'微波炉', '%-10s'%'苏泊尔', '%10.2f'%480.50, '%10d'%33) 24 print('%-10s'%'0008', '%-10s'%'投影仪', '%-10s'%'松下', '%10.2f'%1250.00, '%10d'%12) 25 print('%-10s'%'0009', '%-10s'%'吸尘器', '%-10s'%'飞利浦', '%10.2f'%999.00, '%10d'%9) 26 print('-'*58) 27 28 #用户输入信息 29 product_id = input('请输入您要购买的产品编号:') 30 price = float(input('请输入您要购买的产品价格:')) 31 count = int(input('请输入您要购买的产品数量:')) 32 33 #计算金额 34 print('购买成功,您需支付', price*count, '元') 35 36 #退出系统 37 print('谢谢您的光临,下次再见!') 38 39 #task8_2.py 40 41 print('task8_2.py') 42 ''' 43 家用电器销售系统 44 v1.0 45 ''' 46 47 #欢迎信息 48 print('欢迎使用家用电器销售系统!') 49 50 #产品信息列表 51 print('产品和价格信息如下:') 52 print('*'*57) 53 print('{:<10}'.format('编号'),'{:<10}'.format('名称'),'{:<10}'.format('品牌'),'{:<10}'.format('价格'),'{:<10}'.format('库存数量')) 54 print('-'*58) 55 print('{:<10}'.format('0001'),'{:<10}'.format('电视机'),'{:<10}'.format('海尔'),'{:<10.2f}'.format(5999.00),'{:>10}'.format(20)) 56 print('{:<10}'.format('0002'),'{:<10}'.format('冰箱'),'{:<10}'.format('西门子'),'{:<10.2f}'.format(6998.00),'{:>10}'.format(15)) 57 print('{:<10}'.format('0003'),'{:<10}'.format('洗衣机'),'{:<10}'.format('小天鹅'),'{:<10.2f}'.format(1999.00),'{:>10}'.format(10)) 58 print('{:<10}'.format('0004'),'{:<10}'.format('空调'),'{:<10}'.format('格力'),'{:<10.2f}'.format(3900.00),'{:>10}'.format(0)) 59 print('{:<10}'.format('0005'),'{:<10}'.format('热水器'),'{:<10}'.format('美的'),'{:<10.2f}'.format(688.00),'{:>10}'.format(30)) 60 print('{:<10}'.format('0006'),'{:<10}'.format('笔记本'),'{:<10}'.format('联想'),'{:<10.2f}'.format(5699.00),'{:>10}'.format(10)) 61 print('{:<10}'.format('0007'),'{:<10}'.format('微波炉'),'{:<10}'.format('苏泊尔'),'{:<10.2f}'.format(480.50),'{:>10}'.format(33)) 62 print('{:<10}'.format('0008'),'{:<10}'.format('投影仪'),'{:<10}'.format('松下'),'{:<10.2f}'.format(1250.00),'{:>10}'.format(12)) 63 print('{:<10}'.format('0009'),'{:<10}'.format('吸尘器'),'{:<10}'.format('飞利浦'),'{:<10.2f}'.format(999.00),'{:>10}'.format(9)) 64 print('-'*58) 65 66 #用户输入信息 67 product_id = input('请输入您要购买的产品编号:') 68 price = float(input('请输入您要购买的产品价格:')) 69 count = int(input('请输入您要购买的产品数量:')) 70 71 #计算金额 72 print('购买成功,您需支付', price*count, '元') 73 74 #退出系统 75 print('谢谢您的光临,下次再见!') 76 77 #task8_3.py 78 79 print('task8_3py') 80 ''' 81 家用电器销售系统 82 v1.0 83 ''' 84 85 #欢迎信息 86 print('欢迎使用家用电器销售系统!') 87 88 #产品信息列表 89 print('产品和价格信息如下:') 90 print('*'*57) 91 print(f'{"编号":<10} {"名称":<10} {"品牌":<10} {"价格":<10} {"库存数量":<10}') 92 print('-'*58) 93 print(f'{"0001":<10} {"电视机":<10} {"海尔":<10} {5999.00:.2f} {20:10}') 94 print(f'{"0002":<10} {"冰箱":<10} {"西门子":<10} {6998.00:.2f} {15:10}') 95 print(f'{"0003":<10} {"洗衣机":<10} {"小天鹅":<10} {1999.00:.2f} {10:10}') 96 print(f'{"0004":<10} {"空调":<10} {"格力":<10} {3900.00:.2f} {0:10}') 97 print(f'{"0005":<10} {"热水器":<10} {"美的":<10} {688.00:.2f} {30:10}') 98 print(f'{"0006":<10} {"笔记本":<10} {"联想":<10} {5699.00:.2f} {10:10}') 99 print(f'{"0007":<10} {"微波炉":<10} {"苏泊尔":<10} {480.50:.2f} {33:10}') 100 print(f'{"0008":<10} {"投影仪":<10} {"松下":<10} {1250.00:.2f} {12:10}') 101 print(f'{"0009":<10} {"吸尘器":<10} {"飞利浦":<10} {999.00:.2f} {9:10}') 102 print('-'*58) 103 104 #用户输入信息 105 product_id = input('请输入您要购买的产品编号:') 106 price = float(input('请输入您要购买的产品价格:')) 107 count = int(input('请输入您要购买的产品数量:')) 108 109 #计算金额 110 print('购买成功,您需支付', price*count, '元') 111 112 #退出系统 113 print('谢谢您的光临,下次再见!')
运行结果截图