实验一 #python的上手测试
实验任务1
task1_1
1 #print输出的几种用法 2 3 #用法1:用于输出单个字符串或单个变量 4 print('hey,u') 5 6 #用法2:用于输出多个数据项,用逗号隔开 7 print('hey','u') 8 x,y,z = 1,2,3 9 print(x,y,z) 10 11 #用法3:用户混合字符串和变量值 12 print('x = %d, y = %d, z = %d'%(x, y ,z)) #方式1:传统c风格 13 print('x = {}, y = {}, z = {}'.format(x,y,z)) #方式2:s.format房事 14 print(f'x = {x}, y = {y}, z = {z}') #方式3f-string方式 15 16 #输出后是否变行 17 print(x) #默认输出后换一行 18 print(y) 19 print(z) 20 21 print(x, end=' *') #输出结果后不变行:通过end指定数据项之间的间隔符 22 print(y, end=' *') 23 print(z)
运行结果

task1_2
#使用字符串的format()方法,对输出数据项进行格式化 x1,y1 = 1.2, 3.57 x2,y2 = 2.26, 8.7 #输出1 print('{:-^40}'.format('输出1')) #{:-^40}控制输出数据格式:宽度占40列,居中对齐空白处用-补齐 print('x1 = {}, y1 = {}'.format(x1, y1)) print('x2 = {}, y2 = {}'.format(x2, y2)) #输出2 print('{:-^40}'.format('输出2')) print('x1 = {:.1f}, y1 = {:.1f}'.format(x1, y1)) #{:.1f}控制小数输出精度,保留一位 print('x2 = {:.1f}, y2 = {:.1f}'.format(x2, y2)) #输出3 print('{:-^40}'.format('输出3')) print('x1 = {:<15.1f}, y1 = {:<15.1f}'.format(x1, y1)) #控制宽度占15列,小数部分占1列,左对齐,空白处默认补空格 print('x2 = {:<15.1f}, y2 = {:<15.1f}'.format(x2, y2)) #输出4 print('{:-^40}'.format('输出4')) print('x1 = {:<15.1f}, y1 = {:<15.1f}'.format(x1, y1)) #控制宽度占15列,小数部分占1列,右对齐,空白处默认补空格 print('x1 = {:>15.1f}, y1 = {:>15.1f}'.format(x1, y1)) print('x2 = {:>15.1f}, y2 = {:>15.1f}'.format(x1, y1))
运行结果

task1_3
#使用f-string方式输出数据并控制格式 name1, age1 = 'Bill', 19 name2, age2 = 'Hellen', 18 title = 'Personnel Information' print(f'{title:=^40}') #输出title的值,=^40:指定输出宽度为40列,居中对齐,用=填充空格 print(f'name:{name1:10} age:{age1:3}') print(f'name:{name2:10} age:{age2:3}') print(40*'=')
运行结果

总结:
输出的三种格式1.('x = %d' %x) 2.('{x}'.format(x)) 3.(f'x = {x}')
换行与不换行:换行:print(x) 不换行:print(x, end = '*')
print(y) print(y)
输出的要求:顺序:(空白用什么代替,向左/向右/居中对齐,输出的宽度,小数点后保留多少位)
实验任务2
task2_1
#内置函数eval #功能:把字符串转换为python的表达式 #理解:相当于吧圆括号中的内容两侧引号去掉(用于数字类型的分配) r1 = eval('1,2') #相当于r1 = 1+2 print(type(r1),r1) r2 = eval('1+2j') print(type(r2),r2) r3 = eval('"python"') print(type(r3),r3) r4 = eval('7,42') print(type(r4),r4)
运行结果

task2_2
1 #组合使用内置函数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的应用:用于删去圆括号中引号(用于数字类型的分配)
eg:x, y = eval(input())
x, y = eval('1, 2')
实验任务3
task3_1
# 浮点数简单运算 ans1 = 0.1 + 0.2 print(f'0.1 + 0.2 = {ans1}') import decimal ans2 = decimal.Decimal('0.1') + decimal.Decimal('0.2') print(f'0.1 + 0.2 = {ans2}')
运行结果

