实验任务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('谢谢您的光临,下次再见!')

 

运行结果截图