总结:
问题一:为啥第一种运算会存在误差:计算式是二进制存储和运算程序,它无法准确的表示一些数(如:0.1,0.2等),它只能尽力准确的表示,所以存在误差。
问题二:decimal模块中的Decimal()是如何进行浮点数运算的?:decimal表示十进制,它提供一种一种十进制浮点数的表示方法,可以在计算机中进行十进制的运算。
实验4
task4
1 #字符编码相关 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(0x10604)) 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'))
运行结果

总结:
chr()用于返回Unicode码对应的字符(Unicode码用16进制编写,故前面有ox)
ord()用于返回字符的Unicode的码
实验5
task5_1
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:1f}的平方根是{ans3:.2f}')
运行结果

task5_2
1 #神奇的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 #计算一个数365次方 2 3 x = float(input('输入一个数字:')) 4 y = x**356 5 6 print(f'{x}的365次方:{y:.2f}')
运行结果

实验7
task7
1 #煮出完美的鸡蛋 2 p, c, K = eval('1.038, 3.7, 0.0054') 3 M, m, Tw = eval('47, 67, 100') 4 Ty = int('70') 5 T0 = float(input('输入一个初始温度值:')) 6 7 import math 8 pi = math.pi 9 t1 = (M**(2/3))*c*(p**(1/3)) 10 t2 = (K*(pi**2)*(((4*pi)/3)**(2/3))) 11 t3 = ((T0-Tw)/(Ty-Tw))*0.76 12 t4 = math.log(t3) 13 14 t = (t1/t2)*t4 15 ta = t//60 16 tb = int(t - ta*60 +0.5) 17 print(f'T0 = {T0}℃, t = {ta}分{tb}秒')
运行结果

实验8
task8_1
1 """ 2 家用电器销售系统 3 v1.0 4 """ 5 #欢迎信息 6 print('欢迎使用家用电器销售网络!') 7 8 #产品信息列表 9 print('产品和价格信息如下:') 10 print('*'*60) 11 print('%-10s'%'编号', '%-10s'%'名称', '%-10s'%'品牌', '%-10s'%'价格', '%-10s'%'库存数量') 12 print('-'*60) 13 print('%-10s'%'0001', '%-10s'%'电视机', '%-10s'%'海尔', '%10.2f'%5999.00, '%10d'%20) 14 print('%-10s'%'0002', '%-10s'%'冰箱', '%-10s'%'西门子', '%10.2f'%6998.00, '%10d'%15) 15 print('%-10s'%'0003', '%-10s'%'洗衣机', '%-10s'%'小天鹅', '%10.2f'%1999.00, '%10d'%10) 16 print('%-10s'%'0004', '%-10s'%'空调', '%-10s'%'格力', '%10.2f'%3900.00, '%10d'%0) 17 print('%-10s'%'0005', '%-10s'%'热水器', '%-10s'%'美的', '%10.2f'%688.00, '%10d'%30) 18 print('%-10s'%'0006', '%-10s'%'笔记本', '%-10s'%'联想', '%10.2f'%5699.00, '%10d'%10) 19 print('%-10s'%'0007', '%-10s'%'微波炉', '%-10s'%'苏泊尔', '%10.2f'%480.50, '%10d'%33) 20 print('%-10s'%'0008', '%-10s'%'投影仪', '%-10s'%'松下', '%10.2f'%1250.00, '%10d'%12) 21 print('%-10s'%'0009', '%-10s'%'吸尘器', '%-10s'%'飞利浦', '%10.2f'%999.00, '%10d'%9) 22 print('-'*60) 23 24 #用户输入信息 25 product_id = input('请输入你购买产品的序号:') 26 price = float(input('请输入你要购买的产品价格:')) 27 count = int(input('请输入你要购买的产品数量')) 28 29 #计算金额 30 print('购买成功,你需要支付',price*count,'元') 31 32 #退出系统 33 print('谢谢你的光临,下次再见!')
运行结果

task8_2
1 """ 2 家用电器销售系统 3 v1.0 4 """ 5 #欢迎信息 6 print('欢迎使用家用电器销售网络!') 7 8 #产品信息列表 9 print('产品和价格信息如下:') 10 print('*'*60) 11 print('%-10s'%'编号', '%-10s'%'名称', '%-10s'%'品牌', '%-10s'%'价格', '%-10s'%'库存数量') 12 print('-'*60) 13 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0001','电视机','海尔','5999.00','20')) 14 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0002','冰箱','西门子','6998.00','15')) 15 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0003','洗衣机','小天鹅','1999.00','10')) 16 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0004','空调','格力','3900.00','0')) 17 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0005','热水器','美的','688.00','30')) 18 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0006','笔记本','联想','5699.00','10')) 19 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0007','微波炉','苏泊尔','480.00','33')) 20 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0008','投影仪','松下','1250.00','12')) 21 print('{:<10}{:<10}{:<10}{:<10}{:>10}'.format('0009','吸尘器','飞利浦','999.00','9')) 22 print('-'*60) 23 24 #用户输入信息 25 product_id = input('请输入你购买产品的序号:') 26 price = float(input('请输入你要购买的产品价格:')) 27 count = int(input('请输入你要购买的产品数量')) 28 29 #计算金额 30 print('购买成功,你需要支付',price*count,'元') 31 32 #退出系统 33 print('谢谢你的光临,下次再见!')
运算结果

task8_3
1 """ 2 家用电器销售系统 3 v1.0 4 """ 5 #欢迎信息 6 print('欢迎使用家用电器销售网络!') 7 8 #产品信息列表 9 print('产品和价格信息如下:') 10 print('*'*60) 11 print('%-10s'%'编号', '%-10s'%'名称', '%-10s'%'品牌', '%-10s'%'价格', '%-10s'%'库存数量') 12 print('-'*60) 13 a1,a2,a3,a4,a5 = '0001','电视机','海尔','5999.00','20' 14 b1,b2,b3,b4,b5 = '0002','冰箱','西门子','6998.00','15' 15 c1,c2,c3,c4,c5 = '0003','洗衣机','小天鹅','1999.00','10' 16 d1,d2,d3,d4,d5 = '0004','空调','格力','3900.00','0' 17 e1,e2,e3,e4,e5 = '0005','热水器','美的','688.00','30' 18 f1,f2,f3,f4,f5 = '0006','笔记本','联想','5699.00','10' 19 g1,g2,g3,g4,g5 = '0007','微波炉','苏泊尔','480.00','33' 20 h1,h2,h3,h4,h5 = '0008','投影仪','松下','1250.00','12' 21 i1,i2,i3,i4,i5 = '0009','吸尘器','飞利浦','999.00','9' 22 print(f'{a1:<10}{a2:<10}{a3:<10}{a4:<10}{a5:>10}') 23 print(f'{b1:<10}{b2:<10}{b3:<10}{b4:<10}{b5:>10}') 24 print(f'{c1:<10}{c2:<10}{c3:<10}{c4:<10}{c5:>10}') 25 print(f'{d1:<10}{d2:<10}{d3:<10}{d4:<10}{d5:>10}') 26 print(f'{e1:<10}{e2:<10}{e3:<10}{e4:<10}{e5:>10}') 27 print(f'{f1:<10}{f2:<10}{f3:<10}{f4:<10}{f5:>10}') 28 print(f'{g1:<10}{g2:<10}{g3:<10}{g4:<10}{g5:>10}') 29 print(f'{h1:<10}{h2:<10}{h3:<10}{h4:<10}{h5:>10}') 30 print(f'{i1:<10}{i2:<10}{i3:<10}{i4:<10}{i5:>10}') 31 print('-'*60) 32 33 #用户输入信息 34 product_id = input('请输入你购买产品的序号:') 35 price = float(input('请输入你要购买的产品价格:')) 36 count = int(input('请输入你要购买的产品数量')) 37 38 #计算金额 39 print('购买成功,你需要支付',price*count,'元') 40 41 #退出系统 42 print('谢谢你的光临,下次再见!')
运行结果:
浙公网安备 33010602011771号